在PHP DI容器常量

问题描述 投票:2回答:1

我看到在最近的时代在几个框架使用的做法。它由在与类恒定的而不是字符串容器登记的对象。通常情况下,对象被添加下面下面的例子。

$container[MyClass::name] = function(){
    // create object here
}

我通常使用的字符串:

$container['MyClass'] = function(){
    // create object here
}

我想知道这种做法的设施。

php ioc-container
1个回答
1
投票

这与IDE的怎么办重构做。

比方说,你有类MyClass

而你使用:

$container['MyClass'] = function(){
    // create object here
}

如果重命名类“MyClass的”,你需要无处不在,你使用这个命名的字符串。重构工具将有一个更难的时间来弄清楚,字符串“MyClass的”,在这种情况下是一个类的引用,而不是一块随机proze的。

如果你使用:

$container[MyClass::name] = function(){
   // create object here
}

你需要重命名MyClass类,但很多IDE的(如phpstorm,vscode等)有工具来自动重命名(重构)的参考类无处不在你的代码,因为你的一类,而不是一个字符串他们会弄清楚,MyClass的需要被重新命名。

这样,它是一个更容易保持第二比第一。

© www.soinside.com 2019 - 2024. All rights reserved.