Как указать 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