a5sys / doctrine-trait-bundle
V2.0.0
2018-07-23 12:41 UTC
Requires
- php: ^7.1
- doctrine/orm: ^2.6
- symfony/framework-bundle: >=2.3
This package is auto-updated.
Last update: 2024-08-27 17:52:47 UTC
README
在特性中生成实体存根方法
生成的特性包含由 doctrine 生成器生成的 getter/setter。应该在实体中使用此特性。
优点
您的实体只包含有用的信息
- doctrine 列和关系
- 已修改的 getter/setter
- 自定义方法
所有基本的 getter/setter 都在特性中。
Composer
使用 Composer 获取包
composer require --dev "a5sys/doctrine-trait-bundle"
激活包
在 AppKernel 中,为开发环境激活包
if (in_array($this->getEnvironment(), array('dev'))) {
...
$bundles[] = new A5sys\DoctrineTraitBundle\DoctrineTraitBundle();
}
用法
生成特性
运行命令
php app/console generate:doctrine:traits AppBundle\\Entity
如果您只想对一个实体操作,可以使用此命令
php app/console generate:doctrine:traits "AppBundle:MyEntity"
这些命令将在 /src/AppBundle/Entity/Traits 目录下生成特性(s)
使用自定义方法
- 进入与您的实体相关的特性
- 剪切方法
- 进入您的实体
- 粘贴方法
- 更新方法
- 由于该方法已在实体中定义,因此命令不会重新生成此方法
示例
- 创建您的实体(用户)而不包含 getter/setter
- 运行命令
- 将特性添加到您的实体中
- 您已完成
实体
namespace AppBundle/Entity;
class User
{
use AppBundle/Entity/Traits/UserTrait;
/**
* @ORM\Id
* @ORM\GeneratedValue
* @ORM\Column(type="integer", nullable=false)
*/
protected $id;
/**
* @ORM\Column(type="string", length=50, nullable=false)
*/
protected $name;
}
特性
namespace AppBundle/Entity/Traits;
/**
* User
*/
trait UserTrait
{
/**
*
* @param integer $id
*/
public function setId($id)
{
$this->id = $id;
}
/**
*
* @return integer
*/
public function getId()
{
return $this->id;
}
/**
*
* @param string $name
*/
public function setName($name)
{
$this->name = $name;
}
/**
* Get the name
*
* @return string
*/
public function getName()
{
return $this->name;
}
}