我正在尝试用PHP编写TDD样式,而我最大的绊脚石之一(除了缺乏一个像样的IDE)是我必须将我自己的黑客攻击IoC容器才能正确地注入我所有的模拟对象.
有没有人在PHP中使用过Ioc容器?我所能找到的就是PHP IOC上那些烦人的phpclasses.org,它似乎几乎没有任何文档,也没有太多关注.
(这个问题不依赖于特定的IoC框架,因此我的示例中的接口和类型是元类型.只需用适合您喜欢的IoC框架的类型替换它们.)
在我的主要方法中,我通常设置我的容器做这样的事情:
static void Main()
{
IInjector in = new Injector();
in.Register<ISomeType>().For<SomeType>();
in.Register<IOtherType().For<OtherType>();
...
// Run actual application
App app = in.Resolve<App>();
app.Run();
}
Run Code Online (Sandbox Code Playgroud)
我的问题是,你是如何得到注射器的?我通常只是自己注册了注射器并注入了自己注射的类型,但我不确定这是否是正确的"模式".