saxulum/saxulum-doctrine-orm-manager-registry-provider

此包已废弃,不再维护。未建议替代包。

Saxulum Doctrine ORM 管理器注册提供者

3.1.0 2016-05-09 06:24 UTC

README

Build Status PHP 7 ready Total Downloads Latest Stable Version Scrutinizer Code Quality

特性

要求

  • PHP 5.3+
  • Doctrine ~2.3
  • Pimple ~2.1

目前需要同时使用 dbsorm.ems 服务才能运行。这些服务可以由类似 SilexCilex 的 Doctrine 服务提供者以及 dflydev-doctrine-orm-service-provider 服务提供者提供。如果您可以选择或想要伪造,请随意。 :)

安装

通过 Composersaxulum/saxulum-doctrine-orm-manager-registry-provider 的形式。

composer require "saxulum/saxulum-doctrine-orm-manager-registry-provider": "~3.0"
<?php

use Saxulum\DoctrineOrmManagerRegistry\Provider\DoctrineOrmManagerRegistryProvider;

$app->register(new DoctrineOrmManagerRegistryProvider());

表单实体类型

如果您想在 Symfony 表单组件 中使用 Entity 类型支持,请安装 Doctrine 桥接器 并首先注册表单提供者。

{
    "require": {
        "symfony/doctrine-bridge": "~2.2",
        "symfony/form": "~2.2"
    }
}
<?php

use Saxulum\DoctrineOrmManagerRegistry\Provider\DoctrineOrmManagerRegistryProvider;
use Silex\Provider\FormServiceProvider;

$app->register(new FormServiceProvider());
$app->register(new DoctrineOrmManagerRegistryProvider());

验证器

如果您想在 Symfony 验证组件 中使用 UniqueEntity 约束支持,请安装 Doctrine 桥接器 并首先注册验证提供者。

{
    "require": {
        "symfony/doctrine-bridge": "~2.2",
        "symfony/validator": "~2.2"
    }
}
<?php

use Saxulum\DoctrineOrmManagerRegistry\Provider\DoctrineOrmManagerRegistryProvider;
use Silex\Provider\ValidatorServiceProvider;

$app->register(new ValidatorServiceProvider());
$app->register(new DoctrineOrmManagerRegistryProvider());
<?php

use Doctrine\ORM\Mapping as ORM;
use Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity;
use Symfony\Component\Validator\Mapping\ClassMetadata;

/**
 * @ORM\Entity()
 * @ORM\Table(name="sample")
 */
class Sample
{
    /**
     * @var string
     * @ORM\Column(name="name", type="string")
     */
    protected $name;

    /**
     * @param ClassMetadata $metadata
     */
    public static function loadValidatorMetadata(ClassMetadata $metadata)
    {
        $metadata->addConstraint(new UniqueEntity(array(
            'fields'  => 'name',
            'message' => 'This name already exists.',
        )));
    }
}

Doctrine ORM 控制台

如果您想使用 Doctrine ORM 命令,请安装 Doctrine ORM 命令Saxulum 控制台提供者 并注册控制台提供者。

{
    "require": {
        "saxulum/saxulum-doctrine-orm-commands": "~1.2,>=1.2.2",
        "saxulum/saxulum-console": "~3.1",
    }
}
<?php

use Saxulum\DoctrineOrmManagerRegistry\Provider\DoctrineOrmManagerRegistryProvider;
use Saxulum\Console\Silex\Provider\ConsoleProvider;

$app->register(new ConsoleProvider());
$app->register(new DoctrineOrmManagerRegistryProvider());

用法

<?php

// get the default connection name
$app['doctrine']->getDefaultConnectionName();

// get the default connection 
$app['doctrine']->getConnection();

// get a connection by name
$app['doctrine']->getConnection('name');

// all connections as array access (pimple)
$app['doctrine']->getConnections();

// all connection names as array
$app['doctrine']->getConnectionNames();

// get the default manager name
$app['doctrine']->getDefaultManagerName();

// get the default manager
$app['doctrine']->getManager();

// get a manager by name
$app['doctrine']->getManager('name');

// all manager as array access (pimple)
$app['doctrine']->getManagers();

// all manager names as array
$app['doctrine']->getManagerNames();
...