词条 | PHPWorker |
释义 | PHPWorker的特性?(1、RESTful的架构风格,统一的访问入口 2、完全的面向对象 3、自动加载 4、强调代码复用 5、结构化相似程度高,入门快 6、灵活的子应用开发 7、强调自由性 8、命令行运行的支持 9、透明的模板引擎加载机制) 前言说到PHP开发框架,现在现成的有很多。目前市面上的PHP开发框架都是基于MVC模型的,即Model,View,Controller。其中View和Controller是最容易也是能最清楚分离开的,Model就有些模糊了。Model一般可以分为函数工具库和实际的各种各样的应用逻辑库。函数工具库各个框架基本上都属于自己造轮子的过程,只是在命名或者封装上有些小不同,究其实现本质都是一样的。应用逻辑库是根据各种应用来的,比如论坛系统有帖子Model, 用户Model等等,这些模块之间又有着千丝万缕的逻辑关系。 现在的PHP开发框架的开发引用常见的有Active Record模式,处理数据库的CRUD操作的封装。说白了除了一个URI router之外,就是围绕数据展开的一系列封装。恰恰这也是Web开发的根本,Web开发的最后落脚点除了架构之外就是数据。而数据的问题会被归结为三个问题,一是数据分布式(分库、分表、分区,Replication等等);另一个是高效的检索,这里为什么只说读,因为现在的所有web应用还是以读多写少的现状,即使时下最热闹的微博也不例外,高效的检索既要解决水平方向的检索,这个相对容易些,又要解决垂直方向的大数据检索,垂直分区在大数据情况下的分布式和检索是个矛盾的结合体;最后一个问题就是一数据致性。如何既满足良好的分布式,又满足高效的数据检索,还要一致性。我通过长期的分析研究,发现这就是个无解的问题,只能是在结合应用特性的同时做个取舍。 什么是PHPWorker?PHPWorker是一个PHP的开源开发框架。 PHPWorker的特性?1、RESTful的架构风格,统一的访问入口PHPWorker是一个基于RESTful的Web框架,整个资源请求、接口封装均是基于此,这么做的就是为了形成一个清晰的URI规范。所有的请求都会通过个一个接口,也就是框架中的index.php,来实现对不同应用的资源请求分发。 2、完全的面向对象PHPWorker开发框架是一个完全面向对象的开发框架,使用了继承、抽象、接口等PHP5的所有特性。 3、自动加载PHPWorker开发框架和一些开放框架类似,对整个系统的文件命名,特别是框架核心库的命名有规范。正是有了此规范,才有了框架中所有类对象的调用,不需要显式的require资源,直接去new User()或者User::set()使用即可,这其间就是用了PHP5的__autoload magic 方法。 4、强调代码复用PHPWorker开发框架的另一个目标就是尽量的代码复用,这里不仅仅包括Model,也包括View和Controller。View的代码复用可以理解为控件,Controller的代码复用用了一个新的模型,就是Service。跨应用(比如admin,www,api等)的共同资源的相似控制处理,被封装成一个Service,以此来达到Controller的代码复用。 这个时候有人可能会说,为什么不Web Services呢?不是框架良好的支持Web Service吗?原因是Web Service除了完成相同的功能之外,还有一层额外的通信耗时,而通信在很多时候就是最耗时的。所以没有用,但不代表着不能用。 5、结构化相似程度高,入门快PHPWorker开发框架中除了核心库之外,其他的工作量主要集中在逻辑model和逻辑Controller的开发上。这两块的method相似度很高,特别是Controller,这样对于新入门的朋友来说,就可以快速的照葫芦画瓢了。 6、灵活的子应用开发由于4中说的,高度的代码复用,对拓展一个子应用来说,更多的是程序的调用、拼装,而不是太多的代码编写。 7、强调自由性PHPWorker开发框架对CRUD的封装是最基础的,即sql->db handle->run/get attributes。这样做的原因是让PHP开发人员能够在SQL方面有自己的自主性和灵活性。 8、命令行运行的支持PHPWorker开发框架整个系统采用的不依赖于apache set env环境变量的配置方式,和绝对路径的文件引用方式,在后台命令行程序开发上和Web开发调用上没有区别。 9、透明的模板引擎加载机制PHPWorker开发框架考虑到现在市面上流行的模板引擎,优先使用和封装了Smarty模板引擎,也就是说默认情况支持所有Smarty支持的模板语法及缓存机制。 综上所述,这就是PHPWorker开发框架。 PHPWorker的设计缺陷PHPWorker框架有什么缺陷吗?有,首先它为了面向对象和一些特性,仅支持PHP5以上版本。另外,整个框架虽然已经开发过大型的论坛系统,帖吧系统和队列等系统,方向多样化还是不足,在工具库的封装上还有待完善。 PHPWorker的结构设计PHPWorker的代码结构 |
随便看 |
百科全书收录4421916条中文百科知识,基本涵盖了大多数领域的百科知识,是一部内容开放、自由的电子版百科全书。