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也有类似的特性