我们应该使用完全限定的名称:: class

时间:2016-06-06 08:47:55

标签: symfony php-5.5 fully-qualified-naming

使用Symfony我习惯使用类名解析器::class(自php5.5起):

use AppBundle\Entity\Product;

// ...

$resolver->setDefaults(array(
    'data_class' => Product::class
));

而不是FQN字符串:

$resolver->setDefaults(array(
    'data_class' => 'AppBundle\Entity\Product'
));

我这样做是出于可读性目的,因为在某些智能IDE中进行内窥镜检查很方便。

但是,我在官方文档中没有看到这种做法的例子。所以我想知道这是因为兼容性问题(< php5.5)还是因为系统导入我们需要引用的所有类都不好。

我的问题是:在我们需要引用FQN的地方使用::class是一种好习惯吗?

1 个答案:

答案 0 :(得分:1)

答案似乎是:

除了与php< 5.5的兼容性问题之外,没有什么可以阻止我们在任何需要的地方使用::class名称解析器。