quercus下载_介绍Quercus,一个基于JavaPHP框架

quercus下载

Quercus是一个开源PHP 5引擎,已完全用纯Java实现。 Quercus文档提到它在Resin应用程序服务器上运行,并利用了诸如负载平衡,代理缓存等Resin功能。 本文介绍了Quercus通过在Apache Tomcat之上运行而提供的功能。 此外,它还演示了QuercusPHP加Java混合方法对Web服务和应用程序的简便性和灵活性。

为什么选择Quercus?

Quercus PHP库完全用Java实现,从而带来了同时成为Java和PHP应用程序的好处。 由于Java和PHP的紧密集成,Quercus应用程序可以使用Java技术和框架,例如Spring,Hibernate,SOA框架等。 为了促进这种互操作性,Quercus提供了一个API来从PHP调用Java库。

其他好处包括:

  • 易于开发:PHP库以Java实现,使其快速,可靠且易于使用。 开发人员不必担心在基于CPHP实现中看到的分段错误和C指针超限。
  • 可伸缩性:Quercus是基于Java的实现,在Resin和Apache Tomcat等应用服务器之上运行。 因此,他们可以使用Application Server提供的所有功能(连接池,分布式会话等)。
  • 国际化:由于它是PHP的Java实现,因此它固有地支持16位Unicode字符串和函数。

安装Quercus

安装Quercus就像将jar文件安装到Java应用程序中一样简单,但是由于它是Resin应用程序服务器的功能,因此它内置在Resin中。 另外,由于Quercus接管了PHP引擎,因此无需下载PHP引擎。 要安装Quercus,请执行以下步骤:

  • 从公司网站下载Resin应用程序服务器(请参阅参考资料 )。
  • 打开zip文件并解压缩jar文件quercus.jar,resin-util.jar和javamail-141.jar。
  • 将这些文件以及MySQL连接器jar文件(如果需要)复制到Web应用程序的WebContent \ WEB-INF \ lib文件夹中。
  • 另一个简单的方法是使用本文结尾处压缩的示例应用程序作为基础,并从那里复制库(请参阅可下载资源 )。

输入Quercus

为了描述Quercus的功能,我将向您展示一个简单的HelloWorld示例。 可以使用以下步骤创建此应用程序。 (我已经使用Eclipse IDE创建了本文中的所有应用程序,并粘贴了屏幕截图以大致了解其中涉及的步骤。您选择的任何IDE都可以使用。)

以下步骤的基本思想是创建一个动态Web应用程序项目,将其指向应用程序服务器运行时(在本例中为Apache Tomcat),并配置php.ini和web.xml之类的参数。

  • 在IDE(在本例中为Eclipse)中,创建一个新的Web项目,如图1所示(Alt + Shift + N)。
图1.创建新项目
Eclipse界面的屏幕快照,开始一个新的Dynamic Web Project
  • 输入项目名称和目标运行时。 样本设置屏幕如图2所示。
    • 单击文件 -> 新建 (Alt + N), 然后在默认工作区中创建一个名为TestHelloWorld的新动态Web应用程序。
    • 我已将Apache Tomcat版本5.5配置为该应用程序的运行时环境。
图2.设置新项目
TestHelloWorld的“新建动态Web项目”对话框的屏幕快照
  • 复制如图3所示的结构,其中包括Quercus和相关的jars。 此外,创建名为WebContent,META-INF (包含清单文件或上下文文件), JavaScript资源等的文件夹。
图3.设置目录结构
项目文件夹的屏幕快照,显示WEB-INF / lib文件夹下的javamail-141.jar,quercus.jar和resin-util.jar。

项目TestHelloWorld的根目录包含以下文件夹:

  • WebContent:此目录包括WEB-INF目录,该目录包含lib文件夹下的quercus.jar之类的库,以及Manifest.mf文件的META-INF目录。 WEB-INF文件夹还具有Web应用程序的静态和动态内容,例如php,jsp或html文件。
  • Java资源:该目录包括Apache Tomcat,JRE和Web应用程序库之类的库。
  • JavaScript资源:这包括您想包含在项目中的任何资源。

可以通过IDE创建和配置服务器,并且可以在常规或调试模式下执行该服务器(请参见图4)。

Eclipse中的J2EE透视图有一个服务器选项卡,右键单击该选项卡将向用户显示创建新服务器的选项(参见图4)。 该服务器可用于从Eclipse IDE管理应用程序服务器。

图4.配置新的服务器配置
eclipse服务器配置的屏幕快照。用户在Tompacat服务器上单击鼠标右键,然后选择“新建服务器”

除非另有要求,否则定义新服务器仅涉及选择默认值(请参见图5)。 服务器运行时与创建项目时选择的运行时相同,本例中为Apache Tomcat版本5.5。

图5.为新服务器配置选择的选项
“新建服务器”配置对话框的屏幕快照,显示了Tomcat v5.5 Server的默认设置
  • 配置服务器后,可以将资源从左侧的“可用”列添加到右侧的“已配置”列。

配置新服务器后,需要在服务器上配置新创建的资源(请参见图6)。 此服务器配置将部署在开发过程中创建的资源。

图6.服务器上的资源配置
新服务器资源配置的屏幕快照

配置Quercus

php.ini文件用于配置PHP行为,例如设置目录,文件路径,更改会话等。 可以在web.xml文件中指定此文件。 清单1给出了一个示例。

清单1.在web.xml文件中指定php.ini
<init-param>
	      <param-name>ini-file</param-name>
      	<param-value>WEB-INF/php.ini</param-value>
	    </init-param>

PHP源文件的编码由脚本编码指示,定义如清单2所示。

清单2. web.xml文件中PHP编码规范
<init-param>
	      <param-name>script-encoding</param-name>
      	<param-value>UTF-8</param-value>
	    </init-param>

QuercusServlet是Quercus引擎的接口,该引擎解析php文件,并且通常如清单3所示进行配置。

清单3. web.xml文件中的QuercusServlet的配置
<web-app xmlns=”http://java.sun.com/xml/ns/j2ee” 
xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance” 
	xsi:schemaLocation=”http://java.sun.com/xml/ns/j2ee 
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd” 
	version=”2.4”> 
	<description>Quercus Hello World on Tomcat</description>
	<servlet>
    		<servlet-name>Quercus Servlet</servlet-name>
		<servlet-class>com.caucho.quercus.servlet.QuercusServlet</servlet-class>

描述Quercus hello world php文件(index.php)

index.php文件定义了一个名为getTheDate的方法,该方法实例化Java对象。 Quercus通过使用import语句使用任何Java类的能力使其具有高度的互操作性和灵活性。 清单4显示了一个示例。

清单4. PHP导入功能的示例
<?php
		function getTheDate() {
		import java.util.Date;
		$currentDate = new Date();
		return $currentDate;
		}
	?>

清单5中的代码演示了HTML片段中对getTheDate()phpinfo()方法的调用。

清单5.调用getTheDate()和phpinfo()
<body>
	<h1>This is the Hello World page</h1>
	<h3>but, it does something more then Hello World!</h3>
	<h4> The current date and time is :<?php echo getTheDate() ?></h4>
	<h4> and finally here is the phpInfo: <?php echo phpinfo()?>
	</body>

更改代码后,我需要启动服务器,以便可以测试HelloWorld应用程序。 可以通过右键单击我们之前创建的服务器配置,然后单击运行或调试选项来完成。

图7.以调试或运行模式启动服务器
屏幕截图显示了如文本中所述启动服务器

图8显示了启动服务器并转到url之后应用程序的最终输出。

请注意,本文结尾处的示例文件HelloWorld.zip包含应用程序的压缩版本(请参阅可下载资源 )。 它还包括Eclipse所需的元数据文件,以便可以将其直接无缝地导入该IDE。

图8. Hello World页面的输出
应用程序输出的屏幕快照,显示文本,当前日期和时间以及有关正在运行PHP的信息。

魁北克行动

现在让我们看一个真实的例子。 图9显示了“管理客户”页面的示例,用户可以通过该页面执行操作,例如添加新客户,搜索客户以及查看数据库中的所有客户。

图9.管理客户应用程序的流程
管理客户应用程序的体系结构图。 Apache Tomcat使用左侧的客户端发送和接收HTTP。在右侧,Tomcat与“ PHP with HTML”交互,后者调用Quercus来渲染PHP代码。在后端,Quercus / PHP / HTML组合与MySQL服务器交互。

如上图所示,Tomcat收到HTTP请求。 web.xml中的配置定义了QuercusServlet对象来解析php文件。 该对象是与Quercus库连接的Java servlet。 在此示例应用程序中,在php文件中实例化的PDO对象通过MySQL连接器实例化与MySQL数据库的连接。 PDO或PHP数据对象以统一的方式提供数据库访问,包括高级功能(如准备好的语句)。

图10所示的Manage Customer应用程序的目录结构遵循与HelloWorld示例中上述相同的模式目录结构。

图10. Manage Customer应用程序的目录结构
“管理客户”项目的目录结构的屏幕快照

请注意,此应用程序文件的核心包含在以下子目录下的WebContent文件夹中:

  • META-INF:它包含用于连接到MySQL数据库的数据库凭据信息。
  • WEB-INF:这包括库文件夹,其中包含用于运行应用程序的Quercus jar之类的文件。 它还包括描述数据源的web.xml。
  • 所有关联的php和html文件都包含在WebContent文件夹中。 这些文件用作应用程序的视图部分,向Web应用程序提供动态和静态内容。

请注意,本文末尾的示例文件ManageCustomer.zip包含应用程序的压缩版本(请参阅可下载的资源 )。 它还包括Eclipse所需的元数据文件,以便可以将其直接无缝地导入该IDE。

Tomcat和MySQL的配置

Tomcat的配置与HelloWorld应用程序非常相似。 另外,我们需要定义一个资源引用,如清单6所示。该元素指定资源管理器连接工厂引用的名称。 在这种情况下,它将是由javax.sql.DataSource类型的jdbc / mysql指定的数据库连接。

清单6.资源参考定义web.xml
web.xml
	. . .
	<resource-ref>
	      <description>DB Connection</description>
	      <res-ref-name>jdbc/mysql</res-ref-name>
	      <res-type>javax.sql.DataSource</res-type>
	      <res-auth>Container</res-auth>
	</resource-ref>
	. . .

我们需要在WebContent / META-INF文件夹下的context.xml中定义连接资源,如清单7所示。它包含驱动程序名称,jndi名称,用户名,密码,数据类型和url之类的属性。

清单7. context.xml中定义的属性
context.xml
	. . .
	<Context>
	<Resource driverClassName="com.mysql.jdbc.Driver" 
	maxActive="4" maxIdle="2" maxWait="5000" auth="Container" 
	name="jdbc/mysql" password="" type="javax.sql.DataSource" 
	url="jdbc:mysql://localhost:3306/customer" username="root"/>
	</Context>
	. . .

客户数据库只有一个表,可以通过运行以下脚本来创建该表:

use customer;
	CREATE TABLE users (
		id INT NOT NULL PRIMARY_KEY AUTO_INCREMENT, 
		name VARCHAR(200)
	);

请注意,HelloWorld应用程序中描述的配置步骤,例如创建新服务器配置,添加资源,以调试或运行模式启动服务器等,也可以类似的方式应用于此应用程序。

申请摘要

应用程序的索引页面显示了可由用户执行的操作列表(请参见图11)。

图11. Manage Customer index页面的屏幕快照
屏幕截图显示了“管理客户”页面,其中包含用于添加客户名称的文本字段和按钮,用于搜索客户的文本字段和按钮以及用于查看所有客户的按钮。

支持的操作有:

  • 添加客户
  • 搜索客户
  • 查看所有客户
  • 删除所有客户

显示所有操作的index.html页面由具有各自操作的单个表单组成。 详细了解“添加客户”。 相应的html包含对addCustomer.php的引用以及POST方法,作为表单操作。

<H2>Add Customer</H2>
	<form action="addCustomer.php" method="post">
	<label>Customer name</label>
	<input type="text" id="customerName" name="customerName"/>
	<input type="submit" value="Add"/>
	</form>

该操作中的php代码从POST中提取customerName参数,并为插入创建sql语句。 然后,通过传入数据源的jndi名称来实例化PHP数据对象。

<?php
	$custName = $_POST['customerName'];
	$pdo = new PDO("java:comp/env/jdbc/mysql");
	$sql = "insert into users values ('" . $custName . "');";
  	$rows = $pdo->exec($sql);
  	if ($rows>0) {

	echo("<h4> Adding ". $custName . " was successful</h4>");
	}
	else echo('<h4> An error occurred</h4>');
	?>

以类似的方式,已经实现了“查找”,“查看全部”和“删除”操作(请参阅“ 下载”部分中随附的源代码)。

图12.查看所有客户页面的屏幕截图
该应用程序的屏幕快照,显示所有客户名称的列表。

结论

本文介绍了Quercus在Apache Tomcat之上运行并连接到MySQL数据库的功能。 作为完全用Java实现PHP框架,它可以充分利用Spring,Hibernate等基于Java的框架。 Quercus由于具有PHP方面,因此对开发人员也具有高度的可用性,而由于核心框架已在Java中实现,因此Quercus具有鲁棒性和可扩展性。


翻译自: https://www.ibm.com/developerworks/web/library/wa-quercus/index.html

quercus下载

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值