基于Typecho CMS框架开发大中型应用

大中型应用暂且定义为:大于等于3个数据表的应用!汗吧!

Typecho原本是一款博客系统,其框架体系有别于市面上一般意义MVC框架,主体代码以自创的Widget为基类,整体非常简洁。

Typecho基本特性如下:

  1. 单一入口
  2. 除Db配置外,其他配置存于DB中
  3. 路由配置也存于DB中
  4. 自创Widget层,无传统Model层
  5. 自创Action层,类似传统的Controller层
  6. Hook机制
  7. 泛Plugin机制,Plugin包含注册已有Hook的Handler、扩展已有Widget的方法、注册新的前端Route以映射新的Action、注册后端管理界面
  8. 支持UI主题

为什么要基于Typecho开发应用

我又不是Typecho官方开发者,也不在相关背景单位segmentfault.公司工作,为什么要用这种小众框架?

事实上,你确实不需要用Typecho,PHP世界的框架已太多,完全可以选择更高级的框架。

不知从何时开始,我发现自己是一个“小众”患者,不喜欢走寻常路。就像Linux在桌面领域可能已经够小众了,但我喜欢用更小众的FreeBSD。

这只是我的一次尝试而已。

实践

原则:基于MVC模式,增加Service层。

  1. C层

前面我们说过,Typecho中自创了Action概念,这便是我们C层的基础,但Action没有明确的定义。所以我会定义出一个Controller基类。

  1. M层

Typecho中没有Model的概念,都是直接调用SQL查询。所以也要定义Model基类。

  1. V层

视图文件是View的内容载体,为减少学习成本,不再引入模板引擎,即直接使用PHP语法并直接引人C中执行。

  1. 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框架开发大中型应用的更多相关文章

  1. 基于java spring框架开发部标1078视频监控平台精华文章索引

    部标1078视频监控平台,是一个庞杂的工程,涵盖了多层协议,部标jt808,jt809,jt1078,苏标Adas协议等,多个平台功能标准,部标796标准,部标1077标准和苏标主动安全标准,视频方面 ...

  2. 基于mpvue的框架开发微信小程序(搭建环境)

    原文转载自「刘悦的技术博客」https://v3u.cn/a_id_103 美团很早就开源了mpvue这个项目,如此看来,美团可不仅仅是一家团购网站,真正的技术驱动型企业,使得我们多了一种用来开发微信 ...

  3. php 微信公众号+微商城开发 基于Thinkphp3.2框架开发

    说明:本教程是自己自学+自己的理解+扩展(包括学习过程中遇到的一些问题) 参考教程:麦子学院--李忠益--http://www.maiziedu.com/u/70409/ 微盟: http://www ...

  4. 基于Spring Boot框架开发的一个Mock

    背景:在项目后端接口开发还未完成,我们无法进行自动化接口用例的调试,希望与开发同步完成接口自动化用例的编写及调试,待项目转测后,可以直接跑自动化用例,提高测试效率. 选用的maven + Spring ...

  5. 上篇: php 微信公众号 基于Thinkphp3.2框架开发

    说明:本教程是自己自学+自己的理解+扩展(包括学习过程中遇到的一些问题) 参考教程:麦子学院--李忠益--http://www.maiziedu.com/u/70409/ 微盟: http://www ...

  6. 基于AngularJS/Ionic框架开发的性能优化

    AngularJS作为强大的前端MVVM框架,虽然已经做了很多的性能优化,但是我们开发过程中的不当使用还是会对性能产生巨大影响. 下面提出几点优化的方法: 1. 使用单次绑定符号{{::value}} ...

  7. 【原创】基于NodeJS Express框架开发的一个VIP视频网站项目及源码分享

    项目名称:视频网站项目 开发语言:HTML,CSS(前端),JavaScript,NODEJS(expres)(后台) 数据库:MySQL 开发环境:Win7,Webstorm 上线部署环境:Linu ...

  8. 下篇: php 微商城 基于Thinkphp3.2框架开发

    (12)微信商城 ① 前台模板引入 a.引入微信商城模板的css+js+Images+img+bootstrap b.引入微商城的首页index.html及详情页detail.html页面模板 注意: ...

  9. 在IIS和Nginx上通过代理部署基于ant-design-pro前端框架开发的应用

    一.本文解决的主要问题 通过对前端静态资源站点进行代理服务设置,实现对后端API接口的代理,从而实现前端的独立部署,即通过代理的设置实现对http://IP0:Port0/api/xxx的请求转发至h ...

随机推荐

  1. jq源码立即执行函数的undefined参数

    函数参数是undefined,那这个undefined是个变量标识符还是值呢? <JS权威指南>函数一章讲过,未给函数形参传值的时候,该形参的值是undefined.所以形参undefin ...

  2. 说说设计模式~装饰器模式(Decorator)

    返回目录 装饰器模式,也叫又叫装饰者模式,顾名思义,将一个对象进行包裹,包装,让它变成一个比较满意的对象,这种模式在我们平时项目开发中,经常会用到,事实上,它是处理问题的一种技巧,也很好的扩展了程序, ...

  3. Atitit python3.0 3.3 3.5 3.6 新特性 Python2.7新特性1Python 3_x 新特性1python3.4新特性1python3.5新特性1值得关注的新特性1Pyth

    Atitit python3.0 3.3 3.5 3.6 新特性 Python2.7新特性1 Python 3_x 新特性1 python3.4新特性1 python3.5新特性1 值得关注的新特性1 ...

  4. paip.2013年技术趋势以及热点 v2.0 cae

    paip.2013年技术趋势以及热点 v2.0 cae HTML5 多核编程 物联网 可穿戴计算设备 3. 物联网 无论是M2M(机器对机器)通信应用,还是NFC(进距离通信)技术,都是物联网的组成部 ...

  5. spring之BeanFactory

    spring的IOC容器能够帮我们自动new对象,对象交给spring管之后我们不用自己手动去new对象了.那么它的原理是什么呢?是怎么实现的呢?下面我来简单的模拟一下spring的机制,相信看完之后 ...

  6. AntV 数据可视化解决方案发布

    今天蚂蚁金服发布了一套数据可视化规范AntV. AntV 是一套专业的数据可视化规范,这套规范的目的是为了让可视化的使用者更懂数据可视化.这套规范是蚂蚁金服在可视化建设过程中的理论沉淀,它可以很好得指 ...

  7. 【Hibernate】一级、二级缓冲

    Hibernate缓冲按级别共分为两种,一级缓冲(Session)和二级缓冲(SessionFactory),有的也说是三种,还有一种是查询缓冲,当然,查询缓冲是依托于二级缓冲. ok,什么是缓冲? ...

  8. 深入理解CSS变形transform(2d)

    × 目录 [1]变形原点 [2]变形函数 [3]多值 前面的话 CSS变形transform是一些效果的集合,主要是移动.旋转.缩放和倾斜这四种基本操作,还可以通过设置matrix矩阵来实现更复杂的效 ...

  9. 【原创】.NET读写Excel工具Spire.Xls使用(2)Excel文件的控制

                  本博客所有文章分类的总目录:http://www.cnblogs.com/asxinyu/p/4288836.html .NET读写Excel工具Spire.Xls使用文章 ...

  10. struts学习

    1.集成tomcat到eclipse http://www.eclipsetotale.com/tomcatPlugin.html 下载最新的plug后,解压.解压后的文件放到eclipse的plug ...