mouf/interop.silex.di

该项目是Silex微框架的一个非常简单的扩展。它为Silex添加了使用任何DI容器(而不仅仅是Pimple)的功能。

2.0.x-dev 2015-02-02 11:18 UTC

This package is auto-updated.

Last update: 2024-09-15 04:47:24 UTC


README

该项目是Silex微框架的一个非常简单的扩展。它使得Silex能够使用任何与container-interop兼容的依赖注入容器(而不仅仅是Pimple)。

要使用此功能,您只需使用扩展的Mouf\Interop\Silex\Application类,该类扩展了Silex\Application类。

为什么?

Silex是一个微框架。它建立在Pimple之上,一个用约80行代码编写的非常简单的依赖注入容器(DIC)。Pimple是一个不错的DIC,但随着项目的增长,它可能会变得相当冗长。并且,Silex本身没有使用其他DIC的方法(Silex的Application类扩展了Pimple类)。

此项目允许您直接在Silex项目中添加任何其他依赖注入框架。您不需要填充$app变量来注入依赖项,而是可以在自己的容器中注册条目。您容器中声明的实例将可以使用Pimple的$app['my.instance']语法访问。

如何操作?

扩展的Application类有一个修改过的构造函数

  • __construct(ContainerInterface $container = null, array $values = array())

传递给参数的容器是一个代理查找容器

完成此操作后,您可以使用$app对象访问容器中声明的任何实例,就像在Silex项目中一样。

您的DI容器必须遵守ContainerInterface,它在此container-interop项目中描述。

我可以在Silex中插入哪些DI容器?

开箱即用,您可以将container-interop支持的任何DI容器插入Silex。它们有很多!

安装

此类作为Composer包分发。

{
	require: {
		"mouf/interop.silex.di" : "~2.0"
	}
}

查看示例

查看此用例:使用Mouf框架创建Silex控制器

您是Symfony 2用户吗?

有一个非常类似的包用于Symfony 2应用程序。它允许您向主Symfony 2容器添加额外的容器:查看:interop.symfony.di