saxulum / saxulum-doctrine-mongodb-odm-manager-registry-provider
此包已被弃用,不再维护。没有建议的替代包。
Doctrine MongoDB ODM 管理器注册提供程序
2.0.2
2017-10-26 08:47 UTC
Requires
- php: >=5.5.9
- pimple/pimple: >=2.1,<4
- saxulum/saxulum-doctrine-mongodb-odm-provider: ~2.2,>=2.2.2
Requires (Dev)
- phpunit/phpunit: ~4.0
- saxulum/saxulum-console: ~3.0
- saxulum/saxulum-doctrine-mongodb-odm-commands: dev-master@dev
- silex/providers: ~2.0
- symfony/doctrine-bridge: ~2.3|~3.0
- symfony/form: ~2.3|~3.0
- symfony/validator: ~2.3|~3.0
Suggests
- saxulum/saxulum-console: ~3.0
- saxulum/saxulum-doctrine-mongodb-odm-commands: dev-master@dev
- silex/providers: ~2.0
- symfony/doctrine-bridge: ~2.3|~3.0
- symfony/form: ~2.3|~3.0
- symfony/validator: ~2.3|~3.0
README
特性
- 利用核心 Doctrine MongoDB 服务提供程序 和 Doctrine MongoDB ODM 服务提供程序
- 可以使用 symfony 的 Doctrine Bridge 来使用注册管理器,以便在 Symfony 表单组件 中使用文档类型
要求
- PHP 5.5+
- Doctrine MongoDB ODM ~1.0
目前需要 mongodbs 和 mongodbodm.dms 两个服务才能正常工作。这些服务可以由 Doctrine MongoDB 服务提供程序 和 Doctrine MongoDB ODM 服务提供程序 提供。如果你可以或愿意伪造它,那就去吧。 :)
安装
通过 Composer 安装 saxulum/saxulum-doctrine-mongodb-odm-manager-registry-provider。
composer require "saxulum/saxulum-doctrine-mongodb-odm-manager-registry-provider": "dev-master@dev"
<?php
use Saxulum\DoctrineMongodbOdmManagerRegistry\Provider\DoctrineMongodbOdmManagerRegistryProvider;
$app->register(new DoctrineMongodbOdmManagerRegistryProvider());
表单文档类型
如果你想在 Symfony 表单组件 中使用 Document
类型支持,请安装 Doctrine Bridge 并首先注册表单提供程序。
{
"require": {
"symfony/doctrine-bridge": "~2.3|~3.0",
"symfony/form": "~2.3|~3.0"
}
}
<?php
use Saxulum\DoctrineMongodbOdmManagerRegistry\Provider\DoctrineMongodbOdmManagerRegistryProvider;
use Silex\Provider\FormServiceProvider;
$app->register(new FormServiceProvider());
$app->register(new DoctrineMongodbOdmManagerRegistryProvider());
验证器
如果你想在 Symfony 验证器组件 中使用 Unique
约束支持,请安装 Doctrine Bridge 并首先注册验证器提供程序。
{
"require": {
"symfony/doctrine-bridge": "~2.3|~3.0",
"symfony/validator": "~2.3|~3.0"
}
}
<?php
use Saxulum\DoctrineMongodbOdmManagerRegistry\Provider\DoctrineMongodbOdmManagerRegistryProvider;
use Silex\Provider\ValidatorServiceProvider;
$app->register(new ValidatorServiceProvider());
$app->register(new DoctrineMongodbOdmManagerRegistryProvider());
<?php
use Doctrine\ORM\Mapping as ORM;
use Saxulum\DoctrineMongodbOdmManagerRegistry\Validator\Constraints\Unique;
use Symfony\Component\Validator\Mapping\ClassMetadata;
/**
* @ORM\Document()
* @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 Unique(array(
'fields' => 'name',
'message' => 'This name already exists.',
)));
}
}
Symfony 控制台
如果你想使用 Doctrine MongoDB ODM 命令,请安装 Doctrine MongoDB ODM 命令 和 Saxulum 控制台提供程序,并注册控制台提供程序。
{
"require": {
"saxulum/saxulum-doctrine-mongodb-odm-commands": "dev-master@dev",
"saxulum/saxulum-console": "~2.3|~3.0",
}
}
<?php
use Saxulum\DoctrineMongodbOdmManagerRegistry\Provider\DoctrineMongodbOdmManagerRegistryProvider;
use Saxulum\Console\Provider\ConsoleProvider;
$app->register(new ConsoleProvider());
$app->register(new DoctrineMongodbOdmManagerRegistryProvider());
使用
<?php
// get the default connection name
$app['doctrine_mongodb']->getDefaultConnectionName();
// get the default connection
$app['doctrine_mongodb']->getConnection();
// get a connection by name
$app['doctrine_mongodb']->getConnection('name');
// all connections as array access (pimple)
$app['doctrine_mongodb']->getConnections();
// all connection names as array
$app['doctrine_mongodb']->getConnectionNames();
// get the default manager name
$app['doctrine_mongodb']->getDefaultManagerName();
// get the default manager
$app['doctrine_mongodb']->getManager();
// get a manager by name
$app['doctrine_mongodb']->getManager('name');
// all manager as array access (pimple)
$app['doctrine_mongodb']->getManagers();
// all manager names as array
$app['doctrine_mongodb']->getManagerNames();
...