Laravel 4中的自动加载类图

时间:2013-01-24 10:20:36

标签: php laravel laravel-4 autoloader

我有一个:

// administration
app/controller/admin/ProjectsController.php

我也想用:

// public in website
app/controller/ProjectsController.php

但是,在autoload_classmap.php中,它被注册为:

'ProjectsController' => 'app/controller/admin/ProjectsController'

那么,如果我想要一个'ProjectsController'用于公共视图,我该怎么做?
什么是更好的? 2个控制器(管理员和公共),或者一个(混合)。

感谢。

1 个答案:

答案 0 :(得分:3)

您应该命名管理控制器。

这样它就可以与PSR相匹配,自动加载器会以不同方式对待它们。

namespace Admin;

位于管理文件的顶部。

修改

甚至可能值得命名所有控制器和模型。

因此ProjectController app\controllers可以放

namespace ProjectName

然后对于子文件夹中的所有内容,例如: app\controllers\admin

namespace ProjectName\Admin

以及其他文件夹和文件。

这将减少代码与其他任何内容冲突的可能性。

修改:编辑:

在命名空间类之后,您需要引用命名空间之外的类和函数。例如,Controller属于全局命名空间,因此您将\设置为Controller的开头。

这里的文档应该有很多帮助。 PHP Namespaces