Допустим, что у меня есть таблица, содержащая пользователей. Таким образом, каждая строка в этой таблице является пользователем. Важная часть здесь - множественное число против единственной формы.Обход «проблемы» с соглашениями об именах, которые используются автозагрузчиком Zend Framework
Теперь давайте посмотрим на мы создали модели для них в Zend Framework:
class Model_Users extends Zend_Db_Table_Abstract
{
protected $_name = 'users';
protected $_primary = 'user_id';
}
Теперь, давайте далее предположить, что мы хотим, чтобы другой объект пользователя кроме стандартной строки, возвращаемой Zend_Db_Table
, но мы все равно хотели бы сохранить его функциональность, просто расширим его. Затем он будет иметь смысл реализовать и имя одного пользователя, как:
class Model_User extends Zend_Db_Table_Row_Abstract
{
... Bunch of cool functions here :)
}
Мы тогда просто добавить protected $_rowClass = 'Model_User';
в Model_Users
классе, и мы сделали ... Обычно это бы быть, но здесь, похоже, проблема в том, как Zend Framework автоматически загружает классы. Поскольку мы можем иметь структуру папок /defaut/models/foo.php
и называть класс в пределах этого Model_Foo
. Папка имеет множественное имя, но класс имеет единственное. Это кажется проблемой, когда я хочу иметь вышеуказанную структуру. Поскольку Zend Framework, похоже, не может различать UserModel.php
и UsersModel.php
.
Так что вопрос к этому длинному и нескольким поэтическому вопросу:
Есть ли способ обойти эту проблему без запуска вручную использовать включает в себя?
Я не уверен на 100%, что вы пытаетесь обойти ... Я попытаюсь ответить, предоставив вам пример того, как я настроил бы этот стол и класс строк – gnarf 2010-12-16 18:23:46