我有一个:
// administration
app/controller/admin/ProjectsController.php
我也想用:
// public in website
app/controller/ProjectsController.php
但是,在autoload_classmap.php中,它被注册为:
'ProjectsController' => 'app/controller/admin/ProjectsController'
那么,如果我想要一个'ProjectsController'用于公共视图,我该怎么做?
什么是更好的? 2个控制器(管理员和公共),或者一个(混合)。
感谢。
答案 0 :(得分:3)
您应该命名管理控制器。
这样它就可以与PSR相匹配,自动加载器会以不同方式对待它们。
namespace Admin;
位于管理文件的顶部。
修改强>
甚至可能值得命名所有控制器和模型。
因此ProjectController
app\controllers
可以放
namespace ProjectName
然后对于子文件夹中的所有内容,例如: app\controllers\admin
namespace ProjectName\Admin
以及其他文件夹和文件。
这将减少代码与其他任何内容冲突的可能性。
修改:编辑:
在命名空间类之后,您需要引用命名空间之外的类和函数。例如,Controller属于全局命名空间,因此您将\设置为Controller的开头。
这里的文档应该有很多帮助。 PHP Namespaces