Web

PHP框架基准测试比较

这篇文章是一个翻译,英文原文在 PHP framework comparison benchmarks,我的英文水平很一般,可能会有翻译不确切的地方(把握不大地方使用斜体进行了标志,并附带了英文原文),请指正,并参看原文。 Emeric.Lee 2008.10.18
为了讨论我在另一篇文章(重新审视PHP框架 CodeIgniter VS Zend)中作出的关于PHP框架性能的比较,我决定公开我所取得的详细结果。我一开始没有公开这个测试结果是因为测试不是在完全隔离的条件下进行的(独立的客户端和服务器),但是每个测试结果应该是准确的,这也是我测试的目的。 另外,我仅仅使用了‘请求数/秒' 作为性能的衡量标准,我不认为在实际应用中还有其它的因素可以更好的衡量WEB应用程序的相应速度。

工具

测试计算机有1.8G的AMD Sempron CPU,521M 内存,运行Ubuntu Gutsy (7.10) Desktop 操作系统。 我使用 httperf 运行测试,另外也使用apachebench 进行了一些重复测试,测试结果是吻合的。 我使用CakePHP, CodeIgniter, Zend Framework 和Ruby on Rails.分别建立了一个相同的首页,而且我还是用静态HTML和过程化的PHP代码(又称为套管程序)复制实现了相同的功能,以此作为测试基准。 我决定在测试中包含数据访问,测试中应用程序从数据库中提取了4条记录并生成结果页面。 有兴趣的人可以下载测试文件,包括Mysql数据库的SQL文件。测试代码假设数据库有Root用户并且没有密码(如果你准备自己运行测试,也许需要修改相关部分代码)。

测试结果

(更多…)

Emeric lee
Web

重新审视PHP框架 CodeIgniter VS Zend

这篇文章是一个翻译,英文原文在 PHP frameworks revisited - CodeIgniter vs Zend,我的英文水平很一般,可能会有翻译不确切的地方(把握不大地方使用斜体进行了标志,并附带了英文原文),请指正,并参看原文。 Emeric.Lee 2008.10.17
我们计划从头开始一个新项目,为此评估了一些PHP框架。我们的备选列表有CakePHP , CodeIgniter , Symfony和Zend 。 我们分别使用这4种框架编写了一个相同的小应用(一个简单的Wiki应用),希望我们能尽快选定一个最合适的。 声明:我会努力确保自己的客观性,虽然我是一个ColdeIginter的爱好者。我所工作的公司是Zend的合伙人(我们已经使用了Zend Platform 和 Zend Studio)。I can’t help factoring that in(更多…)

Emeric lee
Web

设计模式学习总结(笔记)

我是那种非科班出身的程序员,很少完整阅读成本的技术类书籍,感觉很多书的内容都有太多罗嗦的地方。但是最近看到一本书《Guide to PHP Design Patterns》(中文名<PHP实际模式指南>)让我重温了久违的阅读享受。

这是一本系统介绍设计模式在PHP编程中应用的书,基本回答了两个问题:1、什么是设计模式,2、有哪些常用设计模式;还有一个附加问题:常用设计模式在 PHP中的具体实现。全书语言流畅,用例明晰,虽然看完后你会发现有一些设计模式其实你早已经无意识的使用了,但是它仍然会让你有顿悟的体会。

围绕这本书,我用了3天的时间研究了一下关于设计模式的一些概念,最后又用了2天来总结,就有了这篇文章。总结的主要目的是让自己更深刻的理解设计模式,也可以说是个全面一点的学习笔记,文字力求通俗,避免概念陷阱。

很多文字写的可能有点武断、大胆。肯定也会有些错误的认识,等到有更深刻的理解时再来完善把!

1 关于设计模式

设计模式可以理解为对开发中常见问题/需求的解决方案的高度抽象,这些问题/需求有具体的细节的,也有全局的结构性的。

在层次上,它应该是一个介于代码库和设计指导思想之间的一个东西,比代码库要抽象地多,比指导思想原则又要具体的多。

个人认为对于设计模式的学习应该是这样的一个目的,即“知道这件事情原来可以这样解决”,而不是“这件事情应该这样解决”。似乎还可以应验了“无招胜有招”这句经典武侠用语,你应该学习、理解这些设计模式,然后忘掉这些乱七八糟的东西。

当然,这些也许都是我无知无畏的狂妄。

(更多…)

Emeric lee
深入PHP

phpbb plus1.52中的一个BUG

昨天突然发现我用phpbb plus1.52的建的一个论坛出错了,表现为不管是前台还是后打开后都是一片空白。尝试查找原因> 首先再config.php中添加如下两行代码,强制显示错误资料,结果出了一堆的notice但没看到任何error,而正常页面还是没有输出。 error_reporting(E_ALL); ini_set('display_errors',1); (更多…)

Emeric lee
Web

CSS方式控制DIV页面内绝对居中的好办法

核心思路是,通过设置top和Left居中(50%),然后再用负的margin,实现DIV中心居中。 这段代码兼容性很好,代码简单,没用Tabel,没用JS,没用expression 不过总觉得现在CSS的系统设计上还有很多不合理的地方,简单页面设计用一下也可,但复杂的页面设计完全用CSS几乎不可能,而且标准化设计所推崇的表现和内容分离现阶段根本实现不了,往往为了实现表现上的设计还要去修改HTML文件;CSS只能作为补充,不可能取代。

进一步的解释:

1)首先通过设置left和top都为50%,这时div的左上角应该在显示区域的中心
css
top: 50%;   left: 50%;
2)然后根据div的宽和高,分别做1/2的偏移,这是通过margin来实现,实际使用中不一定1/2,你可以根据特殊需要调整.
css
margin: -200px auto auto -275px;
height: 400px; width: 550px;
3)div必须有确定的宽和高,只有这样才能计算出margin. 完整代码如下 (更多…)

Emeric lee