PHP中di容器上的常量
最近,我在几个框架中看到了一种实践。它包括用类常量而不是字符串注册容器中的对象。通常,对象会添加到下面的示例中PHP中di容器上的常量,php,ioc-container,Php,Ioc Container,最近,我在几个框架中看到了一种实践。它包括用类常量而不是字符串注册容器中的对象。通常,对象会添加到下面的示例中 $container[MyClass::name] = function(){ // create object here } 我通常使用字符串: $container['MyClass'] = function(){ // create object here } 我想知道这种做法的作用。这与IDE如何进行重构有关 假设您拥有类MyClass 您可以使用: $co
$container[MyClass::name] = function(){
// create object here
}
我通常使用字符串:
$container['MyClass'] = function(){
// create object here
}
我想知道这种做法的作用。这与IDE如何进行重构有关 假设您拥有类
MyClass
您可以使用:
$container['MyClass'] = function(){
// create object here
}
如果重命名类“MyClass”,则需要在使用该类的任何地方重命名该字符串。重构工具将很难确定字符串“MyClass”,在本例中是对类的引用,而不是一段随机过程
如果您使用:
$container[MyClass::name] = function(){
// create object here
}
您需要重命名类MyClass,但许多IDE(例如phpstorm、vscode等)都有工具可以自动重命名(重构)代码中任何地方对该类的引用,因为您使用的是类而不是字符串,所以他们会发现MyClass需要重命名
这样,维护第二个要比维护第一个容易得多