Laravel 4 - 自定义控制器命名空间中的Autoload Laravel类

时间:2014-03-26 20:30:04

标签: php laravel laravel-4 autoload autoloader

快速(可能是愚蠢的)问题。

我正在为我的控制器使用命名空间,如下所示:

namespace Members;

use DB;
use Input;
use PerformanceReport;
use Redirect;

class AdminController extends MembersController {

正如预期的那样,我必须为我希望使用的Laravel类提供use语句。

根据我的理解,如果使用得当,作曲家自动加载器可以防止这种情况发生。

所以我的问题是,是否可以配置自动加载器以满足我的需求,如果是这样,我将如何做到这一点?

1 个答案:

答案 0 :(得分:3)

您的问题与PHP命名空间的工作方式有关,而与作曲家的自动加载器无关。

如果你的班级在namespace Controllers;并且你写Redirect::to('/') php会认为你所引用的类是在当前声明的命名空间中(在这种情况下是Controllers /重定向)。你可以写\Redirect::to('/')或者像你一样把use Redirect语句放在最前面。

Composer的自动加载只是将名称空间映射到他们的文件目录(请参阅vendor/composer/autoload_classmap.php了解它的映射方式)。

如果您想深入了解作曲家的自动加载,我建议您阅读PSR-0和PSR-4。