saxulum/saxulum-doctrine-mongodb-odm-manager-registry-provider

此包已被弃用,不再维护。没有建议的替代包。

Doctrine MongoDB ODM 管理器注册提供程序

2.0.2 2017-10-26 08:47 UTC

This package is auto-updated.

Last update: 2021-10-02 20:06:04 UTC


README

Build Status Total Downloads Latest Stable Version Scrutinizer Code Quality

特性

要求

  • PHP 5.5+
  • Doctrine MongoDB ODM ~1.0

目前需要 mongodbsmongodbodm.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();
...