0

0

PHP开发利器-PRADO 1.6入门与安装

php中文网

php中文网

发布时间:2016-06-21 08:58:56

|

1274人浏览过

|

来源于php中文网

原创

ado

  第1章 入门

  1.1  PRADO是什么?

  PRADO是在PHP5环境下的一个基于事件驱动和基于组件的WEB应用开发框架。使用PRADO开发WEB应用,你主要需要做的工作就是使用已有的组件(原文是"实例化已经定义好的组件",熟悉面向对象编程的开发者可能比较容易理解这句话),设置组件的属性,为控件组件的各种事件编写对应的处理函数,然后把这些组织成一个个的页面。(译者注:个人倾向于将component翻译为组件,control翻译为控件,事实上大多数场合两者没有什么区别,但是为了读者能够更加容易理解原文,本文一律按此规则翻译。)这个过程和使用RAD开发工具(比如Delphi或者Visual Basic)来开发Windows应用程序非常类似。

  下面用一个简单的例子来说明PRADO框架的工作原理。假定我们现在要使用PRADO来开发一个常见的登录页面。首先我们选择PRADO中的2个TTextBox控件和1个TButton控件来分别对应用户名输入,密码输入和提交按钮。然后把对应密码输入的TTextBox控件的TextMode属性设置为"Password",并为TButton控件的OnClick事件指定一个处理函数login。最后把这些控件放到页面模板的合适的位置上(后面会解释什么是页面模板,实际上它和一个html页面很相似),一个功能完善的登录页面就实现了。控件会自己处理好如何显示数据,如何得到用户输入的数据,如何响应用户的操作等这些事情。例如,TTextBox控件会显示一个输入框让用户输入;用户输入的密码会被显示为*号,而开发者在代码中可以通过读取TTextBox控件的Text属性来获取用户实际输入的密码;当用户点击了提交按钮的时候,login 函数将会被自动调用。这和传统的PHP编程处理方式很不一样。使用传统的PHP编程方式,开发人员需要使用HTML标签来显示用户输入框和按钮,同时需要自己解析POST数据来获得用户的输入以及判断按钮是否被点击了等等这些事情。

PRADO

  基于组件的编程方式使代码的重用极为方便。一些重复性的单调的工作比如表单输入的验证,页面状态的管理等都可以使用PRADO已经提供的组件来处理。开发者也可以通过继承现有的组件或者组合现有的组件来开发新的组件满足要求。另外一些新的组件即将发布。

  总来的说,PRADO 为PHP的编程人员提供了以下的有益之处:

  • 可重用性 - 符合PRADO组件标准的代码是高度可重用的。
  • 易于使用 - 使用PRADO组件非常简单,通常只需要配置它们的属性,编写相关的事件处理函数。
  • 健壮性 - PRADO让开发者不再被那些令人厌烦的有很多错误的的代码所困扰。它的代码都是有对象,方法和属性组成的;而不是Url地址和各种query参数。PHP5最新的Exception处理机制也被引入进来,让开发人员能够精确定位到错误代码的所在行数。
  • 高效 - PRADO开发的Web应用运行很快。PRADO实现了一种缓存机制,使用其开发的应用的运行效率能够和那些通常使用的模版引擎开发的应用的运行效率相媲美。
  • 团队协作 - PRADO允许内容和表现方式分离。组件,尤其是页面,将内容(逻辑)和表现方式分别保存在不同的文件中。

  目前已经有很多PHP的框架,Mojavi, WACT , PHP.MVC, Phrame等等。它们主要是建立一套松散的PHP代码组织方式(比如 Model-view-controller)。其中一些更多的面向开发一个内容管理系统,并提供了诸如用户管理模块等更多的功能。

  和这些框架相比,PRADO更专注于建立一个代码重用和事件驱动的编程标准。如果你曾经用Delphi或者Visual Basic等这些RAD开发工具来开发Windows程序的话,那么你会发现使用PRADO来开发WEB应用是非常类似的,你可以很快就掌握PRADO来进行WEB应用的开发。大多数情况下,你要做的仅仅是设置组件的属性和响应组件的事件。更高层次的代码重用,比如前面所说的用户管理模块,可以基于PRADO组件来实现。

  PRADO的思想最先我是从Apache Tapestry项目想到的。在设计和实现的时候, Borland Delphi 和Microsoft ASP.NET的设计思想起到了很重要的作用 。实际上,使用过ASP.NET的人可以发现PRADO中有很多地方和它是相似的。

1.2  安装


 

  PRADO需要PHP5的环境,以及SimpleXML模块(PHP5缺省安装后的环境下已经包括了这个模块)。在Windows XP和RedHat Linux环境下,已经在Apache和IIS Web服务器上都通过了测试。

  PRADO框架使用一个.zip文件发布。在Linux下可以使用unzip,在Windows下可以使用Winzip来解压。解压完毕后,会在当前目录下创建一个目录prado。这个目录主要包括以下这些文件和目录:

 README.html            此项目的说明文件
index.html 和README.html中的内容是一样的
COPYRIGHT 此项目的版权信息
HISTORY 版本升级信息
framework/ PRADO框架的核心代码
examples/ PRADO的一些例子
docs/ PRADO的帮助文档

  完成了解压之后,把prado目录的所有东西复制到Web服务器的根目录下。(也可以把它复制到某一个子目录下,甚至更深层次的目录下,PRADO对此没有限制。如果你将它复制到了某一个子目录下,以下的URL地址需要做相应的修改。)

  非常简单,安装已经完成了!现在你可以试一下PRADO发布包中的三个例子了:``Hello, world!", the Hangman Game(一个猜单词的游戏), 和PRADO通讯录,它们的URL地址是:

  • ``Hello, world!" - http:///examples/helloworld.php
  • the Hangman game - http:///examples/hangman.php
  • the PRADO phonebook - http:///examples/phonebook.php

1.3  范例: Hello, World!

  在这一节中,我们主要来说明``Hello, world!''

SmartB2B行业电子商务
SmartB2B行业电子商务

SmartB2B 是一款基于PHP、MySQL、Smarty的B2B行业电子商务网站管理系统,系统提供了供求模型、企业模型、产品模型、人才招聘模型、资讯模型等模块,适用于想在行业里取得领先地位的企业快速假设B2B网站,可以运行于Linux与Windows等多重服务器环境,安装方便,使用灵活。 系统使用当前流行的PHP语言开发,以MySQL为数据库,采用B/S架构,MVC模式开发。融入了模型化、模板

下载

  这个例子,让你对使用PRADO开发有一个印象。这个例子非常的简单,只有一个页面,上面显示了一个"Click me"的按钮。当用户点击了这个按钮,这个按钮的标题会变成``Hello, world!''。

  要完成这个功能需要这些文件,

  • helloworld.php , 应用的主入口;
  • helloworld/application.spec, 应用的配置文件;
  • helloworld/HomePage.php, 页面的类文件;
  • helloworld/HomePage.tpl, 页面的模板文件.

  注意,目录 helloworld 应该设置为Web用户不可以访问的(读的权限也不能给),因为其中的文件包括了一些重要的数据信息(比如数据库的连接口令等等)。不用担心这么设置Web用户会不能正常的访问,因为实际上他们根本不用去访问helloworld 目录中的文件。在其它使用PRADO开发的应用中你也应该这么做。

  在helloworld.php 文件中,程序主要是实例化 TApplication 这个类,(译者注:如果对实例化这个词不怎么理解,你也可以这么理解,就是申明一个类型为TApplication的变量。)并开始运行应用,代码如下:

  $app=TApplication::getInstance('helloworld/application.spec');
$app->run();
?>

  这里我们假定框架的代码位于 ../framework 目录下。

  每一个 PRADO应用都应该有这么一个入口文件。他们之间主要的区别在于 getInstance
函数的参数的不同,这个参数指明了应用的配置文件的位置。

application.spec 是一个XML文件,用来配置应用级别的参数。(就好象全局变量一样,当然现在是只读的,我们正在决定是否下一版本中允许可读写的)在这个例子中,它包含了如下的代码:

 





  元素(译者注:按XML文件通常的译法,...整个翻译为元素,其中alias翻译为元素的标签,一对闭合的alias标签中的值翻译为元素值,name, path这些则翻译为属性名,它们的值翻译为属性值,参考"元素值标签>")定义了路径的别名。别名System 是系统内部定义好的,用来指示框架核心代码所在的目录。可以使用路径别名来定义命名空间。命名空间实际上就是一个加入到PHP搜索路径 include_path中的目录。 元素指明启动应用使用的命名空间。(也可以在代码中调用 using() 函数来使用一个命名空间) 

  default-page 属性指明了应用启动时缺省进入哪一个页面。在这里我们指定了HomePage页面,它对应了一个页面类HomePage (关于页面和页面类后面会专门对它们进行解释的)。

  HomePage.tpl 文件是页面类HomePage一个模板文件,包含如下的代码:

 

Hello, world!







  它和HTML页面非常的相似。唯一不同的地方就是元素 ,它代表了一个
TButton 组件。 TButton 组件将会显示为一个表单的按钮,按钮的标题是"Click Me","Click
Me"是在 Text 属性中被指定的。通过设置 OnClick ,可以指定页面方法 clickMe 来响应按钮的 OnClick 事件。因此,当按钮被点击的时候,方法 clickMe 就会被自动调用了。

  HomePage.php 文件包含了定义页面类 HomePage 的代码,如下:

  class HomePage extends TPage
{
function clickMe($sender,$param)
{
$sender->Text="Hello, world!";
}
}
?>

HomePage 类继承了 TPage 类。TPage 类是PRADO框架本身提供的,它是所有页面类的基类。HomePage 类只包含了一个方法clickMe ,这个方法就是刚才我们提到的页面模板中响应按钮OnClick 事件的方法clickMe  。这个方法的代码的作用是设置事件的发送者$sender(这里就是这个按钮)的Text 属性为 ``Hello, world!"。我们期望当用户点击这个按钮的时候,按钮的标题改为``Hello, world!" 。
  这个包含在 PRADO 发布包中的例子可以通过此URL来访问:href="http:///examples/helloworld.php">http:///examples/helloworld.php
.
  你可能会说完成这么一个简单的功能有什么大惊小怪的。是的,这个功能确实非常简单,用几行php代码就可以完成。但是这个例子主要是目的是为了让你感受一下PRADO编程方式,它是面向对象的,基于组件和基于事件驱动的。用类似的编程方式可以实现更复杂的功能,请继续看下面几章。



PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
Golang处理数据库错误教程合集
Golang处理数据库错误教程合集

本专题整合了Golang数据库错误处理方法、技巧、管理策略相关内容,阅读专题下面的文章了解更多详细内容。

2

2026.02.06

java多线程方法汇总
java多线程方法汇总

本专题整合了java多线程面试题、实现函数、执行并发相关内容,阅读专题下面的文章了解更多详细内容。

0

2026.02.06

1688阿里巴巴货源平台入口与批发采购指南
1688阿里巴巴货源平台入口与批发采购指南

本专题整理了1688阿里巴巴批发进货平台的最新入口地址与在线采购指南,帮助用户快速找到官方网站入口,了解如何进行批发采购、货源选择以及厂家直销等功能,提升采购效率与平台使用体验。

90

2026.02.06

快手网页版入口与电脑端使用指南 快手官方短视频观看入口
快手网页版入口与电脑端使用指南 快手官方短视频观看入口

本专题汇总了快手网页版的最新入口地址和电脑版使用方法,详细提供快手官网直接访问链接、网页端操作教程,以及如何无需下载安装直接观看短视频的方式,帮助用户轻松浏览和观看快手短视频内容。

15

2026.02.06

C# 多线程与异步编程
C# 多线程与异步编程

本专题深入讲解 C# 中多线程与异步编程的核心概念与实战技巧,包括线程池管理、Task 类的使用、async/await 异步编程模式、并发控制与线程同步、死锁与竞态条件的解决方案。通过实际项目,帮助开发者掌握 如何在 C# 中构建高并发、低延迟的异步系统,提升应用性能和响应速度。

10

2026.02.06

Python 微服务架构与 FastAPI 框架
Python 微服务架构与 FastAPI 框架

本专题系统讲解 Python 微服务架构设计与 FastAPI 框架应用,涵盖 FastAPI 的快速开发、路由与依赖注入、数据模型验证、API 文档自动生成、OAuth2 与 JWT 身份验证、异步支持、部署与扩展等。通过实际案例,帮助学习者掌握 使用 FastAPI 构建高效、可扩展的微服务应用,提高服务响应速度与系统可维护性。

6

2026.02.06

JavaScript 异步编程与事件驱动架构
JavaScript 异步编程与事件驱动架构

本专题深入讲解 JavaScript 异步编程与事件驱动架构,涵盖 Promise、async/await、事件循环机制、回调函数、任务队列与微任务队列、以及如何设计高效的异步应用架构。通过多个实际示例,帮助开发者掌握 如何处理复杂异步操作,并利用事件驱动设计模式构建高效、响应式应用。

7

2026.02.06

java连接字符串方法汇总
java连接字符串方法汇总

本专题整合了java连接字符串教程合集,阅读专题下面的文章了解更多详细操作。

25

2026.02.05

java中fail含义
java中fail含义

本专题整合了java中fail的含义、作用相关内容,阅读专题下面的文章了解更多详细内容。

28

2026.02.05

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
AngularJS教程
AngularJS教程

共24课时 | 3.4万人学习

CSS3实现按钮特效视频教程
CSS3实现按钮特效视频教程

共15课时 | 3.3万人学习

细说PHP第三季
细说PHP第三季

共58课时 | 11.4万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号