2011-11-27 109 views
3

我想在PHP中创建我自己的简单MVC框架。我认为提高我的PHP技能是个好主意。MVC - 子文件夹控制器

我对管理部分有疑问,您是如何创建它的?

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

例如:/controller/admin/admin.php

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

+0

您的问题非常广泛。有上千种和另外一种方法,从你的问题来看,并不清楚实际的标准是什么。 – hakre

+0

你的问题非常广泛?这是你的意见。 –

+0

那么,只是分享*你的*意见什么是你的*问题的具体问题? – hakre

回答

1

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

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

使用子目录可能更好的一件事是,它强化了关注点的更好分离,并降低了以相似目录中的许多类似simmilar结束的可能性,这可能会导致某些时候出现混淆。

+1

其实大部分的PHP框架都是完全废话。无处不在的全局状态,代码碎片的废弃,对ORM的痴迷,认证/授权系统的短缺,对SOLID原则的无知......你可以说制作一个框架正在重新发明轮子,但PHP社区仍在制造轮子。 –

+0

@tereško我同意这一说法。 PHP没有什么红宝石。我们没有一个标准的成熟框架。 – Daniel

+0

@丹尼尔,如果在红宝石中使用“成熟框架”,你的意思是创造者所描述的“原型框架,不应该用于生产代码”,并且实际上导致了ActiveRecord的这种延迟风暴,在当前的web框架中实现MVC ..然后你是无能为力。 –

1

我想创建自己的框架是一个伟大的想法,如果只是作为一个练习,以更好地了解后面的Web应用程序的结构。

我做这么自己,我觉得你的方法取决于你想要走多远非常多。

我开始用一个多语言支持子系统和用户数据库管理类,现在我移动到内容管理和数据库查询消毒。

我把我的班文件分离,并通过分组子系统中的文件夹,如multilang或管理员,我认为这是最好的办法。

2

你必须注意的第一件事是Kohana是一个HMVC框架。与其余的一群相比,它有点不同。在这种情况下,admin不是模块,因为它是控制器和其他类的命名空间(尽管kohana仍在使用类似PEAR的“namespacing”)。

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

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

或者你可以做两个组合。

相关问题