--专题: 程序设计语言
--小组: PHPXO

金牌译作 通过包含文件来组织项目

907个读者 翻译: 木溪  05/10/2008 原文 引用 双语对照及眉批 字体大小

简介

本文介绍用PHP编程时,用include指令来组织项目

include()语句给了PHP程序员一个强大的项目管理工具。将一些内容或者布局的思想放到包含文件中可能会使你的开发时间节

省无数个小时。

(PHP编程中)至少有两个通用的包含文件,所谓通用,是指必须在任何PHP页面的顶部都要引用(或包含)。这两个引用文件

主要的作用是我不用艰难的在我的程序中嵌入或者编码 域名、路径和链接。我可以很容易的将我的工程从我的开发开发的机器

上移植到产品服务器上。

包含文件:config.php

config.php 文件是用来保存数据库连接细节和其他的设置

<?php
define('DB_HOST','localhost');
define('DB_USER', 'jatinder');
define('DB_PASSWORD','secret');
define('DB_DATABASE','xyz');
define('TFX','xyz_');
define('SERVER_URL','http://localhost');
define('APP_FOL','/phpsense/');
?>
第一行我们为将来使用mysql_connect()和mysql_select_db()函数定义了连接细节。
接着我们定义了一个TFX常量用来作为数据表的标准前缀。将这个前缀加到数据库所有的表中。
每个项目的表前缀都是独一无二
的。
即使你知道将一个新的干净的数据安装到项目中,但这并不妨碍你添加一个前缀。
如果你正在本地机上开发一个叫做phpsense 的项目 ,在大多数情况下, PHP文件将在
phpsense ”文件夹下的htdocs目录。
 URL到您的项目看起来会像http://localhost/phpsense/ 
我将这个路径分为两部分:SERVER_URLAPP_FOL ( 程序文件夹)
当我将项目从我的开发机器上移植到产品服务器上,我仅仅是将SERVER_URL (服务器路径)
改成站点的域名(比如:http://phpsense.com
APP_FOL 从“/phpsense/”变成“/”。
app-top.php 包含文件
在这个包含文件中我们初始化我们的程序:
1.开启缓存输出
2.开启session
3.打开数据库连接
4.定义其他的共用变量和常量
<?php
ob_start('ob_gzhandler');
session_start();
error_reporting(E_ALL);
require_once('config.php');
define('APP_URL',SERVER_URL.APP_FOL);
define('SERVER_DOC_ROOT',$_SERVER['DOCUMENT_ROOT']);
define('APP_DIR',SERVER_DOC_ROOT.APP_FOL);
define('INCLUDES_DIR',APP_DIR.'includes/');
define('LIB_DIR',APP_DIR.'lib/');
define('UPLOADS_DIR',APP_DIR.'uploads/');
define('UPLOADS_URL',APP_URL.'uploads/');
$link=mysql_connect(DB_HOST,DB_USER,DB_PASSWORD);
if(!$link) {
	print("Failed to establish connection to mysql server!");
	exit();
}
$status=mysql_select_db(DB_DATABASE);
?>
app-top.php 脚本除了开启session和连接数据库之外,还定义了一对常量,他们是我到各种文件
夹所需要的基本路径或URL
比如INCLUDES_DIR 给我存放了包含文件的的路径地址。
所以,不是使用:
<?php
	include("includes/myscript.php");
?>
我使用:
<?php
	include(INCLUDES_DIR."myscript.php");
?>
现在我不用担心我的相对地址,此外我可以重命名我包含文件夹而不用中断程序。
不要在你的程序中使用硬编码的路径和URL,使用类似的这样常量。
现在你要做的是在每个PHP页面的顶部引用 app-top.php ,任何一个包含了这个文件的页面都会有一个
session,缓存输出,
数据库连接和预定义包含文件和库的路径。
注意:你不需要在其他的包含文件中引用app-top.php ,只需要在页面顶部引用它。
为什么是两个文件
你可能要问,为什么我用了两个单独的文件,我可以很容易的使两者合二为一。答案是这样做可以获
得更多的灵活性。
假设一个客户要求我为程序创建安装脚本,现在我必须要创建简单的表单和将值写入config.php文件,
通过PHP将值写入config.php
比写app-top.php更简单。
继续阅读
  • 25个顶级PHP模板引擎

    为了找到一个好的模板引擎,我在互联网上进行搜索,目前已经整理出了以下名单: Smarty Smarty的特点是将模板编译成PHP脚本,然后执行这些脚本。很快,非常灵活。 Heyes Template...

  • 优化PHP代码的40条建议

    英文版权归Reinhold Weber所有,中译文作者yangyang(aka davidkoree)。双语版可用于非商业传播,但须注明英文版作者、版权信息,以及中译文作者。翻译水平有限,请广大PHP...

  • 所有PHP程序员都应该知道的五个工具

    在参与了几个大型PHP项目,写了很多PHP代码以后,我发现很多工具可以提高代码质量,简化发布,使得做为PHP开发人员的生涯变得轻松许多。许多这样的工具可能已经为大家所用。但是,由于一些人甚至没有注意到...

  • 40个迹象表明你还是PHP菜鸟

    英文版权归Reinhold Weber所有,中译文作者yangyang(aka davidkoree)。双语版可用于非商业传播,但须注明英文版作者、版权信息,以及中译文作者。翻译水平有限,请广大P...

  • 加速PHP应用 - 用Xdebug分析你的代码

    面向对象编程越来越流行了,在PHP领域也不例外。所以你选择了合适的设计模式,在最新的framework上开发你的网站,抽象你的数据库访问以至于你都忘了SQL这种东西了。 接下来是什么呢? 当你开始转...

  • PHP 6 的新特性

    介绍PHP 6 的部分新特性

  • 在AMP环境中使用GWT

    1. 简介 1.1 前言 写下这篇文章是因为考虑到有些用户希望在AMP(Apache,MySQL,PHP)环境中使用GWT(Google Web Toolkit)开发动态应用程序。基本想法是写一个非...

  • CakePHP 简明指南

    Cakephp 简明指南

相关小组

标签:

内容有问题?请与我们联络。

译作评分

  • Currently 5.00/5
  • 1
  • 2
  • 3
  • 4
  • 5
 5.0  |  1 个评分

0条评论    0眉批

添加评论

欢迎访问译言网。在这里,您可以。。。

阅读
发现
翻译