Laravel 4 -在自定义控制器命名空间中自动加载Laravel类


Laravel 4 - Autoload Laravel classes in custom controller namespace

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

我为我的控制器使用一个命名空间,像这样:

namespace Members;
use DB;
use Input;
use PerformanceReport;
use Redirect;
class AdminController extends MembersController {

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

据我所知,如果使用正确,作曲器自动加载器可以防止这种情况发生。

所以我的问题是,是否有可能配置自动加载器以满足我的需求,如果是这样,我该怎么做呢?

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

如果你的类是在namespace Controllers;和你写Redirect::to('/') php会假设你所指的类是在当前声明的命名空间(在这种情况下控制器/重定向)。你既可以写'Redirect::to('/'),也可以像你一样在上面放一个use Redirect语句。

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

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