要想代码写的好,前提配置作的好php
error_reporting = E_ALL | E_STRICT前端
display_errors = 测试机设置为 On,生产机设置为 Offmysql
display_startup_errors = On程序员
log_errors = Onweb
error_log = /home/logs/phperror.logsql
写代码的时候要时刻注意的问题数据库
一、变量必需要初始化,函数或者类的方法的参数要有类型定义;服务器
二、能用 ===、!== 就不用 == 和 != ;框架
三、对外来变量要作防卫式检查;函数
四、不要只考虑正常逻辑,多考虑边界状况;
五、涉及 SQL 以及文件操做要想象各类可能性,尽可能在框架级别作好约束,不要依赖开发人员的能力;
六、要让好的习惯成为你的本能!
一些经验
一、单入口;
入口对一些容易出问题的事情进行检查和初始化,让程序员能够把精力集中在应用层。
好比服务器时间出错检查,路径初始化,GET、POST、FILES 、SERVER 等全局变量的初始化,等等。
二、用类封装代码;
三、作好 Autoload,善用 NameSpace;
四、接管异常处理,在代码里尽可能抛异常;
五、尽可能使用原生和 PECL 扩展函数;
六、代码里慎用 @ 符;
七、为对 CDN 更友善,框架默认输出 no-cache 头,须要时再改变,并尽可能把动态请求和静态资源分开;
八、若是有文件上传功能,能够在入口处这样处理而不须要程序员来操心删掉临时文件:
register_shutdown_function(
‘removeFILESOnShutdown’
);
九、在容许的状况下,升级到更高 PHP 版本;
十、经过 Xdebug 调试,使用 XHProf 了解性能问题并改进;
十一、APC、OpCache、Memcached 还用我说吗?可是在此之上最好再作一层封装,方便之后迁移和调试;
十二、多作 Code Review,三个月后再看本身的代码;
1三、框架和底层代码必定要经得起最严格的考验;
1四、必定要在最严格的方式下开发与测试,最好有独立的测试机;
1五、下降将来的维护成本,编码规范与代码规范,要严格执行,前者能够用 PHP_CodeSniffer 在提交到代码仓库时检查;
1六、服务分层,图像处理等耗时操做,不要和 web 服务混在一块儿。一个小技巧,一些无须用户关心的操做,好比记录用户信息,能够集中放到程序最后使用 fastcgi_finish_request() 方法在断开用户链接后执行。
1七、MySQL 数据库的运行状态可用 mysqltuner.pl 和 tuning-primer.sh 来检查;
1八、服务器以及服务的运行状态,要有及时的监控和报警,没精力,能够用监控宝。
咱们本身,走的更远
一、框架会 unset 掉 GET、POST、COOKIE 等相关数据,对一些外来数据作初始化,好比 GET 操做下,FILES 变量会被清空,必须经过咱们本身封装的方法进行外来数据的获取;
二、咱们针对前端 HTML 代码,分割静态资源并做自动优化,无须人工干预;
三、文件储存实现了统一化,自动去重,这样对开发用户上传内容型的应用很是方便,并且一点都不用担忧被上传注入;
四、咱们有专门的任务处理服务,经过 FastCGI 协议与前端进行通讯,省掉 HTTP 层的开销;
五、不只 Web 是单一入口,任务处理、命令行和计划任务都作了单一入口。