基于typecho cms框架开发大中型应用
大中型应用暂且定义为:大于等于3个数据表的应用!汗吧!
typecho原本是一款博客系统,其框架体系有别于市面上一般意义mvc框架,主体代码以自创的widget为基类,整体非常简洁。
typecho基本特性如下:
单一入口
除db配置外,其他配置存于db中
路由配置也存于db中
自创widget层,无传统model层
自创action层,类似传统的controller层
hook机制
泛plugin机制,plugin包含注册已有hook的handler、扩展已有widget的方法、注册新的前端route以映射新的action、注册后端管理界面
支持ui主题为什么要基于typecho开发应用
我又不是typecho官方开发者,也不在相关背景单位segmentfault.公司工作,为什么要用这种小众框架?
事实上,你确实不需要用typecho,php世界的框架已太多,完全可以选择更高级的框架。
不知从何时开始,我发现自己是一个“小众”患者,不喜欢走寻常路。就像linux在桌面领域可能已经够小众了,但我喜欢用更小众的freebsd。
这只是我的一次尝试而已。
实践
原则:基于mvc模式,增加service层。
c层前面我们说过,typecho中自创了action概念,这便是我们c层的基础,但action没有明确的定义。所以我会定义出一个controller基类。
m层typecho中没有model的概念,都是直接调用sql查询。所以也要定义model基类。
v层视图文件是view的内容载体,为减少学习成本,不再引入模板引擎,即直接使用php语法并直接引人c中执行。
service层在复杂应用中,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
==========
未完待续...
以上就介绍了基于typecho cms框架开发大中型应用,包括了php语法,github方面的内容,希望对php教程有兴趣的朋友有所帮助。