大中型应用暂且定义为:大于等于3个数据表的应用!汗吧!
Typecho原本是一款博客系统,其框架体系有别于市面上一般意义MVC框架,主体代码以自创的Widget为基类,整体非常简洁。
我又不是Typecho官方开发者,也不在相关背景单位segmentfault.公司工作,为什么要用这种小众框架?
事实上,你确实不需要用Typecho,php世界的框架已太多,完全可以选择更高级的框架。
不知从何时开始,我发现自己是一个“小众”患者,不喜欢走寻常路。就像linux在桌面领域可能已经够小众了,但我喜欢用更小众的FreeBSD。
这只是我的一次尝试而已。
原则:基于MVC模式,增加Service层。
前面我们说过,Typecho中自创了Action概念,这便是我们C层的基础,但Action没有明确的定义。所以我会定义出一个Controller基类。
Typecho中没有Model的概念,都是直接调用SQL查询。所以也要定义Model基类。
视图文件是View的内容载体,为减少学习成本,不再引入模板引擎,即直接使用PHP语法并直接引人C中执行。
在复杂应用中,MVC最大的问题就是可重用的代码提炼不够,有的人C层太胖,有的人M层太胖。引入Service业务层,有助于对业务层的提炼和封装,尽可能提高代码的重复使用度。
Demo项目:Typecho Alumni校友录插件项目
代码地址:https://github.com/web3d/plugins/tree/master/Alumni
项目代码结构:
/plugins/Alumni/Base/Action.php|Model.php|Service.php|Helper.php
/plugins/Alumni/Model/
/plugins/Alumni/Service/
/plugins/Alumni/Action/
/plugins/Alumni/views/default/
/plugins/Alumni/Plugin.php
/plugins/Alumni/panel.php
==========
未完待续...
新闻热点
疑难解答