именование моделей в Zend - PullRequest
1 голос
/ 28 декабря 2010

Если я не следую структуре именования для имени модели (например, Application_Model_DbTable_Users в Users.php в папке модели), я получаю ошибку на контроллере.вместо того, чтобы записывать его как Application_Model_DbTable_Users , я хочу написать его просто как Users в Users.php в папке модели.я знаю, что это возможно в Zend, но как?я не знаю.Пожалуйста, помогите в этом вопросе.Я думаю, что-то должно быть сделано в bootstrap.php или index.php для настройки автозагрузчика .... каково бы ни было точное решение ..... но, пожалуйста, помогите мне в этом.заранее спасибо

Ответы [ 3 ]

1 голос
/ 07 января 2011

ZF следует соглашению об именовании PEAR в том смысле, что иерархия папок соответствует именованию классов, например, Foo_Bar_Baz будет находиться в папке Foo / Bar / Baz.php. Автозагрузчик попытается найти этот путь относительно настроенного пути включения.

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

Подробнее см. В справочном руководстве ZF по автозагрузке .

1 голос
/ 28 декабря 2010

Откуда ты знаешь, что это возможно? Zend Framework имеет строгий синтаксис именования для автоматической загрузки всех файлов. Автозагрузчик использует префиксы (например, Application_Model_), чтобы определить, где находится файл. Без префикса это невозможно.

Иногда во время объяснения поведения ZF слишком много времени приходится набирать все время Application_Model_User, и вместо этого, чтобы сделать его более понятным, используются такие вещи, как User. Это не означает, что вы можете использовать это имя в своем приложении.

Последняя возможность - это пространства имен, но в стабильном ZF она еще не используется.

0 голосов
/ 07 января 2011

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

Однако я настоятельно рекомендую не использовать этот подход, так как ваше глобальное пространство имен будет сильно загрязнено. используйте хотя бы простой префикс (например, модель _).

...