PHP有很多框架,而成熟的框架都会有分组功能,一般用于项目的分组。
开发者使用框架时经常会遇到不知道何时才该用分组功能的困惑。
我认为分组功能,应该用于项目中有共同数据交互较多的子项目。
举个实例。
大型门户网站
举猫扑为例,它是一个典型的“大型娱乐门户网站”。我们可以通过导航条对其结构有一个初步的了解。
我们可以通过2行的URL来辨别其功能块:大杂烩是“dzh.mop.com”而是贴吧“tt.mop.com”。
典型的子域名子项目。
他们需要通信彼此之间一些数据,如:Sessions、Models、User Caches等等。
Q:这种时候我们是不是可以用框架中的项目分组功能了呢?
A:不一定的。
无论是“大杂烩”还是“贴吧”都是近乎一个完整的项目(可以单独做为一个站点来使用了!)。
这种大型门户网站,为了目录结构清晰,可以选择不使用项目分组,而是在项目目录创建一个文件夹存放项目程序。这样的缺陷是无法通过框架中提供的一些函数(例如import())访问其他模块、程序。如要使用其他项目的内容你可能会需要使用require_once或namespace,破坏了框架的结构性。这是框架设计者不希望看到的。你也可以使用项目分组,将所有的程序代码放在总项目的文件夹下。享受到框架带来的便捷,同时因为过深的目录而头疼。
不使用项目分组的优势:
1.目录层不多(这是最大的优点,想象一下,如果一个Action或Controllers的文件夹展开有几十个文件夹,几百个.php……)
2.目录结构清晰,易于维护和管理
使用项目分组的优势:
1.可以使用框架自带的引入函数方便的访问相同项目下不同子项目的模块。
那么我们如何判断自己的同一个网站下的不同项目是否应该使用框架项目分组呢?
首先我们要明白项目分组的好处就是可以共用一些封装好的程序块和因作用域(Session)而局限(当然你也可以增加更多的域来实现广域的‘内容引用’)的内容。
假如你子项目功能较为单一、不复杂,那么项目分组反而比新建一个项目来的快捷方便。
么错,你么看错……项目分组就这点用=W=
当然不同的框架自身都会给使用了‘项目分组’的项目更便捷的开发方式,使用or不使用,这就看项目的需求和框架的功能了。
大家也可以参考下YII的项目分组结构和介绍:http://www.yiiframework.com/wiki/155/the-directory-structure-of-the-yii-project-site/
发表回复