Php 我的所有控制器是否总是在symfony2中包含特定文件
当我不得不在所有文件中使用一些类似的Php 我的所有控制器是否总是在symfony2中包含特定文件,php,symfony,doctrine-orm,Php,Symfony,Doctrine Orm,当我不得不在所有文件中使用一些类似的use语句时,我觉得很烦人 我时不时地要在所有康罗尔人身上抄写一些非常常见的行,比如 use Symfony\Bundle\FrameworkBundle\Controller\Controller; use Sensio\Bundle\FrameworkExtraBundle\Configuration\Method; use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route; use Sensio
use语句时,我觉得很烦人
我时不时地要在所有康罗尔人身上抄写一些非常常见的行,比如
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Method;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Template;
是否有任何方法,我定义在一个文件中,他们将被所有控制器使用我的整个应用程序 名称空间的存在是为了防止文件之间的命名冲突,这就是为什么按照您的要求进行命名可能是不明智的。它可能会导致幻象错误,而您无法解释这些错误,因为您忘记了为类名添加别名。更糟糕的是,如果其他人必须维护您的代码,他们可能真的很难弄明白为什么他们的控制器类不能正确加载
但是,如果您真的想要,您可以使用来实现这一点。我建议坚持使用好的老式名称空间和use
语句,但如果您想忽略我的建议,可以执行以下操作:
<?php // namespace_aliases.php
class_alias(
'Symfony\Bundle\FrameworkBundle\Controller\Controller',
'Controller'
);
class_alias(
'Sensio\Bundle\FrameworkExtraBundle\Configuration\Method',
'Method'
);
// etc.
如果您使用IDE,这种麻烦可以最小化。例如,NetBeans自动完成类的完整FQCN。然后可以使用其功能将定义移动到“使用”部分。PHPStorm和eclipsepdt也有类似的特性