contao-community-alliance/dependency-container

基于pimple的Contao开源cms依赖容器。

2.1.1 2022-09-05 20:13 UTC

README

Version Build Status License Downloads

此依赖注入容器基于Pimple

关于Contao 4的说明:在Contao 4中已过时 - 你应该使用Contao 4中的symfony容器。

此扩展保持与Contao 4的兼容性以简化迁移过程 - 然而,你应该更改你的代码,使用两种注册方式来注册服务。

有关如何迁移到Contao 4的指南,请参阅UPGRADING-TO-CONTAO4.md

注册参数和服务

system/modules/X/config/services.php

$container['myservice.param'] = 'value';
$container['myservice'] = function($container) {
    return new MyServiceClassName();
}

访问参数和服务

class MyClass
{
    function myFunction()
    {
        global $container;

        $parameter = $container['myservice.param'];
        $service = $container['myservice'];
    }
}

内置服务

配置对象

/** @var \Config $config */
$config = $container['config'];

环境对象

/** @var \Environment $environment */
$environment = $container['environment'];

数据库连接

/** @var \Database $database */
$database = $container['database.connection'];

输入对象

/** @var \Input $input */
$input = $container['input'];

后端或前端用户,根据TL_MODE而定

/** @var \BackendUser|\FrontendUser $user */
$user = $container['user'];

会话对象

/** @var \Session $session */
$session = $container['session'];

对 $objPage 对象的延迟访问

/** @var DependencyInjection\Container\PageProvider */
$pageProvider = $container['page-provider'];
$page         = $pageProvider->getPage();