gobline/registrar

注册器组件

v1.0.2 2015-12-07 16:25 UTC

This package is auto-updated.

Last update: 2024-09-12 19:12:11 UTC


README

注册器组件接收一个 Gobline 容器,并允许您向其中添加由一个或多个配置文件定义的服务。它根据当前环境(开发、生产等)加载正确的配置文件。

$container = new Gobline\Container();

$registrar = new Gobline\Registrar\Registrar($container, 'dev');
$registrar->register(getcwd().'/config/services.php');

在上面的代码中,我们将环境设置为 "dev",注册器将尝试将以下文件中定义的服务添加到容器中

  • services.php(如果存在)
  • services.dev.php(如果存在)

配置文件中列出的服务定义在一个 PHP 数组中,其结构遵循一定的约定。下面是一个配置文件的示例

return [
    Pdo::class => [
        'construct' => [
            'arguments' => ['sqlite:db.sqlite'],
        ],
    ],
    Swift_SmtpTransport::class => [
        'alias' => Swift_Transport::class,
        'construct' => [
            'arguments' => ['smtp.gmail.com', 465, 'ssl'],
        ],
        'configure' => [
            'data' => [
                'username' => 'mdecaffmeyer@gmail.com',
                'password' => '***',
            ],
        ],
    ],
    Gobline\Auth\Authenticator\Db\DbAuthenticator::class => [
        'alias' => Gobline\Auth\Authenticator\AuthenticatorInterface::class,
    ],
    Gobline\Auth\CurrentUser::class => [
        'alias' => Gobline\Auth\CurrentUserInterface::class,
        'configure' => [
            'configurator' => Gobline\Auth\Provider\Gobline\CurrentUserConfigurator::class,
            'data' => [
                'persistence' => 'session',
                'roleUnauthenticated' => 'unauthenticated',
            ],
        ],
    ],
    Doctrine\ORM\EntityManager::class => [
        'construct' => [
            'factory' => App\Provider\EntityManagerFactory::class,
        ],
    ],

];