chippyash/slim-symfony-dic

Slim 框架 3 的 Symfony 2 DIC 集成

3.1.1 2018-07-17 22:08 UTC

This package is auto-updated.

Last update: 2024-09-22 23:25:58 UTC


README

质量保证

PHP 5.6 PHP 7.1 Build Status Code Climate Test Coverage

以上徽章代表当前的开发分支。一般来说,除非测试、覆盖率和使用性都符合要求,否则我不会向 GitHub 推送代码。在假期或需要为其他下游项目编写代码等短时期内,这可能不成立。如果您需要稳定的代码,请使用带标签的版本。请阅读 '安装'。

请参阅测试和测试合同以获取更多信息。

请注意,该库的 PHP5.5 开发者支持在 3.0.0 版本中已取消。如果您需要 PHP 5.5 的支持,请使用版本 >=2,<3

是什么?

Symfony 依赖注入容器 V2Symfony 依赖注入容器 V4 提供了一个 Slim 应用程序 V3。DI 容器取决于您所使用的 PHP 版本。< 7,则为 V2,>=7.1 则为 V4。

为什么?

Slim 框架非常适合轻量级网站,在 V3 版本中采用了依赖注入容器的互操作接口。Slim V3 默认使用 Pimple DI。Symfony DI 还不支持互操作接口的定义。

这个小库支持将易于使用但功能强大的 Symfony DI 容器与轻量级的 Slim 框架集成,让您能够快速创建出色的、可维护的且可配置的网站。

构建器支持 XML DI 定义。XML 是 Symfony DI 配置中最强大和最完整的形式。构建器还支持 Yaml DI 定义。许多开发者更喜欢将参数放入 Yaml 文件中,将服务定义放入 XML 文件中。提供的最小示例文件展示了这种用法。

如何?

使用 Symfony DIC 创建并返回一个 Slim\App 对象

use Chippyash\Type\String\StringType;
use Slimdic\Dic\Builder;
use Slim\App;

$xmlDiFileLocation = '/mysite/cfg/dic.production.xml';

/**
 * @var Slim\App
 */
$app = new App(Builder::buildDic(new StringType($xmlDiFileLocation)));

请参阅 examples/dic.slim.v2.xml、examples/dic.slim.v3.xml 和 examples/dic.slim.yml 文件,以了解构建支持 Slim 的 DIC 的最小需求。建议您将文件与您的其他 DI 配置文件一起放置,并在主配置中使用 <imports> 指令将其包含在内。

您可以通过利用预编译和后编译函数来添加到编译过程。这通常对于设置合成服务或在 DI 容器中初始化参数很有用。

注册预编译函数

预编译函数在容器编译之前被调用。

use Slimdic\Dic\ServiceContainer;
use Symfony\Component\DependencyInjection\Definition;

Builder::registerPreCompileFunction(function($dic) {
    //set a parameter
    $dic->setParameter('foo', 'bar');
    //set up a synthetic
    $dic->setDefinition('bar', (new Definition())->setSynthetic(true));
});

$app = new App(Builder::buildDic(new StringType($xmlDiFileLocation)));

注册后编译函数

后编译函数在编译容器之后被调用。

后编译函数仅真正适用于设置合成定义,因为编译完成后,DI 容器中的其余部分将冻结且无法更改。

use Slimdic\Dic\ServiceContainer;

Builder::registerPreCompileFunction(function($dic) {
    $dic->setDefinition('foo', (new Definition())->setSynthetic(true));
});

Builder::registerPostCompileFunction(function($dic, $stage) {
    $dic->set('foo', $myFooService);
});

更改库

  1. 将其分叉
  2. 编写测试
  3. 修改它
  4. 发起拉取请求

发现了一个您无法解决的错误?

  1. 将其分叉
  2. 编写测试
  3. 发起拉取请求

或提交问题票据

注意。在发起拉取请求之前,请确保您已经将代码重置为 HEAD。

在哪里?

库托管在Github上。可在Packagist.org找到

查看更多包,请访问ZF4 Packages

关于编码和咖喱的杂谈,请访问我的博客My blog

安装

安装Composer

生产环境

    "chippyash/slim-symfony-dic": ">=3,<4"

在 composer.json 的 "requires" 部分添加

开发环境

克隆此仓库,然后在本地仓库根目录下运行 Composer 以拉取依赖

    git clone git@github.com:chippyash/Slim-Symfony-Dic.git Slimdic
    cd Slimdic
    composer install --dev

运行测试

    cd Slimdic
    vendor/bin/phpunit -c test/phpunit.xml test/

许可证

本软件库遵循BSD 3 Clause license

版权所有 © 2016-2018,Ashley Kitson,英国

历史

V1.0.0 初始发布

V1.1.0 更新依赖项

V1.1.1 添加到包的链接

V1.1.2 验证 PHP 7 兼容性

V1.1.3 更新 Slim 依赖到 3.*

V1.1.4 更新依赖项

V1.1.5 更新构建脚本

V2.0.0 取消对 PHP 7.0 的支持,更新为使用 7.1,主要原因是底层库不支持 7.0

V2.0.2 修复单元测试以在 PHP 7.1 下运行

V3.0.0 BC 断裂。取消对 PHP <5.6 的支持

V3.1.0 许可证从 GPL V3 更改为 BSD 3 Clause

V3.1.1 依赖更新