Yii 快速,安全,专业的PHP框架(2)

Yii是一个基于组件、用于开发大型 Web 应用的高性能 PHP 框架。在WEB开发中Yii可以最大限度的实现代码重用,极大的提高开发的速度。名字Yii(读音是Yee or [ji:],应该就是“易”的读音 )代表的是容易(easy),高效(efficient)和可扩展(extensible)
环境需求
要运行一个 Yii 驱动的 Web 应用,你需要有一个支持 PHP 5.1.0 或以上版本的 Web 服务器。
对于打算使用 Yii 的开发者来说,懂得面向对象编程(OOP)会非常有帮助。因为 Yii 是一个纯 OOP 的框架。
适用范围
Yii 是一个通用的 Web 编程框架,可以用于开发几乎所有的 Web 应用。由于它是轻量级的且具备了成熟的缓存解决方案,它特别适用于开发高流量的应用,例如门户,论坛,内容管理系统(CMS),电子商务系统等等。
与同类产品比较
和多数PHP框架类似,Yii 是一个 MVC 的框架。
Yii 以其优异的性能,丰富的功能和清晰的文档胜出其他框架。Yii 从一开始就仔细设计以适合严谨的 Web 应用开发。它既不是一个其他项目的衍生品,也不是一个第三方工作的组合。 它是作者丰富的 Web 应用开发经验和对大多数流行的 Web 编程框架与应用的研究与思考的成果。

性能

yii性能
Yii是一个高性能的框架,以下的图表展示了与其他流行的PHP框架比较下Yii的高效率。在这个图表中, RPS代表“每秒请求”,描述了此框架每秒执行多少个请求。这个数字越大,此框架的性能越高,我们可以看到,在这个比较中 Yii 胜过其他框架。The performance advantage of Yii is especially significant when the widely used APC extension is enabled.
Performance alone is not the whole story (otherwise we should all use plain HTML or PHP). With such superior performance, Yii still provides a very rich feature setwhich can greatly improve your development efficiency.
为什么Yii如此之快
Yii如此快速是因为它广泛地使用lazy loading技术。比如, 直到第一次使用到这个类,才会包含进来;直到对象第一次访问,才会创造这个对象。Other frameworks suffer from the performance hit because they would enable a functionality (e.g. DB connection, user session) no matter it is used or not during a request.
标准设置
下面我们解释怎样设计基准应用并且得到上面的RPS结果.
基准请求
Since our goal is to compare the minimal overhead of each framework, the benchmark application for each framework should be the simplest one. We choose to display a "Hello World" text string by placing an echo statement in the default action of each application. Any additional framework features (e.g. session) are disabled to ensure fairness of the comparison. To obtain a copy of the benchmark applications, please check out the phpmark project.
为什么用“Hello World”
我们做“hello world”的测试主要是为了达到我们的目标,如:找出每个框架地最小代价。很多人抱怨说应用程序“hello world”很没意义,因为在真实世界的应用程序经常需要去涉及更复杂的任务,比如数据库查询。这是不对的。实际上,尤其是在一些大规模的web2.0应用程序中,我们经常遇到的情况通常是相当地接近“hello world”。例如:应用程序要响应ajax请求返回当前服务器的时间。页面有大部分内容在缓存,应用程序只需要抓取缓存的内容并显示之。
另一个用“hello world”的原因是当引用更复杂(如:数据库查询)的特征时,对照的清晰将很难保证。例如:框架可以在数据库查询执行得非常有效率,但缺少缓存方案。当另一个框架在数据库查询上稍慢,却有高级的缓存特征来缓和系统损耗。总而言之有包含了太多的因素来进行清晰的对比。
标准工具和环境
用ApacheBench工具的指令“ab –t 30 -c 10 URL”来获取RPS编号(如:在并发级数10运行test 30秒)。为了获得每个框架的编号,我们先停止再启动Apache WEB服务器来避免干扰。还要运行测试程序几次来“预热”测试环境。在phpmark project中,有个叫benchmark. sh的shell script使基准程序自动化。

Credits

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/14129b28bb64998e39025c9df9592ce0.html