saxulum / saxulum-doctrine-orm-manager-registry-provider
此包已废弃,不再维护。未建议替代包。
Saxulum Doctrine ORM 管理器注册提供者
3.1.0
2016-05-09 06:24 UTC
Requires
- php: >=5.3.3,<8.0
- dflydev/doctrine-orm-service-provider: ~2.0
- pimple/pimple: >=2.1,<4
Requires (Dev)
- phpunit/phpunit: ~4.1
- saxulum/saxulum-console: ~3.1
- saxulum/saxulum-doctrine-orm-commands: ~1.2
- silex/api: 2.0.*@dev
- silex/providers: 2.0.*@dev
- symfony/doctrine-bridge: ~2.3|~3.0
- symfony/form: ~2.3|~3.0
- symfony/validator: ~2.3|~3.0
Suggests
- saxulum/saxulum-console: ~3.1
- saxulum/saxulum-doctrine-orm-commands: ~1.2
- symfony/doctrine-bridge: ~2.3|~3.0
- symfony/form: ~2.3|~3.0
- symfony/validator: ~2.3|~3.0
README
特性
- 利用 Silex 或 Cilex 的核心 Doctrine 服务提供者 和 Doctrine ORM 服务提供者
- 可以使用 symfony 的 Doctrine 桥接器,与 Symfony 表单组件 一起使用实体类型
要求
- PHP 5.3+
- Doctrine ~2.3
- Pimple ~2.1
目前需要同时使用 dbs 和 orm.ems 服务才能运行。这些服务可以由类似 Silex 或 Cilex 的 Doctrine 服务提供者以及 dflydev-doctrine-orm-service-provider 服务提供者提供。如果您可以选择或想要伪造,请随意。 :)
安装
通过 Composer 以 saxulum/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();
...