MVC -子文件夹控制器


MVC - sub-folders controllers

我想在PHP中创建自己的简单MVC框架。我想提高我的PHP技能是个好主意。

我有一个关于管理部分的问题,你如何创建它?

在kohana中,控制器可以在子文件夹中:

例如:/controller/admin/admin.php

还有什么方法?因为长代码可以共享给父助手/库或父模型。

首先要注意的是Kohana是一个HMVC框架。与其他同类相比,它有点不同。在这种情况下,admin与其说是一个模块,不如说是一个用于控制器和其他类的命名空间(尽管kohana仍然使用类似pear的"命名空间")。

这种方式还可以将应用程序的其他部分分开。假设您有很多处理标记和标记云的代码。然后,您可以为此创建另一个名称空间/模块。并将它们用作子控制器。这是HMVC的好处之一。

将管理部分与一般应用程序分离的另一种方法是将它们视为单独的应用程序,但随后您需要另一个位置来存放共享组件(最有可能来自模型层)。然后你有一个以上的/appliation/文件夹在你的服务器上。

我在这里假设您想要创建另一个MVC框架的原因确实是为了提高您的PHP技能,而不是试图创建一个框架以在公司的日常基础上使用,例如。我知道你没有要求这样的建议,但是有很多很棒的MVC框架(你可能已经知道其中的许多)。不过,我认为这是学习设计模式和提高PHP(或任何其他语言)技能的好方法。

作为你的问题,我看到的最常见的方法是使用不同的目录,如"admin"子目录你提到的,然后强制名称后缀或前缀的控制器,如"UsersAdminController.php"例如,添加"AdminController"在结束。

使用子目录可能更好的一点是,它强制了更好的关注点分离,并减少了在同一目录中使用许多相似类的可能性,这可能会在某些时候引起混乱。

我认为创建自己的框架是一个好主意,如果只是作为一个练习,以更好地理解web应用程序背后的结构。

我自己就是这么做的,我认为你的方法在很大程度上取决于你想走多远。

我从多语言支持子系统和用户数据库管理类开始,现在我转向内容管理和数据库查询清理。

我把类分开放在文件中,按子系统分组放在文件夹中,如multilang或admin,我认为这是最好的方法。