madesst / doctrine-generation-bundle
Add propel-like base classes when generating entites
Installs: 486
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 3
Forks: 0
Open Issues: 0
Type:symfony-bundle
Requires
- doctrine/doctrine-bundle: >=1.3
- sensio/generator-bundle: >=2.3
- symfony/symfony: >=2.3,<3.0
This package is not auto-updated.
Last update: 2024-12-21 15:29:20 UTC
README
О бандле
MadesstDoctrineGenerationBundle вносит изменения в стандартный процесс генерации доктриной сущностей (entities) и позволяет получить структуру классов как в пропеле: User extends Base/User, где весь сгенерированный код содержится в базовом классе, а вы работаете с чистым и незахлмаленным классом. Простой пример:
// src/Company/SomeBundle/Entity/User.php class User extends \Smartstart\SpecialBundle\Entity\Base\User { public function getUsername() { return $this->getFirstname().' '.$this->getLastname(); } }
// src/Company/SomeBundle/Entity/Base/User.php class User { /** * @var integer */ protected $id; /** * @var string */ protected $firstname; /** * @var string */ protected $lastname; // ... // И так далее, обычный сгенерерированный доктриной класс
Бандл еще очень сырой, поэтому возможны отклонения в его поведении, прошу информировать меня о таких случаях
Установка
Добавьте бандл в ваш composer.json
(для symfony >=2.3):
{ "require": { "madesst/doctrine-generation-bundle": "1.1" } }
или (для symfony 2.2):
{ "require": { "madesst/doctrine-generation-bundle": "1.0" } }
или (для symfony 2.1):
{ "require": { "madesst/doctrine-generation-bundle": "0.9" } }
И зарегистрируйте бандл в app/AppKernel.php
, после SensioGeneratorBundle:
// app/AppKernel.php public function registerBundles() { if (in_array($this->getEnvironment(), array('dev', 'test'))) { // ... $bundles[] = new Sensio\Bundle\GeneratorBundle\SensioGeneratorBundle(); $bundles[] = new Madesst\DoctrineGenerationBundle\MadesstDoctrineGenerationBundle(); } }
Теперь вам стал доступен дополнительный ключ --propel-style в консольных коммандах doctrine:generate:entities и doctrine:generate:entity, который как раз и управляет способом генерации:
$ app/console doctrine:generate:entities СompanySomeBundle --propel-style Generating entities for bundle "СompanySomeBundle" > backing up User.php to User.php~ > generating Сompany\SomeBundle\Entity\Base\User > generating Сompany\SomeBundle\Entity\User
License
Released under the MIT License, see LICENSE.