在WEB开发世界里PHP是最流行的语言之一从PHP里你能够很容易的找到你所需的脚本遗憾的是很少人会去用最佳做法去写一个PHP程序这里我们向大家介绍PHP的种最佳实践当然每一种都是经过大师们证明而得出的
在合适的时候使用PHP – Rasmus Lerdorf
没有谁比PHP的创建者Rasmus Lerdorf明白PHP用在什么地方是更合理的他于年发布了PHP这门语言从那时起PHP就像燎原之火烧遍了整个开发阵营改变了互联网的世界可是Rasmus并不是因此而创建PHP的PHP是为了解决WEB开发者的实际问题而诞生的
和许多开源项目一样PHP变得流行流行的动机并不能用正常的哲学来进行解释甚至流行得有些孤芳自赏它完全可以作为一个案例一个解决各种Web问题的工具需求所引起的案例因此当PHP刚出现的时候这种工具需求全部聚焦到PHP的身上
但是你不能奢望PHP可以解决所有问题Lerdorf是第一个承认PHP只是一种工具的人并且PHP也有很多力所不能及的情况
根据工作的不同来选择合适的工具我跑了很多家公司为了说服他们部署和使用PHP但是这并不意味着PHP对所有问题都适用它只是可以一个解决大部分问题的frontend脚步语言
作为一个web开发者尝试用PHP解决所有问题是不科学的同时也会浪费你的时间当PHP玩不转的时候不要犹豫试用一下其他的语言吧
使用多表存储提高规模伸缩性 – Matt Mullenweg
没有人愿意质疑Matt Mullenweg在PHP方面的权威性他开发了这个星球上最流行的blog系统(依靠一个强大的社区力量支持) WordPress 创建Wordpress以后Matt和他的团队启动了WordPresscom平台一个基于WordPress MU的免费blog站点现在Wordpresscom已经拥有大约万用户 这些用户每天提供超过 篇的日志 (要查看更多Wordpresscom的统计情况请点击这里)
如果有人知道如何让网站的规模伸缩自如这个人一定是Matt Mullenweg年的时候 Matt对Wordpress的数据结构进行了前瞻性的改进并且解释了为什么Wordpress MU对每个blog使用独立的MYSQL表格 而不是把所有的blog数据都塞进一个巨大的表格
我们测试过这个方法但是发现如果要扩展它的伸缩性代价太高如果用一个整体的数据结构在大流量面前你将会面临服务器硬件的问题在MU里面用户们都被分布到独立的表格当中并且可以轻易地组织起来举个例子WordPresscom把用户的数据分散存储到个数据库中这些数据库可以分散大规模的数据访问实现流量和压力分流
数据表的可迁移性让代码(blog)可以运行得更快并且让系统具备更强的伸缩性依靠强大的缓存策略和灵活的数据库运用策略 Matt向人们展示了时下最流行的Facebook和Wordpresscom都可以在PHP下稳定运行并且处理惊人的访问量
千万不要相信用户 – Dave Child
Dave Child是Added Bytes (previously ilovejackdanielscom) 网站的核心人物这个网站以他出色的《cheat sheets for many programming languages》而闻名 Dave为很多英国的公司服务并且已经在编程世界里树立起相当的权威
Dave为PHP开发者提供了很多深谋远虑的建议并总结成了《writing secure code in PHP》千万不要相信你的用户他们甚至可能会伤害你
有一条web开发的基本原则我重复多少遍都觉得不够那就是千万不要相信你的用户同时要假设你网站中的每个数据单元都是从用户那里收集来的恶意代码很多时候你必须用JAVAscript在客户端检验表单提交过来的内容 如果你习惯了如此那么这是一个好习惯如果安全性对你来说很重要这就是最重要最需要学习的原则
Dave目前正致力于为它的《Writing Secure PHP》系列书籍整理实例书的最后他说
最后变得偏执一点吧除非你认为你的站点永远不会受到攻击否则就正视所有的问题当问题真正发生的时候你的情况会变得很糟你需要把每个用户都看成会带来一场攻防站的黑客想尽一切办法来保护站点的安全同时想好相应问题的解决方案
多使用PHP缓存 – Ben Balbo
Ben Balbo开发了Site Point一个为developers和designers提供指导的网站他是墨尔本PHP开发和开源俱乐部的成员 因此他对PHP有一定的了解同时对PHP caching有一定的想法和经验
如果你拥有一个访问量很大但更新并不频繁的站点(比如blog基于某种CMS)或许它需要进行一些改造这些改造不会花费太多的时间但是对性能有突出的贡献 如果要为一个复杂/更新频率很快的站点建立缓存机制过程可能会很曲折但是好处也是显而易见的
PHP缓存技术有很多种Ben为我们推荐了如下一些
◆缓存函数的运行结果
◆设置过期时间
◆缓存IE下载的文件
◆模板缓存技术
◆Cache_Lite
由于PHP作为动态语言的特性缓存机制对于更新频率并不快的站点来说非常重要
使用IDE Templates和Snippets加速PHP开发 – Chad Kieffer
当Chad Kieffer从UI设计和数据库优化的工作中抽身出来的时候他会在他的博客 tablespoons上分享很多技术经验由于Chad多方面的全面发展他经常可以发现其他程序员不能发现的问题并形成相关经验尤其是他开发网站的方法他参与了网站开发的各个环节因此他的建议对于提高网站开发的大局观非常有用
Chad认为使用Eclipse PDT(Eclipses PHP development package) 这样的IDE同时使用一些模板技术和开源项目可以有效地提高PHP的开发速度
紧凑的计划长长的to do lists以及deadlines让开发人员非常苦闷不过有些功能比如Eclipse Templates可以有效减少编码的时间和出错的几率
通常来说任何项目都可以自动化自动化程度越高 你完成项目的时间就越短花时间来开发使用频率很高的框架和模板将会节省你以后更多时间同时使用像Eclipse and the PDT package这样的IDE你会发现效率得到明显提高IDE可以自动闭合补全分号并且可以在本地debug
[] []