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

Това е. Създадох поведение и само някои от неговите класове се добавят в главата с use поради моето поведение.

напр. поведение създава нова таблица с име acme. Генераторът на задвижване добавя към моя 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