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

简介: 基于Typecho CMS框架开发大中型应用大中型应用暂且定义为:大于等于3个数据表的应用!汗吧!Typecho原本是一款博客系统,其框架体系有别于市面上一般意义MVC框架,主体代码以自创的Widget为基类,整体非常简洁。

基于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

==========
未完待续...

目录
相关文章
|
2月前
|
前端开发 JavaScript PHP
Thinkphp在线客服系统源码多语言外贸版_PHP客服系统源码Uniapp开发搭建+论文设计
Thinkphp在线客服系统源码多语言外贸版_PHP客服系统源码Uniapp开发搭建+论文设计
|
5月前
|
安全 前端开发 API
PHP框架详解 - ThinkPHP框架
PHP框架详解 - ThinkPHP框架
|
7月前
|
PHP
HuoCMS|免费开源可商用CMS建站系统HuoCMS 2.0下载(thinkphp内核)
HuoCMS|免费开源可商用CMS建站系统HuoCMS 2.0下载(thinkphp内核)
175 2
|
自然语言处理 PHP SEO
开源多语言商城 CMS 企业建站系统,MyCms v3.9 发布
MyCms 是一款基于 Laravel 开发的开源免费的开源多语言商城 CMS 企业建站系统。
365 1
开源多语言商城 CMS 企业建站系统,MyCms v3.9 发布
|
Oracle JavaScript 数据可视化
一个基于NetCore开发的前后端分离CMS系统
一个基于.Net 3构建的简单、跨平台、模块化建站系统。系统业务简单、代码清晰、层级分明、全新架构便于二次扩展开发。支持多种数据库,可用于OA、ERP、CRM、BI、物流系统等系统。
212 0
一个基于NetCore开发的前后端分离CMS系统
|
缓存 PHP 开发者
MyCms 自媒体 CMS 系统 v3.3.1,支持 Swoole 热更新
MyCms 自媒体 CMS 系统 v3.3.1,支持 Swoole 热更新
197 0
MyCms 自媒体 CMS 系统 v3.3.1,支持 Swoole 热更新
|
网络协议 关系型数据库 MySQL
从0到1教你在AWS中部署动态网站Typecho系统
Typecho 是使用 PHP 语言开发的一套博客程序,同时也支持多种数据库(Mysql, PostgreSQL, SQLite),本篇文章将演示部署Typecho到aws上的过程。
353 0
从0到1教你在AWS中部署动态网站Typecho系统
|
PHP 开发者
MyCms 自媒体 CMS 系统 v3.2.2,广告插件优化
MyCms 自媒体 CMS 系统 v3.2.2,广告插件优化
136 0
MyCms 自媒体 CMS 系统 v3.2.2,广告插件优化
|
前端开发 开发者 数据库
对比开源cms三巨头Joomla wordpress drupal哪个才是真正的王者
但凡接触过互联网的人,大都知道网页和博客,或许您也非常希望能有一个属于自己的网页或者博客。当前,也有各式各样的程序代码可以让你创建一个网站或者博客,我们现在更多的把他们称之为CMS(内容管理系统)。如果您在互联网上搜索一下,估计自己也会非常迷糊到底该采用哪种程序,在您开始之前,无妨一读下面的内容。
|
缓存 安全
开源内容管理系统 Joomla CMS 3.9.10发布
Joomla 3.9.10现已推出。这是针对3.x系列Joomla的安全修复程序版本,它解决了一个安全漏洞,包含30多个错误修复和改进。 什么是3.9.10?Joomla 3.9.10包含一个安全漏洞修复程序和一些错误和改进,包括: 安全问题已修复低优先级 - 子窗体字段中的Core - Filter属性允许远程执行代码(影响Joomla 3.
929 0