1、如何正确的创建一个网站的Index页面
创建每一个网站时,建立网站的index页面是首要做的事情之一。如果你是一个PHP新手,在编写index页面时典型的做法是只对index页面所需的内容进行编程,其它链接创建另一个页面。不过,如果想学习一种更高效的方式来实现PHP编程,可以采用“index.php?page=home”模式,许多网站都在采用这种模式。
2、使用Request Global Array抓取数据
实际上我们没有任何理由使用$_GET和$_POST数组来抓取数值。$_REQUEST这个全局数组能够让你获取一个get或form请求。因此,多数情况下解析数据的更高效代码大体如下:
$action = isset($_REQUEST['action']) ? $_REQUEST['action'] : 0; 3、利用var_dump进行PHP代码调试
如果你在寻找php调试技术,我必须说var_dump应该是你要找的目标。在显示php信息方面这个命令可以满足你的所有需要。而调试代码的多数情况与得到PHP中的数值有关。
4、PHP处理代码逻辑,Smarty处理展现层
Smarty是一个使用PHP写出来的模板PHP模板引擎,是目前业界最著名的PHP模板引擎之一。它分离了逻辑代码和外在的内容,提供了一种易于管理和使用的方法,用来将原本与HTML代码混杂在一起PHP代码逻辑分离。简单的讲,目的就是要使PHP程序员同前端人员分离,使程序员改变程序的逻辑内容不会影响到前端人员的页面设计,前端人员重新修改页面不会影响到程序的程序逻辑,这在多人合作的项目中显的尤为重要。
5、的确需要使用全局数值时,创建一个Config文件
动辄创建全局数值是一种糟糕的做法,不过有时候实际情况的确又需要这么做。对于数据库教程表或数据库连接信息使用全局数值是一个不错的想法,但不要在你的PHP代码中频繁使用全局数值。另外,更好的一种做法是把你的全局变量存放在一个config.php文件中。
6、如果未定义,禁止访问!
如果你正确的创建了页面,那么任何其他人没有理由访问index.php或home.php之外的index.php页面。一旦index.php被访问后,你可以通过获得变量的方式来打开需要的页面。你的index页面应该包含类似的以下代码:
define('yourPage',1); 然后,其它页面应该包含:
if (!defined('yourPage')) die('Access Denied'); 这么做的目的是防止直接访问你的其它php页面。这样,任何试图不通过index.php访问其它网页的人,将得到“访问被拒绝”的消息。
7、创建一个数据库类
如果你正在进行数据库编程(在PHP中非常常见的任务),一个不错的想法是创建一个数据库类来处理任何数据库管理功能。示例代码如下:
public function dbExec($query) { $result = $this->db->exec($query); if (PEAR::isError($result)) errorRedirect($result->getMessage(), true); else return $result; } 这个函数仅接收一个查询语句并对其执行。它还处理可能出现的任何错误。你还可以在这儿包含审核代码,不过我更喜欢使用一个类似的审核函数:
// checks if arguments given are integer values not less than 0 - has multiple arguments function sanitizeInput() { $numargs = func_num_args(); $arg_list = func_get_args(); for ($i = 0; $i < $numargs; $i++) { if (!is_numeric($arg_list[$i]) || $arg_list[$i] < 0) errorRedirect("Unexpected variable value", true); } } 8、一个php文件处理输入,一个class.php文件处理具体功能
不让代码变得混乱的一个重要方法是:获取用户输入后,将其重定向到其它函数来进行处理。原理非常简单,php文件获得我们需要的任何输入,然后将其执行重定向到类文件中的一个函数。举例来讲,假设有一个类似“index.php?page=profile&action=display”的URL。由profile.php来检索该网址并得到操作是“display”。然后使用一个简单的switch函数,我们来执行真正的显示函数:
require_once PROJECTROOT.'libs/messages.class.php'; $message = new Message(); switch ($action) { case 'display': $message->display(); break; ... 如上所示,我使用了一个消息类,然后开始进行switch检查。$message只是被类中的调用函数使用的一个对象。
9、了解你的SQL语句,并总是对其审查(Sanitize)
正如我以前所提到的,任何php网站中最重要的部分有99%的可能是数据库。因此,你需要非常熟悉如何正确的使用sql。学会关联表和更多高级技术。下面我将展示一个使用MySQL的函数示例,并使用本文第7条函数进行审查。
private function getSentMessages($id) { $this->util->sanitizeInput($id); $pm_table = $GLOBALS['config']['privateMsg']; $users = $GLOBALS['config']['users']; $sql = "SELECT PM.*, USR.username as name_sender FROM $pm_table PM, $users USR WHERE id_sender = '$id' AND sender_purge = FALSE AND USR.id = PM.id_receiver AND is_read = TRUE ORDER BY date_sent DESC"; $result = $this->dbQueryAll($sql); return $result; } 首先,我们对用户输入进行检查(通过一个GET变量传递消息id),然后我们执行我们的SQL命令。注意这儿SQL的用法。你需要了解如何使用别名和关联表。
10、当你只需要一个对象时,使用单例模式
在PHP中相当常见的一种情形时,我们只需要创建一个对象一次,然后在我们的整个程序中使用它。一个很好的例子就是smarty变量,一旦被初始化后就可以在任何地方使用。这种情形的一个很好实现方案就是单例模式。示例代码如下:
function smartyObject() { if ($GLOBALS['config']['SmartyObj'] == 0) { $smarty = new SmartyGame(); $GLOBALS['config']['SmartyObj'] = $smarty; } else $smarty = $GLOBALS['config']['SmartyObj']; return $smarty; } 注意,我们拥有一个全局smarty变量(该示例中它在config.php中被初始化),如果它的值为0,我们将创建一个新smarty对象。否则,它意味着该对象已经被创建,我们只需要返回它。
让PHP开发者事半功倍的十大技巧
时间: 2024-11-03 14:02:23
让PHP开发者事半功倍的十大技巧的相关文章
让PHP开发者事半功倍的十大技巧小结_php技巧
如果你使用一面大镜子作为冲浪板会发生什么?或许你会在较短的时间内征服海浪,但是你肯定从内心深处明白,这不是冲浪的正确选择.同样的道理也适用于PHP编程,尽管这样的类比听起来有一些古怪.我们经常听到有人试图用一个周末多点的时间来学会PHP,但是请恕我直言,这是学习这门编程语言的一种非常糟糕的方式. 为何说学习PHP的过程有别于任何其它语言? 就其本质而言,如果你掌握了以PHP语言"做事"的方式,那么在使用它时就会得心应手,因此值得你去投入精力去了解这些方式.在PHP中,单纯按照自己思路去
创建一个Flash站点的十大技巧
创建|技巧|站点 根据Macromedia 顶级Flash设计者,开发者以及可用性专家的建议,我们收集了创建一个具备可用性的Macromedia Flash站点的十大技巧. 1.记住用户的目标 用户往往带着目的访问一个站点,每个链接,每次点击都要合乎他们的经验并且引导他们通向他们的目标.当传输你的页面时,应该让关键的导航链接首先装载--万一用户想转到网站其它的区域.模仿通常的用户图形界面往往可以增加可用性. 2. 记住网站的目的 网站设计应该反应商业或者客户的需求,有效的传播主要信息与促进品牌.
ASP.NET十大技巧
asp.net|技巧 ASP.NET编程中的十大技巧 在本篇文件中,我们将讨论编程人员在使用ASP.NET开发应用程序时需要注意的10个技巧,这些技巧涉及从缺省的控件.表单名的改变到StringBuilder类的使用,有助于编程人员能够尽快地适应.NET环境. 1.在使用Visual Studio .NET时,除直接或非引用的对象外,不要使用缺省的名字. .NET带来的好处之一是所有的源代码和配置文件都是纯文本文件,能够使用Notepad或WordPad等任意的文本编辑器进行编辑.如果不愿意,我
十大技巧让你更好运用Excel 2007
Excel 2007的全新界面曾让很多朋友望而却步,也确实给很多朋友带来了学习上的困难,不过它也提供了很多重大的改进来鼓励用户升级到这个新办公软件.每个人经过一段时间的使用都可以发现很多技巧让我们更好的使用Excel 2007,以下是我总结的十大技巧,供大家参考. 1.让Ribbon界面更好的为你工作 重新设计的Office 2007包含了一些全新的界面元素,旨在让用户可以更轻松的发现需要的功能,以及更有效的执行任务.这些新元素中最值得注意的亮点就是Ribbon界面,它提供了面向任务的标签,可以
Windows 7操作系统十大技巧
众所周知,自2009年10月22日,微软面向全球用户发布了Windows 7操作系统,迄今为止,Windows 7上市已经两年了,前段时间,微软表示,在Windows 7 上市第一年,其销售量就突破了2.4亿,成为改公司史上销售最快的操作系统. 今年十月份,微软宣布Windows 7使用许可已经售出4.5亿份,其市场占有率已经赶上经典XP系统.在此之际 ,笔者整理出使用Windows 7 操作系统十大技巧,跟读者分享. 一.用快捷键打开你想要打开的程序图标 这是我最喜欢的Windows 7小秘诀
搜狗输入法十大技巧
如今,使用搜狗拼音输入法的朋友越来越多,也有很多人在使用的过程中,会遇到这样或者那样的问题.你知道么,在使用搜狗输入法的过程中,如果可以留意以下的十大技巧,那么,你的搜狗输入法将会变得十全十美. 技巧一:偶尔输入法的设置菜单打不开,先不要着急,这不一定是输入法出现问题,估计也不会是电脑操作系统的问题,您可以试试快捷方式"Ctrl+Shift+M"或者"开始→控制面板→区域和语言选项→语言→详细信息→设置→已安装的服务里的搜狗拼音输入法→ 属性按钮",一般情况下,这两
wifi信号提升十大技巧
wifi无线网络几乎成为现代人生活中的必备元素;wifi信号因路由器品牌或性能不同也会受到影响;今天天堂小编为您精心整理了wifi信号提升十大技巧,希望能够帮到您. wifi信号提升技巧1.改变信号频道 在使用无线路由器时,通常路由器都设置了一个默认的频道,也许便是其中最拥堵的.所以,你可以在路由器设置中改变通道,或是使用免费的工具软件inSSIDer也能够实现同样的效果.不要被软件看似复杂的图表所迷惑,只需要切换至不那么拥挤的频道(chanel)就可以了. wifi信号提升技巧2.更新路由
避免勒索软件威胁的十大技巧
目前国内勒索病毒邮件形势越来越严峻,梭子鱼工程师在每天与客户的交流中都能听到客户提及这一点.今年流行的Locky勒索病毒邮件正文是关于订单和发票的内容,同时邮件包含带有zip的附件,附件名称中有payment字样,用户在收到这样邮件后,很容易点开附件查看,但打开附件后随即中招;电脑中Word,.Excel等文件被更改为.locky,告知用户付款后才能解锁. 根据梭子鱼网络专家研究,目前国内已有越来越多的企事业单位用户通过电子邮件被感染Locky勒索病毒,用户感染以后导致大量重要文件被加密,需要支
云安全绝招:保护虚拟系统的十大技巧
现在,越来越多的企业正部署桌面和服务器虚拟化技术,将各种机架.计算.存储.网络等资源全部融合到资源池中.而未来的发展趋势也是朝向"越小巧性能越强大,能耗更低,简单易用"发展. 然而,随着企业更多的从物理平台转向虚拟化,云服务的创建和部署也越来越方便,安全就成了一个头等重要的问题.那么,在云环境下,如何有效地保护虚拟系统呢?下面,我们为大家提供以下十大技巧: 一.传统安全控制仍可用 在过渡到虚拟环境过程中,我们仍不能忘记某些传统的安全手段.比如病毒防护工具.防火墙.入侵检测等等,它们在服