MVC架构在Discuz!插件开发的应用
•本PPT所阐述内容已经在个人能力范围内,对其科学性、安全性、正确性、完整性、及时性、合法性等做义务管理和初步检验,但均不做任何承诺和担保。
•本人对MVC的理解也是非常片面和不全,欢迎各位与本人探讨。邮箱:horseluke@126.com
疑问1:是否做一个Discuz!架构下的多余架构(“ windows 下的linux”)?
个人回答是“否”。原因如下:
MVC只是一种设计思想,与任何具体程序无关;
Discuz!的架构确实已经涵盖了许多方面,但是仍有许多改进的地方,比如版块权限检查,就非常分散。
一个反例:到了Discuz! 6.1时代,作为用户管理和通行证的部分为啥要独立为一个UCenter(同样也是MVC架构)出来呢?
疑问2:插件用MVC是否“小题大做”?
个人回答是“根据实际情况”。原因如下:
对于个人开发的仅有一个或者几个明确功能的插件,以原来的方式开发也无不妥;
假如考虑到多人开发、或者考虑到以后可能需要增加新功能、或者考虑到各个插件之间类库的重用性,MVC不失为一种选择。
注意:前期设计很重要也很花费时间,若觉得耗费不起或者需要赶工,那么不用也罢。
第一种:完全独立外挂型
MVC架构部分:
全部自己编写
期间不用或者很少使用Discuz!提供的函数和类库
单一入口文件部分:
放在论坛根目录下
只是用于引入Discuz!的include/common.inc.php文件(甚至不引入)和框架的初始化文件:
- <?php
- require_once './include/common.inc.php';
- define('APP_PATH',dirname(__FILE__).'/App_Helloworld');
- require(dirname(__FILE__).'/Framework_Core/FWBase.class.php');
- FWBase::startup()->run();
复制代码
|