为什么选择 ModPHP
(一)极简、轻量级的 CMS 系统
ModPHP 仅包含不到 300 KB 的未压缩源代码,但是麻雀虽小,五脏俱全,ModPHP 搭载了几乎所有的基本 CMS 功能,并且具备其他 PHP 框架所不具有的特性,例如 WebSocket。ModPHP 是一个 PHP 应用程序框架,更是一个初级的 CMS 系统,并且采用和 CMS 相同的安装和运行方式。
(二)模块化开发、自动化扩展
ModPHP 是由各种功能模块组合而成的整体,Mod 的本意就是 Module,默认包含用户、文件、分类目录、文章和评论五个基本模块,支持无限模块扩展,所有模块类统一继承于 mod 类并自动获得对数据的增删查改的方法。
ModPHP 使用的自动化扩展机制,绝不是简单的创建文件以及自动继承,which 是绝大多数 PHP 框架的做法。ModPHP 提供的自动化扩展机制,使得你只需要配置一下数据库结构,就能够获得完整的扩展模块,包括它们处理数据的基本方法,以及模块函数库。
(三)实用、易用,亦可作为插件使用
或许,你还在使用非常原始的手段来实现数据库连接、图像操作什么的,或者使用其他框架的“链式操作”来组织 sql 语句并进行数据库操作。但在 ModPHP 中,你可以使用另一种更为快捷的方式,例如:bool database::insert(string $table_name, array $arg[, int &$id])
。当然,绝大多数情况下,这还是多余的,因为 ModPHP 提供模块接口直接访问和操作数据。
ModPHP 的易用性还在于,它使用前后端一致的设计,也就是说,你可以在 HTML 页面中使用和 PHP 程序相近的 JS 代码实现访问后端操作。真正做到一个规则,前后端适用。
另外,ModPHP 所包含的类库和函数库也可作为插件被其他任何 PHP 程序所引用。
(四)自定义 URL 、自由引用文件,不受模式束缚
或许,你还使用非常原始的方式组织 URL 地址:查询字符串,或者使用着 MVC 框架所谓的“URL 路由”(即伪静态),ModPHP 除了提供伪静态以外,还额外提供了自定义永久链接功能。你可以为网站的每一篇文章设置完全独立的 URL 地址,让这个 URL 体现这篇文章的意图。
在其他框架中,你可能被要求哪些文件应该放在哪些目录以便调用,甚至会要求你使用实体来替换运算符,因为它们使用的“模板引擎技术”并不完善,另外你还须要学习一种新的模板语法。使用 ModPHP,你完全不需要这样。在 ModPHP 中,你可以使用原生的 PHP 代码编写模板,或者使用 HTML 语义标签替换 PHP 语言结构。Template 引擎会出色的解析并编译你的模板,你可以像使用原生代码一样引入文件,也可以使用各种运算符。你不需要学习新的模板语法并能够使用它。
(五)单例模式节约系统资源,防止变量滥用
ModPHP 使用完全的单例模式,这样做的目的是保证系统中所有对象只有一个实例,从而节约系统资源,并且防止由于使用全局变量带来的不安全性。
在防止变量滥用方面,ModPHP 使用自动生成函数机制,确保最大限度的减少变量的使用,转而使用功能更为强大的函数,并且函数名就是数据表的字段名。或许你还在抱怨在接手别人遗留的开发任务时遇到几十上百的变量的困难,使用 ModPHP,完全没有这些顾虑。
(六)分工开发,互不干扰
如(五)中指出的,其他框架可能需要用到很多的变量,在分工开发时务必需要相互沟通交换变量,这使得完全分离的开发任务极难完成。ModPHP 没有这种困扰,开发程序逻辑(大多数逻辑框架已经定义)的人和开发模板的人可以毫不相干,后者只需要接过前者留下的任务,查看已有数据库结构配置即可。
(七)完全面向 API
无论是前端调用,还是后端程序设计,ModPHP 都使用 API 来完成。前台的 API 直接对应类名和方法名,用来请求执行对象和操作。后台使用挂钩机制直接将 Api Hook 回调函数绑定到数据操作和系统加载的各个流程,实现拦截过滤。下面这些调用方式将是你在 ModPHP 中经常见到、并且经常使用的。
mod.php?obj::act[|更多参数]
add_action('api.name', function([$arg]){ /** 执行代码 */ });
(八)多种设计模式结合
ModPHP 使用由单例模式、数据访问对象模式、传输对象模式、拦截过滤器模式、前端控制器模式和装饰器模式等构成的混合模式,这些设计模式的相互配合使得 ModPHP 能够在核心代码非常精简的条件下实现复杂的功能,并提供最大的用户定制性,真正将视图设计与模型、控制器分离。
(九)Socket 全双工通信
WebSocket 是一个时兴的话题,但各种服务器上实现 WebSocket 的方式都千差万别,并且和客户端的操作形式差别太大,难以理解。而在 PHP 领域,WebSocket 更是稀罕之物。
ModPHP 提供全双工通信的 Socket 服务器功能,完美配合 WebSocket 和其他编程语言的 Socket。ModPHP 将 Socket 交互设计成与 WebSocket 一致。在前端,你只需要使用 WebSocket.send() 方法发送 JSON 数据,服务器则使用 SocketServer::send() 回复 JSON 数据。
ModPHP 的 SocketServer 可以与任何支持 Socket 的编程语言所编写的客户端进行双向通信,实现一个服务器、多种客户端的 C/S 架构理念。
(十)极具功能性和可玩性
除了上面所介绍的内容,ModPHP 还提供了许多其他的特性,例如命令行支持(shell 和交互式控制台)。你以为 curl 命令只是 Linux 系统所特有的东西,使用 ModPHP,你也可以在 Windows 下使用 curl 命令,并且比 Linux 自带的更好用。ModPHP 所包含的大部分特性,你都可以将它们运用在控制台中。ModPHP 已经超越了应用程序框架的范畴,它更是一款实用的工具,帮助使用者快速完成事务处理。