Собственные коллекции в Doctrine 1.2 - PullRequest
3 голосов
/ 07 декабря 2010

Я использую Doctrine 1.2.Я хотел бы выполнить Doctrine_Query, который вместо возврата Doctrine_Collection вернет класс по моему выбору.То есть что-то вроде

$o = Doctrine_Query::create()
->from('Foo')
->execute();

$o; //instance of Doctrine_Collection

обычно возвращает универсальный объект Doctrine_Collection.Вместо этого я хотел бы, чтобы он возвращал объект Foo_Collection, который я определяю в другом месте

class Foo_Collection extends Doctrine_Collection
{

    public function soSomethingSpecificToAFooObject()
    {
    }
}

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

1 Ответ

4 голосов
/ 08 декабря 2010

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

$this->_table->setAttribute(Doctrine_Core::ATTR_COLLECTION_CLASS, 'Foo_Collection');

Вы также можете установить это глобально для Doctrine_Connection, если вам необходимо расширить Doctrine_Collection и использовать другой класс во всех моделях.

...