doctrineum / string
仅字符串枚举类型和依赖子类型,适用于Doctrine
2.2.0
2019-03-01 11:04 UTC
Requires
- php: >=7.1
- doctrineum/scalar: ^3.1
- granam/string: ^3.0
- granam/string-enum: ^1.0
Requires (Dev)
- granam/exceptions-hierarchy: ~4.0
- mockery/mockery: ~1.0
- phpunit/phpunit: ~7.0
README
关于
将枚举添加到Doctrine ORM(可以作为@Column(type="string_enum")
使用)。
##使用方法
<?php use Doctrine\ORM\Mapping as ORM; use Doctrineum\String\StringEnum; /** * @ORM\Enity() */ class Person { /** * @var int * @ORM\Id() @ORM\GeneratedValue(strategy="AUTO") @ORM\Column(type="integer") */ private $id; /** * @var StringEnum * @ORM\Column(type="string_enum") */ private $name; public function __construct(StringEnum $name) { $this->name = $name; } /** * @return StringEnum */ public function getName() { return $this->name; } } // ... entity Money using Currency $trueHero = new Person(StringEnum::getEnum('Don Quixote de La Mancha')); /** @var \Doctrine\ORM\EntityManager $entityManager */ $entityManager->persist($trueHero); $entityManager->flush(); $entityManager->clear(); /** @var Currency[] $StarTracks */ $sirs = $entityManager->createQuery( "SELECT p FROM Person p WHERE p.name LIKE 'Don %'" )->getResult(); var_dump($sirs[0]->getName()->getValue()); // 'Don Quixote de La Mancha';
##安装
将其添加到您的Composer依赖列表中(或手动编辑您的composer.json文件中的require部分)
composer require jaroslavtyc/doctrineum-string
Doctrine集成
注册新的DBAL类型
<?php use Doctrineum\String\StringEnumType; StringEnumType::registerSelf();
当使用Symfony与Doctrine时,您可以通过配置执行与上述相同的操作
# app/config/config.yml # Doctrine Configuration doctrine: dbal: # ... mapping_types: string_enum: string_enum types: string_enum: Doctrineum\String\StringEnumType