Загрузка пользовательских классов из каталога библиотеки в Zend
Я пытаюсь загрузить целый набор классов из пространства имен. Это всего лишь служебные классы, и я не хочу относиться к ним как к помощникам действий, помощникам по просмотрам или какому-либо плагину (у меня есть те, кто отлично работает, благодаря документации).
У меня есть Zend-подобная структура каталогов, например, класс с именем Resources_Employee_Salary хранится в библиотеке /Resources/Employee/Salary.php.
Теперь, когда я в своем контроллере действий, я хочу создать экземпляр Resources_Employee_Salary, но я не могу, потому что он не может найти класс.
Что мне нужно сделать, чтобы Zend загрузил классы из ресурсов /* раз и навсегда? Я посмотрел на Zend_Loader, но у него есть методы, которые запрашивают определенный файл или класс, я хочу загрузить весь каталог.
Любая помощь будет оценена.
Спасибо,
1 ответ
Вы должны назвать свои классы соответствующим образом...
Path: library/Resources/Employee/Salary.php
Class: Resources_Employee_Salary
Тогда вам нужно зарегистрировать ваше пространство имен с автозагрузчиком...
$autoloader = Zend_Loader_Autoloader::getInstance();
$autoloader->registerNamespace('Resources_');
Конечно, вы также можете указать это в файле конфигурации вашего проекта, так что вам не придется делать это вручную... В формате XML это будет выглядеть так (не уверен насчет формата ini, если вам это нравится...):
<?xml version="1.0" encoding="UTF-8"?>
<application xmlns:zf="http://framework.zend.com/xml/zend-config-xml/1.0/">
<production>
<autoloaderNamespaces>
<resources value="Resources_" />
</autoloaderNamespaces>
</production>
</application>