xdaqing
-
Aeolus是一个面向中小型应用的PHP快速开发框架,截止到今天,最新版本是1.0.1,下面的介绍也是针对这个版本的。
首先是为什么要开发另一个PHP框架(Yet Another PHP Framework)? 现在的PHP框架有很多,比如Zend Framework(以下简称"ZF")、 Symfony、CodeIgnitor以及CakePHP等等,为什么不用现有的框架呢?
我对一个框架的要求有三个,分别是 fast(速度快)、 lightweight(轻量级) 和 modular(模块化),我想目前还没有全部符合这三项要求的PHP框架,所以只好自己动手写一个。当然,也有可能因为孤陋寡闻,没听过更好的。
好了,下面开始概述Aeolus在上述三个方面的设计原则。
(1) 执行速度。这个和硬件配置有关,不过还是有很多通用原则的。
第一个是lazy loading,仅在必要的时刻加载必要的代码,避免执行任何冗余代码。
第二个是避免require_once函数。
第三个是避免过度的OOP,我想在ZF中,这个问题比较严重。拿MVC模式来说,一定要使用面向对象的方式才能实现吗?
(2) 轻量级框架
我想不会有很多人喜欢笨重的东西,一个轻量级的框架会很容易上手,并且不需要学习除PHP之外的技术。比如,一个框架的配置文件需要YAML吗?一定要使用额外的模板引擎吗?如果一个框架用纯PHP实现,开发者只要熟悉PHP本身就可以了。
在这个方面,我想有一点值得对比,看过ZF源代码的同学,一定对Zend_Controller部分印象深刻,因为ZF的MVC实现太累赘太复杂了,一点也不符合KISS原则,而Aeolus的MVC实现只用了3个文件。
(3) 模块化开发
UNIX的核心设计哲学之一,就是保持模块化。例如,一个程序只做一件事情,并且做好。然后更复杂的功能可以使用简单的工具组合完成 ,这样就可以降低系统的复杂度,debug也会容易一些。
具体到Aeolus中,就是把不同的功能分组成group,各个group之间互相独立,在必要时又可以共享代码,这样既做到了模块化,又可以实现代码复用。
除去上述3点之外,Aeolus在设计上还降低了部署难度。Aeolus的部署环境是虚拟主机或一台独立服务器,标准适用环境是LAMP平台。这种要求在目前的虚拟主机市场是很容易满足的,而独立服务器可以自己编译相关环境。
Aeolus可以安装到任意次级目录下 ,并且可以在不依赖Apache mod_rewrite的情况下支持clean URL,这样,你可以把Aeolus嵌入到现有平台,而不需要做任何改动。作为一个实例,我曾经使用Aeolus给Project Babel开发了一个后台管理插件。
最后,Aeolus借鉴了Ruby on Rails 和 Django的一些设计思想,可以使用PHP CLI脚本提高开发效率。
上面就是Aeolus的一些开发目标和设计原则,在接下来的文章中,我会更加详细的介绍Aeolus的各部分。
-
2008-07-06
Aeolus 1.0.1发布 - [Aeolus]







