doctrine autoload

nerezus

Вселенский отказник
doctrine autoload

Решил сделать быстренько простенький проект на пару часов с целью обучения новым вещам и заткнулся на сабже:

Добавил Doctrine.php в include path, подключаю, генерю модели, подключаю модели и ошибка такая:
сгенеренные модели из models подключаются, а вот их *Base из models/generated не хотят )

Как doctrine-way это сделать?

Конечно можно набыдлокодить что-то типа
PHP:
function autoloadBase($name) {
    if (strpos($name, 'Base') === 0) {
        require_once "models/generated/$name.php";
    }
}
spl_autoload_register('autoloadBase');
Но данное решение кажется уродливым.
 

AmdY

Пью пиво
Команда форума
ага, почти так, только автолоден нуна доктриновский spl_autoload_register(array('Doctrine_Core', 'autoload'));
лучше не пользоваться Doctrine.php, его когда нибуть совсем выбросят, так как не pear-style
 

nerezus

Вселенский отказник
spl_autoload_register(array('Doctrine', 'autoload'));
У меня такая строка есть, вот только она подгружает все кроме generated моделей.
И только с этими моделями проблемы.
При этом если использовать другие методы(yml/написанные модели), то данной ошибки по понятным причинам не будет.
М.б. они видно просто забыли протестировать релиз?

P.S. Doctrine юзаю только для подключений, она сама ссылается потом на Core, которую и юзаю.
 

Beavis

Banned
PHP:
spl_autoload_register(array('Doctrine', 'autoload'));
spl_autoload_register(array('Doctrine', 'modelsAutoload'));
незачто))
 

nerezus

Вселенский отказник
spl_autoload_register(array('Doctrine_Core', 'modelsAutoload'));

Не поверите ) Ноль результатов )
 

zerkms

TDD infected
Команда форума
nerezus
не поверим. нам в своё время это вполне себе помогло :)

PHP:
$this->getApplication()->getAutoloader()
    ->pushAutoloader(array('Doctrine', 'autoload'))
    ->pushAutoloader(array('Doctrine', 'modelsAutoload'));
 

Beavis

Banned
ну тогда http://phpfaq.ru/debug ;)
никто не запрещает залезть в исходник доктрины))
я тоже с этой проблемой мучался, пока не залез внутрь и обнаружил что они разделили автолоад на две части)
 

zerkms

TDD infected
Команда форума
Beavis
кстати такая же фигня :) ни в доке не описано, ни на канале не подсказали.
 

Beavis

Banned
zerkms
так это вроде только с версии 1.2 так, а документации на неё пока свежей нет(
 
Сверху