doctrineum/string

仅字符串枚举类型和依赖子类型,适用于Doctrine

2.2.0 2019-03-01 11:04 UTC

This package is auto-updated.

Last update: 2024-08-29 04:26:37 UTC


README

Build Status Test Coverage License

关于

枚举添加到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