Загрузка пользовательских классов из каталога библиотеки в Zend - PullRequest
0 голосов
/ 05 апреля 2011

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

У меня есть Zend-подобная структура каталогов, например, класс с именем Resources_Employee_Salary хранится в библиотеке / Resources / Employee / Salary.php.

Теперь, когда я в своем контроллере действий, я хочу создать экземпляр Resources_Employee_Salary, но не могу, потому что он не может найти класс.

Что мне нужно сделать, чтобы Zend загрузил классы из ресурсов / * раз и навсегда? Я посмотрел на Zend_Loader, но у него есть методы, которые запрашивают определенный файл или класс, я хочу загрузить весь каталог.

Любая помощь будет оценена.

Спасибо,

1 Ответ

2 голосов
/ 05 апреля 2011

Вам нужно правильно назвать свои классы ...

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>
...