1. 在得当的时候利用PHP – Rasmus Lerdorf

没有谁比PHP的创建者Rasmus Lerdorf明白PHP用在什么地方是更合理的,他于1995年发布了PHP这门措辞,从那时起,PHP就像星火燎原,烧遍了全体开拓阵营,改变了互联网的天下。
可是,Rasmus并不是因此而创建PHP的。
PHP是为理解决web开拓者的实际问题而出身的。

和许多开源项目一样,PHP变得盛行,盛行的动机并不能用正常的哲学来进行阐明,乃至盛行得有些孤芳自赏。
它完备可以作为一个案例,一个办理各种Web问题的工具需求所引起的案例,因此当PHP刚涌现的时候,这种工具需求全部聚焦到PHP的身上。

php原则顶级PHP年夜师的开辟原则 CSS

但是,你不能奢望PHP可以办理所有问题。
Lerdorf是第一个承认PHP只是一种工具的人,并且PHP也有很多力所不能及的情形。

根据事情的不同来选择得当的工具。
我跑了很多家公司,为了说服他们支配和利用PHP,但是这并不虞味着PHP对所有问题都适用。
它只是可以一个办理大部分问题的front-end脚步措辞。

作为一个web开拓者,考试测验用PHP办理所有问题是不科学的,同时也会摧残浪费蹂躏你的韶光。
当PHP玩不转的时候,不要犹豫,试用一下其他的措辞吧。

2. 利用多表存储提高规模伸缩性 – Matt Mullenweg

没有人乐意质疑Matt Mullenweg在PHP方面的威信性,他开拓了这个星球上最盛行的blog系统,(依赖一个强大的社区力量支持): WordPress. 创建Wordpress往后,Matt和他的团队启动了WordPress.com平台,一个基于WordPress MU的免费blog站点。
现在,Wordpress.com已经拥有大约400万用户, 这些用户每天供应超过 140,000篇的日志。
(要查看更多Wordpress.com的统计情形,请点击这里.)

如果有人知道如何让网站的规模伸缩自若,这个人一定是Matt Mullenweg。
2006年的时候 Matt对Wordpress的数据构造进行了前瞻性的改进,并且阐明了为什么Wordpress MU对每个blog利用独立的MYSQL表格, 而不是把所有的blog数据都塞进一个巨大的表格。

我们测试过这个方法,但是创造如果要扩展它的伸缩性,代价太高。
如果用一个整体的数据构造,在大流量面前,你将会面临做事器 硬件的问题。
在MU里面。
用户们都被分布到独立的表格当中,并且可以轻易地组织起来。
举个例子,WordPress.com把用户的数据分散存储到 4096个数据库中,这些数据库可以分散大规模的数据访问,实现流量和压力分流。

数据表的可迁移性让代码(blog)可以运行得更快,并且让系统具备更强的伸缩性。
依赖强大的缓存策略和灵巧的数据库利用策略, Matt向人们展示了时下最盛行的Facebook和Wordpress.com都可以在PHP下稳定运行,并且处理惊人的访问量。

3. 千万不要相信用户 – Dave Child

Dave Child是Added Bytes (previously ilovejackdaniels.com) 网站的核心人物,这个网站以他出色的《cheat sheets for many programming languages》而有名。
Dave为很多英国的公司做事,并且已经在编程天下里树立起相称的威信。

Dave为PHP开拓者供应了很多深谋远虑的建议,并总结成了《writing secure code in PHP》:千万不要相信你的用户,他们乃至可能会侵害你。

有一条web开拓的基本原则,我重复多少遍都以为不足,那便是:千万不要相信你的用户,同时要假设你网站中的每个数据单元都是从用户那里网络来的恶意代码。
很多时候,你必须用javascript在客户端考验表单提交过来的内容, 如果你习气了如此,那么,这是一个好习气。
如果安全性对你来说很主要,这便是最主要最须要学习的原则。

Dave目前正致力于为它的《Writing Secure PHP》系列书本整理实例,书的末了他说:

末了,变得偏执一点吧。
除非你认为你的站点永久不会受到攻击,否则就正视所有的问题,当问题真正发生的时候,你的情形会变得很糟。
你须要把每个用户都算作会带来一场攻防站的黑客,想尽统统办法来保护站点的安全,同时想好相应问题的办理方案。

 4. 多利用PHP缓存 – Ben Balbo

Ben Balbo开拓了Site Point,一个为developers和designers供应辅导的网站。
他是墨尔本PHP开拓和开源俱乐部的成员, 因此他对PHP有一定的理解,同时对PHP caching有一定的想法和履历。

如果你拥有一个访问量很大,但更新并不频繁的站点(比如blog,基于某种CMS),或许它须要进行一些改造,这些改造不会花费太多的韶光,但是对性能有突出的贡献。
如果要为一个繁芜/更新频率很快的站点建立缓存机制,过程可能会很弯曲,但是好处也是显而易见的。

PHP缓存技能有很多种,Ben为我们推举了如下一些:

◆缓存函数的运行结果

◆设置过期韶光

◆缓存IE下载的文件

◆模板缓存技能

◆Cache_Lite

由于PHP作为动态措辞的特性,缓存机制对付更新频率并烦懑的站点来说非常主要。

5. 利用IDE, Templates和Snippets加速PHP开拓 – Chad Kieffer

当Chad Kieffer从UI设计和数据库优化的事情中抽身出来的时候,他会在他的博客2 tablespoons上分享很多技能履历。
由于Chad多方面的全面发展,他常常可以创造其他程序员不能创造的问题,并形成干系履历,尤其是他开拓网站 的方法。
他参与了网站开拓的各个环节,因此他的建议对付提高网站开拓的大局不雅观非常有用。

Chad认为利用Eclipse PDT(Eclipse’s PHP development package) 这样的IDE,同时利用一些模板技能和开源项目可以有效地提高PHP的开拓速率。

紧凑的操持,长长的to do lists以及deadlines让开发职员非常苦闷。
不过有些功能,比如Eclipse Templates,可以有效减少编码的韶光和出错的几率。

常日来说,任何项目都可以自动化,自动化程度越高, 你完成项目的韶光就越短。
花韶光来开拓利用频率很高的框架和模板,将会节省你往后更多韶光。
同时,利用像Eclipse and the PDT package这样的IDE,你会创造效率得到明显提高,IDE可以自动闭合,补全分号并且可以在本地debug。

 6. 利用好PHP的过滤函数 – Joey Sochacki

或许Joey Sochacki并不像Matt Mullenweg那样有名 ,但他也是一个履历丰富的开拓者,并且通过他的博客Devolio分享了很多技能履历Joey创造在编写php代码的过程中有很多地方须要进行过滤,但却并没有太多的coder关注php的内置过滤函数。

过滤数据是我们常常须要做的事情,但是很多功能丰富的PHP内置过滤函数却不为人知。
利用类似filter_ 的PHP内置函数,我们险些可以处理所有的过滤任务,包括数据类型验证/URL/email和IP地址验证/分外字符处理等等。

过滤是一件繁芜的事情,但是我相信joey的创造会给你很多启示,让你认识到PHP强大的过滤功能。

7. 利用PHP框架 – Josh Sharp

对付是否该当利用Zend, CakePHP, Code Igniter, 或者 其他PHP框架,一贯存在着很多争议,但是在web开拓者的心中,他们有自己衡量的标准。
Josh Sharp自己创建了一家供应面包和黄油做事的网站,因此他对付利用PHP框架来开拓网站有一定的履历。
他认为利用一个PHP框架来进行项目开拓(use a PHP framework ),可以有效地节省韶光,并且减少出错的几率。
为什么?由于他以为PHP实在是太好上手了。

PHP的易于利用有时候也有缺陷,由于并不严格的语法,常常会导致很多缺点代码的出身。
但如果利用一个PHP框架,出错的几率就会大大减少。

PHP框架可以让你的代码构造更加规范,并且节省大量韶光。

8. 不要利用PHP框架 – Rasmus Lerdorf

与Josh的不雅观点正好相反,PHP的鼻祖Rasmus Lerdorf却认为最好不要利用PHP框架,为什么?由于不基于框架的PHP性能更好。
Rasmus在Drupalcon 2008的演讲上,用“Hello World”的例子来比拟了一些框架PHP和大略PHP之间的性能,结果显示框架PHP的性能要远远掉队。

9. 利用批处理 – Jack D. Herrington

Jack Herrington对PHP天下并不陌生, 并且为大名鼎鼎的IBM developerWorks贡献过超过30篇的专搞, 同时出版过《PHP Hacks》的书,因此他是一个真正的专家。

Herrington推举利用批处理和Cron来代替那些可以运行在后台的程序脚步,Web用户并不愿意在线等待你的处理过程,以是有些事情更适宜放到后台来处理。

诚然,在某些情形下,这有点大材小用了,但是你可以清楚地看到,利用Cron, MySQL, PHP面向工具的方法以及Pear::DB这些便捷的工具来创建一个批处理工具并不是一件繁芜的事情。

Jack认为利用cron, PHP和MySQL在后台处理一些任务,比起多进程的业务逻辑要划算得多。

两种方法我都考试测验过,我认为Cron非常符合”Keep It Simple, Stupid” (KISS) 的原则,它让后台处理变得大略。
与多进程的业务逻辑比较,它没有内存溢出的风险。
你可以创建一个大略的批处理脚本,并且在cron中运行,这个脚本会定时检讨是否有任务须要处理,处理完之后就会自动退出,因此你不用担心是否有进程卡壳,或者陷入去世循环。

 10. 及时启用缺点报告 – David Cummings

David Cummings有一个专门供应CMS软件做事的公司 ,并且得到过几次奖 ,他有非常丰富的PHP开拓履历。
David曾经写过《two PHP tips he wished he’d learned in the beginning》,个中一点便是:及时启用缺点报告,这会节省大量的韶光。

我见告人们,最主要的事情便是最大程度地开启PHP的缺点报告,为什么?由于PHP可能会隐蔽很多小问题:

◆变量没有预定义

◆在代码片段中引用了不可用的变量

◆利用了未定义的常量这些成分看起来并不是什么大事,除非你在利用面向工具的方法编写一些类库。
常日,关闭缺点报告将可能使你付出更大的成本来掩护你的代码。

缺点报告可以帮你轻易地找到代码的问题所在,如果缺点报告的等级够高,细微的缺点都能被立即创造,帮助你节省整体debug的韶光。