Добавить класс в раздел использования в поведении Propel

Вот и все. Я создал поведение, и только некоторые его классы добавлены в голову с use из-за моего поведения.

Например. поведение создает новую таблицу с именем acme. Генератор Propel добавляет к моему классу Foo (app/propel/AppPropelModel/AcmeBundle/om/BaseFoo.php) AcmeBehavior и AcmeBehaviorQuery, но не AcmeBehaviorPeer.

Я не хочу возиться с полным именем класса в классе построения поведения AcmeBehaviorObjectBuilderModifier.php Как я могу заставить Propel добавить use AppPropelModel\HornsAndHooves\AcmeBundle\AcmeBehaviorPeer в файл целевого класса?


person kirilloid    schedule 08.02.2013    source источник
comment
Извините, но я не уверен, что понимаю, что вы пытаетесь сделать (или что не работает). Вы говорите, что у вас есть написанное вами поведение, которое создает таблицу, но класс *Peer не создается? Это единственная проблема?   -  person Jordan Kasper    schedule 08.02.2013
comment
Нет, класс создан. Он не записывается в блок uses.   -  person kirilloid    schedule 11.02.2013


Ответы (1)


Если вы используете класс и хотите добавить его в блок «использовать», вы должны объявить этот класс в построителе. Просто вызовите declareClass в этой функции с вашим полным пространством имен:

class MyBehavior extends Behavior {
    ...

    public function objectMethods($builder)
    {
        $builder->declareClass('MyNamespace\\MyBundle\\Subfolder');
    }
}

Это приведет к:

use MyNamespace\MyBundle\Subfolder;

abstract class MyModelClass extends ...
person zebra    schedule 01.10.2013