编写可移植的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 ...
随机推荐
- 浏览器 DNS缓存与DNS prefetch (DNS预解析)
浏览器 DNS缓存 浏览器DNS缓存的时间跟DNS服务器返回的TTL值无关. 注:TTL(Time-To-Live),就是一条域名解析记录在DNS服务器中的存留时间. 浏览器在获取网站域名的实际IP地 ...
- datetime 插件
1 写一段文本 <div id="nomarl-wrap"> <div class="form-group"> <label c ...
- common-fileupload组件实现java文件上传和下载
简介:文件上传和下载是java web中常见的操作,文件上传主要是将文件通过IO流传放到服务器的某一个特定的文件夹下,而文件下载则是与文件上传相反,将文件从服务器的特定的文件夹下的文件通过IO流下载到 ...
- windows下sorl安装
1. JDK要求 Solr 4.10 要求JDK版本必须是1.7或更高. 2. 下载 下载地址: http://www.apache.org/dyn/closer.cgi/lucene/solr/ 下 ...
- Oracle数据库学习(四)
11.创建表 crate table tab1(f_id number not null,f_a varchar2(7) not null,f_b number(6,2) not null): 主键: ...
- 32-3题:LeetCode103. Binary Tree Zigzag Level Order Traversal锯齿形层次遍历/之字形打印二叉树
题目 给定一个二叉树,返回其节点值的锯齿形层次遍历.(即先从左往右,再从右往左进行下一层遍历,以此类推,层与层之间交替进行). 例如: 给定二叉树 [3,9,20,null,null,15,7], 3 ...
- session 关于localhost和本地IP地址 不共享问题
打比方, 一个请求 localhost:8080/test/test ,一个本地Ip(172.1.1.1:8080/test/test) 1.请求localhost方式 HttpSession s ...
- 关于springboot配置文件的另类读取方法
一.背景故事 前阵子我接手了公司另外一个同事手里的项目,项目是用的springboot 写的,但是比较坑的就是这个项目写的有点不伦不类.虽然是用的springboot,但由于他是拿了一堆代码拼凑起 ...
- ZendFramework-2.4 源代码 - 整体架构(类图)
- linux命令学习-2
1. 对于已经在前台执行的命令,可以重新放到后台执行,首先按ctrl+z暂停已经运行的进程,然后使用jobs查看进程编号n:2. bg命令将停止的作业放到后台运行 bg %n3. kill -9 XX ...