EvaEngine即将启动,目前只能将尚存于想象中的EvaEngine描述一下,权当YY。等项目完成后再两相对照,也是一番乐事。

一句话定义的话,EvaEngine是一个基于PHP5/PHP6以及Zend Framework 2.0(下称ZF2),面向开发者的Web应用快速开发引擎。

引擎的概念是原创的,这是为了区别是开发框架(Framework)与最终产品(Product)而提出的。 一般来说,框架的作用是统一开发规范,封装底层功能,并不涉及最终产品的业务逻辑。

EvaEngine本身包含了ZF2框架,在框架的基础上实现了Web应用中复用率最高的业务逻辑,如用户登录注册、内容管理、邮件通知、文件管理等,同时又避免一些复杂的业务逻辑的掺入。最终目的是让开发者可以节省大量构建基础功能和设计时间,更加专注于产品原型和业务逻辑的实现。 可能看到这里有人已经会想到了,EvaEngine解决的最核心的问题,就是产品开发中的耦合,包括逻辑层面的耦合和代码层面的耦合。所以EvaEngine会分为三层

  • Framework (框架层):对ZF2做进一步封装,一些底层的快捷实现
  • Module (模块层):对基本业务逻辑的封装
  • Plugin (插件层): 对基本业务逻辑的补充,从而实现复杂业务逻辑

之所以有信心实现这些,一部分建立在这些年产品开发积累的经验,另一部分则基于ZF2带来的变革。

ZF一直在向其他语言借鉴,尤其是java,ZF2比起ZF1几乎是一个全新的框架,大量引入了来自java的概念,最明显的就是DI(依赖注入 Dependence Injection)。

私以为只要能解决问题,哪怕照搬java都不是一件坏事。在企业和团队开发中,DI带来的以配置控制代码的方式,能让整个开发流程变得更加规范、更灵活,等于强迫程序员改掉许多hard - coding的毛病。

ZF2的另一个法宝则是事件驱动,基于事件的构架将不再依赖于程序顺序执行,代码想放在哪里都可以,进一步提供了解除耦合的条件。

其他像命名空间(php namespace),闭包等全新引入php的概念,都会是EvaEngine不可缺少的支持。

可能ZF2所需要的开发环境支持是一些开发者的顾虑。在现在网络设备如此便宜的环境下,得到一个有最新php版本支持的环境并不是一件难事,就像HTML5引发的变革一样,如果仅仅因为开发环境而不去拥抱新的技术,可能不知不觉间,就已经被时代淘汰了。