Генерация сущностей с префиксом в Doctrine2 - PullRequest
1 голос
/ 06 января 2011

Я использую doctrine2 с Zend Framework. При построении объектов необходимо установить префикс классов, например (Model_User). Является ли это возможным?. Я использую команду

./doctrine orm:generate-entities --generate-annotations=1 ../../../application/models/

Ответы [ 2 ]

1 голос
/ 01 мая 2015

Я новичок в доктрине, но сделал это:

   class TablePrefix{

    protected $prefix = '';

    public function __construct($prefix){
        $this->prefix = '';

        for($i = 0; $i < strlen($prefix); $i++){ // table prefix like in entity name
            if( $prefix[$i] == '_' && $i-1 > 0 ){
                $prefix[$i-1] = strtoupper($prefix[$i-1]);
            }
            else{
                $this->prefix .= $prefix[$i];
            }
        }

        $this->prefix[0] = strtoupper($this->prefix[0]);
    }

    public function loadClassMetadata(LoadClassMetadataEventArgs $eventArgs){

        $classMetadata = $eventArgs->getClassMetadata();

        $tmp = substr($classMetadata->name, 0, strlen($this->prefix));

        if($tmp == $this->prefix ){
            $classMetadata->name = substr($classMetadata->name, strlen($this->prefix));
        }
    }
}

Далее, когда вы создаете менеджер сущностей, сделайте следующее:

$tablePrefix = new TablePrefix('tbl_');
    $evm = $entityManager->getEventManager();
    $evm->addEventListener(\Doctrine\ORM\Events::loadClassMetadata, $tablePrefix);

поверх файла добавить: use \Doctrine\ORM\Event\LoadClassMetadataEventArgs;

когда вы запустите cmd php vendor / bin / doctrine orm: сгенерируйте имя модели моделей-сущностей в порядке!

0 голосов
/ 03 марта 2011

добавьте эти строки в ваш файл application.ini.

doctrine.generate_models_options.pearStyle = true
doctrine.generate_models_options.generateTableClasses = false
doctrine.generate_models_options.generateBaseClasses = true
doctrine.generate_models_options.baseClassPrefix = "Base_"
doctrine.generate_models_options.baseClassesDirectory =
doctrine.generate_models_options.classPrefixFiles = false
doctrine.generate_models_options.classPrefix = "ModuleName_Model_"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...