Zend автоматически загружает разные пространства имен из одного каталога? - PullRequest
0 голосов
/ 23 декабря 2010

У меня есть каталог моделей в моем проекте, и я хотел бы сохранить там классы / files с разными пространствами имен. Пример:

models/User.php with classname Model_User
models/Table_User.php with classname Model_Table_User

Для первого пространства имен у меня это есть в bootstrap.php

$resourceLoader->addResourceTypes(array(
    'model' => array(
    'namespace' => 'Model',
    'path' => 'models'
    )
));

Я не могу понять, как добавить второе пространство имен, чтобы он обнаруживал файлы, начинающиеся с Table_ Есть идеи?

На данный момент я добавил второй каталог с именем 'tables', но это сбивает с толку, потому что у меня каждое имя модели дважды (один раз в каталоге моделей и один раз в каталоге таблиц)

Ответы [ 2 ]

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

Это из-за _ в Table_User. Автозагрузчик, вероятно, ищет:

models/Table/User.php

Попробуйте переименовать файл в

TableUser.php

И класс до:

Model_TableUser

Или создайте папку Table и поместите туда файл User.php.

0 голосов
/ 26 декабря 2010

Это то, что я делаю сам.
У меня есть «Model_» в «{APPLICATION_PATH} / models /» и «DbTable_» в «{APPLICATION_PATH} / models / dbtables /». 1002 *


$resourceLoader->addResourceTypes(array(
    'model' => array(
    'namespace' => 'Model_',
    'path' => APPLICATION_PATH.'/models/'
    ),
    'dbtable' => array(
    'namespace' => 'DbTable_',
    'path' => APPLICATION_PATH.'/models/dbtables/'
));

Вы, конечно, должны изменить это в соответствии с вашими именами классов и структурой папок. APPLICATION_PATH определен в вашем index.php - но я не помню, содержит ли он косую черту, так что проверьте это на всякий случай. (Я сейчас не на своем компьютере, поэтому не могу проверить ...)

Все просто! :)

...