热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

初识PEAR

仙人掌工作室一、什么是PEAR?为什么需要它?为了创建一个类似于PerlCPAN档案的工具,StigS.Bakken创立了PEAR项目。PEAR的基本目标是发展成为PHP扩展和库代码的知识库,而这个项目最有雄心的目标则是试图定义一种标准,这种标准将帮助开发者编写可移植、可重用的
仙人掌工作室  

一、什么是PEAR?为什么需要它?  

为了创建一个类似于Perl CPAN档案的工具,Stig S. Bakken创立了PEAR项目。PEAR的基本目标是发展成为PHP扩展和库代码的知识库,而这个项目最有雄心的目标则是试图定义一种标准,这种标准将帮助开发者编写可移植、可重用的代码。  

Internet上已经有关于该项目的一些文档。例如,一些初始的资料已经可以在PHP正式手册中找到,更多的资料即将加入。  

在很大程度上,PEAR还是一项正在进行之中的工作。在未来的几个月内,PEAR安装程序和PEAR网站将有很大的发展。为了在下一个PHP版本中使用PEAR管理数量日益增长的C扩展,以及用PEAR安装程序作为用户把扩展下载和安装到PHP的前端工具,在PHP Core Developer邮件列表上已经有了大量的讨论。  

另外,我们还必须关注PEAR的PHP库代码。PEAR的PHP库代码常常被认为是当前设计最好、最整洁的库。PEAR::DB是其中最受欢迎的一个包,这个包是PEAR项目创建的一个数据库抽象库。Bakken正在努力,要把它主要的类和函数移植到C扩展上,使得这个包具有最好的性能。  

毫无疑问,这个新的项目必将成为未来PHP最重要的组成部分之一,它使得开发者能够方便地通过PEAR网站共享代码,使得用户能够方便地下载和安装扩展、PHP代码库。  

二、如何使用PEAR?  

正如前面提到的,PEAR正在不断地发展和改进。不过,现在已经有许多包可供使用。其中最受欢迎的一个包就是PEAR::DB,它使得开发者能够编写出可同时用于多种不同数据库服务器的代码。例如,开发者能够编写出把数据库记录插入表的脚本,而且这个脚本适用于MySQL、PostgreSQL和Oracle。  

也就是说,下面这个实例能够适用于所有不同类型的数据库服务器:  

// 引入合适的PEAR类
require_once("DB.php");

$dsn = array(
'phptype'  => 'mysql',
'hostspec' => 'localhost',
'database' => 'test_db',
'username' => 'test_user',
'password' => 'test_password'
);
$dbh = DB::connect($dsn);

$stmt = "SELECT id, name FROM examples ORDER BY id";
$result = $dbh->simpleQuery($stmt, DB_FETCHMODE_ASSOC);
if ($dbh->numRows($result) > 0) {
$data = (object) $dbh->fetchRow($result, DB_FETCHMODE_ASSOC);
echo "id   => $data->id
\n";
echo "name => $data->name
\n";
}
?>


这是一个简单的例子,显示了使用象PEAR::DB之类的抽象库编程究竟是什么样子。  

最近,PHP基本手册中加入了一章新的内容。但是,究竟是由该手册包含整个PEAR库的说明,还是为各个PEAR包编制独立的手册,这一切尚未明了。  

三、安装  

安装PEAR实际上很简单。由于PEAR库更新很快,所以下面我要介绍的是如何安装PEAR最新的CVS版本。  

注意:PEAR内部知识库系统将来可能要发生变化。就目前来说,PEAR包、库与PHP本身一起保存到同一CVS树,它可能导致在管理PHP主知识库和开发者、PEAR本身的知识库和开发者这两方面都出现问题。可以预料,在不远的将来,PEAR将分离成为独立的模块/树。这个模块已经存在,但大部分的包仍旧在老位置。  

如果你从来没有听说过CVS,请看看相关资料。CVS不是一种特别难用的技术,但熟悉它却需要一定的时间。  

假设你的机器上已经安装好了标准的CVS客户软件,接下来你应该:  


打开一个终端窗口(rxvt,xterm,或其他)。  
输入下面的命令:  

cvs -z3 -d :pserver:cvsread@cvs.php.net:/repository login
Password: [在这里输入“phpfi”作为密码]
cvs -z3 -d :pserver:cvsread@cvs.php.net:/repository co php4
[这个命令将创建新的目录php4]
cd php4
cvs -z3 -d :pserver:cvsread@cvs.zend.com:/repository login
Password: [这里输入密码zend]
cvs -z3 -d :pserver:cvsread@cvs.zend.com:/repository co Zend TSRM
[该命令将在php4下面创建两个新目录,名字为“Zend”和“TSRM”]
./buildcon


这就是全部的安装过程。运行buildconf将创建标准的configure脚本,这个脚本可以用来设置PHP选项。在默认安装中,PEAR将自动安装到/usr/local/lib/php下。但是,你也可以手工构造各个文件,方法是:以超级用户身份进入,转到php4/pear目录,执行make install-su。  

除此之外,你还应该把PEAR根目录加入到php.ini文件的include_path。默认的目录应该是/usr/local/lib/php,但如果你手工修改了选项,它可能在其他位置。  

四、获取帮助  

PEAR的包涵盖了从数据库抽象层到输出缓冲系统的方方面面,因此PEAR远远不止是一个简单的库——它是一种编写整洁、可移植代码的新标准。对于PEAR新手来说,最重要的事情之一就是阅读PHP手册中出版的编码标准。下面是几个获得PEAR帮助信息的地方:  


查找PEAR-DEV或PEAR-GENERAL,寻求问题的答案。  
查阅随同PEAR源代码提供的单元测试脚本。这些脚本的位置在PHP CVS源代码所在目录之下。例如,在我这里,它是/home/jpm/php4/pear/DB/tests/。  
通读Tomas Cox优秀的PEAR::DB指南。  
到目前为止,PEAR的真面目尚未完全显露在世人眼前。但是,我希望本文已经成功地为你勾勒了它的大致面貌。  

好好享受吧!


推荐阅读
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • 本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ... [详细]
  • 搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的详细步骤
    本文详细介绍了搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的步骤,包括环境说明、相关软件下载的地址以及所需的插件下载地址。 ... [详细]
  • PHP设置MySQL字符集的方法及使用mysqli_set_charset函数
    本文介绍了PHP设置MySQL字符集的方法,详细介绍了使用mysqli_set_charset函数来规定与数据库服务器进行数据传送时要使用的字符集。通过示例代码演示了如何设置默认客户端字符集。 ... [详细]
  • 在说Hibernate映射前,我们先来了解下对象关系映射ORM。ORM的实现思想就是将关系数据库中表的数据映射成对象,以对象的形式展现。这样开发人员就可以把对数据库的操作转化为对 ... [详细]
  • 本文由编程笔记小编整理,介绍了PHP中的MySQL函数库及其常用函数,包括mysql_connect、mysql_error、mysql_select_db、mysql_query、mysql_affected_row、mysql_close等。希望对读者有一定的参考价值。 ... [详细]
  • 本文介绍了RPC框架Thrift的安装环境变量配置与第一个实例,讲解了RPC的概念以及如何解决跨语言、c++客户端、web服务端、远程调用等需求。Thrift开发方便上手快,性能和稳定性也不错,适合初学者学习和使用。 ... [详细]
  • 如何在php中将mysql查询结果赋值给变量
    本文介绍了在php中将mysql查询结果赋值给变量的方法,包括从mysql表中查询count(学号)并赋值给一个变量,以及如何将sql中查询单条结果赋值给php页面的一个变量。同时还讨论了php调用mysql查询结果到变量的方法,并提供了示例代码。 ... [详细]
  • 本文介绍了高校天文共享平台的开发过程中的思考和规划。该平台旨在为高校学生提供天象预报、科普知识、观测活动、图片分享等功能。文章分析了项目的技术栈选择、网站前端布局、业务流程、数据库结构等方面,并总结了项目存在的问题,如前后端未分离、代码混乱等。作者表示希望通过记录和规划,能够理清思路,进一步完善该平台。 ... [详细]
  • 解决VS写C#项目导入MySQL数据源报错“You have a usable connection already”问题的正确方法
    本文介绍了在VS写C#项目导入MySQL数据源时出现报错“You have a usable connection already”的问题,并给出了正确的解决方法。详细描述了问题的出现情况和报错信息,并提供了解决该问题的步骤和注意事项。 ... [详细]
  • 本文介绍了通过mysql命令查看mysql的安装路径的方法,提供了相应的sql语句,并希望对读者有参考价值。 ... [详细]
  • mysql-cluster集群sql节点高可用keepalived的故障处理过程
    本文描述了mysql-cluster集群sql节点高可用keepalived的故障处理过程,包括故障发生时间、故障描述、故障分析等内容。根据keepalived的日志分析,发现bogus VRRP packet received on eth0 !!!等错误信息,进而导致vip地址失效,使得mysql-cluster的api无法访问。针对这个问题,本文提供了相应的解决方案。 ... [详细]
  • 众筹商城与传统商城的区别及php众筹网站的程序源码
    本文介绍了众筹商城与传统商城的区别,包括所售产品和玩法不同以及运营方式不同。同时还提到了php众筹网站的程序源码和方维众筹的安装和环境问题。 ... [详细]
  • ubuntu用sqoop将数据从hive导入mysql时,命令: ... [详细]
  • MyBatis多表查询与动态SQL使用
    本文介绍了MyBatis多表查询与动态SQL的使用方法,包括一对一查询和一对多查询。同时还介绍了动态SQL的使用,包括if标签、trim标签、where标签、set标签和foreach标签的用法。文章还提供了相关的配置信息和示例代码。 ... [详细]
author-avatar
蓝善凡_407
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有