Как указать Zend framework, где находятся мои пользовательские классы

У меня есть папка с пользовательскими классами в приложении ZF 1.10. Папка находится в папке /library. Как я могу сказать ZF, где они? Оба приложения.и индекс Ини.php установил путь к библиотеке, но затем ZF не может найти файлы.

спасибо

4 ответов


существует множество возможных решений. Наиболее распространенным при использовании приложения Zend является регистрация пространства имен в application.ini добавил:

autoloaderNamespaces[] = "Example_"

других решений:

  • добавьте свой dir в include_path используя set_include_path() (конкретное решение)
  • следуйте соглашениям об именах PEAR (так что разрешение пути было возможно)

настройка автозапуска в Bootstrap.php:

protected function _initAutoloader()
{
    $autoloader = Zend_Loader_Autoloader::getInstance();
    $autoloader->registerNamespace("Example"); // or Example_
}

в конце концов, настроить модуль или ресурс автопогрузчик, например.

$resourceLoader->addResourceTypes(array(
     'acl' => array(
        'path'      => 'acls/',
        'namespace' => 'Acl',
    ),
    'example' => array(
        'path'      => 'examples/',
        'namespace' => 'Example',
    ),        
));

мы часто сталкиваемся с проблемой написания собственных пользовательских функций или классов, и где их разместить.

поэтому для добавления пользовательского класса (или пользовательской библиотеки) можно использовать пространства имен автозапуска Zend framework.

добавить строку ниже в приложении.ini-файл

autoloaderNamespaces.custom = "Custom_"

или

autoloaderNamespaces[] = "Custom_"

все пользовательские классы будут храниться в библиотеке каталог. Создайте имя папки "Custom" (которое определено в приложении.ini) в библиотеке справочник.

классы будут иметь префикс "Custom_" при объявлении в файле (например, Custom_Test)

Теперь мы можем использовать этот класс в качестве $test = new Custom_Test() в наше приложение.


проверить этот старый учебник Zend Framework от Роба Аллена, в частности на странице 4, где он говорит о загрузчике. Его новые учебники, как отлично, как они, по-видимому, полагаются на Zend Tool, чтобы сделать создание приложения и блеск над этим.

одна вещь, которая встревожила меня, однако, было то, что вы упомянули, что папка, которую вы пытаетесь включить это общественные/библиотека. Если только вы намеренно не хотите поделиться своим кодом с миром, я настоятельно рекомендуем вам разместить его в другом месте...если у вас нет другой" общедоступной " папки не совместно с общественностью (в этом случае вы можете рассмотреть вопрос о переименовании, чтобы избежать путаницы в будущем).


добавьте пользовательскую библиотеку в composer.в JSON:

"autoload": {
"psr-0": {"Your": "vendor/My/library"}
},

и запустите composer update