编写可移植的PHP代码
1. 保持配置集中放置。
作为一个通用的准则,建议将大多数信息保存在一个位置(可能是一个文件中),这样在需要修改信息时,就能在同一个位置进行所有必要的修改。
2. 编写可重用的代码;
如果刚刚结束了其他站点或应用程序的开发工作,那么应该意识到您已经具有了县城的、可以很容易应用于新项目的代码。最好的方法是利用创建可重用组建或功能片的观念来编写面向对象的代码。
权衡代码重用的可能性时,有许多重要问题需要考虑:
(1)项目的需求出现变化时会发生什么?
(2)向代码中添加新功能是否容易?
(3)一段时间直呼,是否还能理解这些代码?
(4)代码是否易于与其他应用程序继承?
(5)所做的假设是否能够应用于其他站点上的工作?
作为一位有经验的PHP开发人员,您有一个主要责任:应不断地了解软件开发各种更为深奥的知识,例如,设计模式、企业应用架构,作为一种提高开发技巧的方法,更重要的,也是一种节约时间的方法。您的知识面越广,开始下一个大项目时,失败的风险就越小。
3. 始终使用完整的PHP标记;
PHP支持用多种风格的标记来标识代码部分,包括短标记(<? ?>)和ASP风格标记(<% %>)。标记风格可以通过php.ini中的short_open_tag和asp_tag控制。但是要注意,尽管可以切换这些配置,但是其他服务器管理员可能没有进行修改,这会造成问题。PHP与XML卫兵打不过混合在一起时,短标记风格会造成问题。
4. 始终使用超级全局变量,不要使用register_globals;
确认php.ini文件中包含以下代码:register_globals = off;这可强制您听过特殊的预定义超级全局变量(例如,$_GET['username'])访问输入的数据,确保不会与脚本中创建的变量冲突。
6. 始终检查magic quotes.
magic quotes是PHP提供的一种功能,帮助PHP初学者防止开发的站点中出现安全漏洞。magic quotes功能可以在脚本能够访问进入的URL查询字符串、表单张贴文章和cookie数据之前,自动向这些值中添加转义字符(反斜杠),表示字符串中应该包括引号,而不是表示字符串结束的引号,如果将数据直接插入到数据库中,并且打开了magic quotes功能,那么就不会存在恶意用户可能篡改数据库的风险。
不过,我更倾向于关闭magic quotes,而由自己处理SQL语句的转义数据。
编写可移植的PHP代码的更多相关文章
- 如何提升我的HTML&CSS技术,编写有结构的代码
前言 之前写了四篇HTML和CSS的知识点,也相当于是一个知识点汇总.有需要的可以收藏,平时开发过程中应该会遇到这些点,到时候再查看这些博客可能更容易理解.从这篇开始更多的介绍开发过程经常让人头痛的前 ...
- 深入理解JavaScript系列(1):编写高质量JavaScript代码的基本要点
深入理解JavaScript系列(1):编写高质量JavaScript代码的基本要点 2011-12-28 23:00 by 汤姆大叔, 139489 阅读, 119 评论, 收藏, 编辑 才华横溢的 ...
- 编写高质量JS代码的68个有效方法(八)
[20141227]编写高质量JS代码的68个有效方法(八) *:first-child { margin-top: 0 !important; } body>*:last-child { ma ...
- 编写高质量JS代码的68个有效方法(七)
[20141220]编写高质量JS代码的68个有效方法(七) *:first-child { margin-top: 0 !important; } body>*:last-child { ma ...
- 编写高质量JS代码的68个有效方法(六)
[20141213]编写高质量JS代码的68个有效方法(六) *:first-child { margin-top: 0 !important; } body>*:last-child { ma ...
- 编写高质量JS代码的68个有效方法(四)
[20141129]编写高质量JS代码的68个有效方法(四) *:first-child { margin-top: 0 !important; } body>*:last-child { ma ...
- 编写高质量JS代码的68个有效方法(三)
[20141030]编写高质量JS代码的68个有效方法(三) *:first-child { margin-top: 0 !important; } body>*:last-child { ma ...
- 编写高质量JS代码的68个有效方法(二)
[20141011]编写高质量JS代码的68个有效方法(二) *:first-child { margin-top: 0 !important; } body>*:last-child { ma ...
- JavaScript手札:《编写高质量JS代码的68个有效方法》(一)(1~5)
编写高质量JS代码的68个有效方法(一) *:first-child { margin-top: 0 !important; } body>*:last-child { margin-botto ...
随机推荐
- 【HHHOJ】NOIP模拟赛 捌 解题报告
点此进入比赛 得分: \(30+30+70=130\)(弱爆了) 排名: \(Rank\ 22\) \(Rating\):\(-31\) \(T1\):[HHHOJ260]「NOIP模拟赛 捌」Dig ...
- tmux 用z关闭之后的恢复
ctrl+b 然后z是全屏 但是如果是ctrl+z就是关闭窗口了 tmux ls看所有窗口 然后 tmux attach -t 2或者3就恢复
- 跑rbgirshick的fast-rcnn代码
需要安装Caffe.pycaffe cython.python-opencv.easydict matlab(主要用于对PASCALvoc数据集的评估) 为什么要bulid cython.caffe. ...
- 题解P3951【小凯的疑惑】
相信参加OI的oiers都是数学高手吧 我好像不是 (滑稽 那应该大家都接触过邮资问题吧! 所谓邮资问题,就类似于这一题,给定a和b两种邮资数,求最大的不能凑出的邮资 数.这里给出公式:最大的不能集出 ...
- C# FileInfo 类
FileInfo类不像File类,它没有静态方法,仅可用于实例化的对像.FileInfo对像表示在磁盘或网络位置的文件,注意它不是流,为了读写文件,必须创建Stream对像. fileInfo类提供了 ...
- C# 接口慨述
接口(interface)用来定义一种程序的协定.实现接口的类或者结构要与接口的定义严格一致.有了这个协定,就可以抛开编程语言的限制(理论上).接口可以从多个基接口继承,而类或结构可以实现多个接口.接 ...
- 转载:java分布式服务框架Dubbo的介绍与使用
1. Dubbo是什么? Dubbo是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案.简单的说,dubbo就是个服务框架,如果没有分布式的需求,其实是不需 ...
- Centos7之Nginx
1.安装 下载RPM: wget http://nginx.org/download/nginx-1.16.0.tar.gz 解压:tar -zxf nginx-1.16.0.tar.gz 安装: c ...
- 零基础入门Python实战:四周实现爬虫网站 Django项目视频教程
点击了解更多Python课程>>> 零基础入门Python实战:四周实现爬虫网站 Django项目视频教程 适用人群: 即将毕业的大学生,工资低工作重的白领,渴望崭露头角的职场新人, ...
- 三步搞定Vmware固定虚拟机的IP
1.修改vmware的虚拟网络编辑器 按照图中红色方框的方法设置,子网IP可以设置成自己想要的,点击NAT设置,记住网关IP. 2.进入centos虚拟机系统 编辑 vim /etc/sysconfi ...