0

I have a:

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

And I want use too:

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

But, in autoload_classmap.php, it's registred like that:

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

So, If I want one more 'ProjectsController' for public views, how I need to do?
What is better? 2 controllers (admin and public), or one (hybrid).

Thanks.

4

1 回答 1

3

您应该命名您的管理控制器。

这样它就会匹配 PSR 并且自动加载器会以不同的方式对待它们。

namespace Admin;

在您的管理文件的顶部。

编辑:

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

所以你可以ProjectControllerapp\controllers

namespace ProjectName

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

namespace ProjectName\Admin

对于其他文件夹和文件,依此类推。

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

编辑:编辑:

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

这里的文档应该有很大帮助。PHP 命名空间

于 2013-01-24T10:24:32.407 回答