仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1874|回复: 20
打印 上一主题 下一主题

[学习教程] PHP网站制作之PHP开辟利器-PRADO 1.6入门与装置

[复制链接]
山那边是海 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-2-3 23:56:16 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
我先解释一下我的学习思路。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  装置


<P>  PRADO需求PHP5的情况,和SimpleXML模块(PHP5缺省装置后的情况下已包含了这个模块)。在Windows XP和RedHat Linux情况下,已在Apache和IIS Web办事器上都经由过程了测试。 <P>  PRADO框架利用一个.zip文件宣布。在Linux下可使用unzip,在Windows下可使用Winzip来解压。解压终了后,会在以后目次下创立一个目次prado。这个目次次要包含以下这些文件和目次:
  1. README.html 此项目标申明文件
  2. index.html 和README.html中的内容是一样的
  3. COPYRIGHT 此项目标版权信息
  4. HISTORY 版本晋级信息
  5. framework/ PRADO框架的中心代码
  6. examples/ PRADO的一些例子
  7. docs/ PRADO的匡助文档
复制代码
<P>  完成懂得压以后,把prado目次的一切器材复制到Web办事器的根目次下。(也能够把它复制到某一个子目次下,乃至更深条理的目次下,PRADO对此没无限制。假如你将它复制到了某一个子目次下,以下的URL地址需求做响应的修正。)

<P>  十分复杂,装置已完成了!如今你可以试一下PRADO宣布包中的三个例子了:``Hello, world!", the Hangman Game(一个猜单词的游戏), 和PRADO通信录,它们的URL地址是:

  • ``Hello, world!" - http://<Web-server-address>/examples/helloworld.php
  • the Hangman game - http://<Web-server-address>/examples/hangman.php
  • the PRADO phonebook - http://<Web-server-address>/examples/phonebook.php
1.3  典范: Hello, World!
  在这一节中,咱们次要来讲明``Hello, world!''
  这个例子,让你对利用PRADO开辟有一个印象。这个例子十分的复杂,只要一个页面,下面显示了一个"Click me"的按钮。当用户点击了这个按钮,这个按钮的题目会酿成``Hello, world!''。
<P>  要完成这个功效需求这些文件,

  • helloworld.php , 使用的主进口;
  • helloworld/application.spec, 使用的设置装备摆设文件;
  • helloworld/HomePage.php, 页面的类文件;
  • helloworld/HomePage.tpl, 页面的模板文件.
<P>  注重,目次 helloworld 应当设置为Web用户不成以会见的(读的权限也不克不及给),由于个中的文件包含了一些主要的数据信息(好比数据库的毗连口令等等)。不必忧虑这么设置Web用户会不克不及正常的会见,由于实践上他们基本不必去会见helloworld 目次中的文件。在其它利用PRADO开辟的使用中你也应当这么做。 <P>  在helloworld.php 文件中,法式次要是实例化 TApplication 这个类,(译者注:假如对实例化这个词不怎样了解,你也能够这么了解,就是声名一个类型为TApplication的变量。)并入手下手运转使用,代码以下: <P class='code"'>
  1. <?php require_once('../framework/TApplication.php');
  2. $app=TApplication::getInstance('helloworld/application.spec');
  3. $app->run();
  4. ?>
复制代码
<P>  这里咱们假定框架的代码位于 ../framework 目次下。 <P>  每个 PRADO使用都应当有这么一个进口文件。他们之间次要的区分在于 getInstance
函数的参数的分歧,这个参数指了然使用的设置装备摆设文件的地位。
application.spec 是一个XML文件,用来设置装备摆设使用级其余参数。(就好象全局变量一样,固然如今是只读的,咱们正在决意是不是下一版本中答应可读写的)在这个例子中,它包括了以下的代码:
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <application default-page="HomePage" cache-path="">
  3. <alias name="Pages" path="." />
  4. <using namespace="System.Web.UI.WebControls" />
  5. <using namespace="Pages" />
  6. </application>
复制代码
<alias> 元素(译者注:按XML文件凡是的译法,<alias>...</alias>全部翻译为元素,个中alias翻译为元素的标签,一对闭合的alias标签中的值翻译为元素值,name, path这些则翻译为属性名,它们的值翻译为属性值,参考"<标签 属性名= 属性值>元素值</标签>")界说了途径的别号。别号System 是体系外部界说好的,用来唆使框架中心代码地点的目次。可使用途径别号来界说定名空间。定名空间实践上就是一个到场到PHP搜刮途径 include_path中的目次。 <using> 元素指明启动使用利用的定名空间。(也能够在代码中挪用 using() 函数来利用一个定名空间)
  <application> 的default-page 属性指了然使用启动时缺省进入哪个页面。在这里咱们指定了HomePage页面,它对应了一个页面类HomePage (关于页面和页面类前面会专门对它们停止注释的)。
  HomePage.tpl 文件是页面类HomePage一个模板文件,包括以下的代码:
  1. <html>
  2. <head>
  3. <title>Hello, world!</title>
  4. </head>
  5. <body>
  6. <com:TForm>
  7. <com:TButton Text="Click me" />
  8. </com:TForm>
  9. </body>
  10. </html>
复制代码
<P>  它和HTML页面十分的类似。独一分歧的中央就是元素 <com:TButton> ,它代表了一个
TButton 组件。 TButton 组件将会显示为一个表单的按钮,按钮的题目是"Click Me","Click
Me"是在 Text 属性中被指定的。经由过程设置 OnClick ,可以指定页面办法 clickMe 来呼应按钮的 OnClick 事务。因而,当按钮被点击的时分,办法 clickMe 就会被主动挪用了。
  HomePage.php 文件包括了界说页面类 HomePage 的代码,以下:
  1. <?php
  2. class HomePage extends TPage
  3. {
  4. function clickMe($sender,$param)
  5. {
  6. $sender->Text="Hello, world!";
  7. }
  8. }
  9. ?>
复制代码
HomePage 类承继了 TPage 类。TPage 类是PRADO框架自己供应的,它是一切页面类的基类。HomePage 类只包括了一个办法clickMe ,这个办法就是方才咱们提到的页面模板中呼应按钮OnClick 事务的办法clickMe  。这个办法的代码的感化是设置事务的发送者$sender(这里就是这个按钮)的Text 属性为 ``Hello, world!"。咱们希冀当用户点击这个按钮的时分,按钮的题目改成``Hello, world!" 。
  这个包括在 PRADO 宣布包中的例子可以经由过程此URL来会见:href=http://www.alixixi.com/program/a/"http:///examples/helloworld.php">http://<Web-server-address>/examples/helloworld.php
.
  你能够会说完成这么一个复杂的功效有甚么少见多怪的。是的,这个功效的确十分复杂,用几行php代码就能够完成。然而这个例子次要是目标是为了让你感触感染一下PRADO编程体例,它是面向对象的,基于组件和基于事务驱动的。用相似的编程体例可以完成更庞杂的功效,请持续看上面几章。
在一个团队之中或者说是在一个公司的工作岗位上,需要注重团队之间的交流合作;在学习或工作上都要端正自己的态度,要以认真的态度来对每件事,这样才能让自己更快的投入、更快的学习,而不至于浪费自己的时间。
变相怪杰 该用户已被删除
沙发
发表于 2015-2-4 07:05:23 | 只看该作者
学习php的目的往往是为了开发动态网站,phper就业的要求也涵盖了很多。我大致总结为:精通php和mysql
爱飞 该用户已被删除
板凳
发表于 2015-2-6 15:39:34 | 只看该作者
使用 jquery 等js框架的时候,要随时注意浏览器的更新情况,不然很容易发生框架不能使用。
老尸 该用户已被删除
地板
发表于 2015-2-16 22:10:00 | 只看该作者
微软最近出的新字体“微软雅黑”,虽然是挺漂亮的,不过firefox  支持的不是很好,所以能少用还是少用的好。
灵魂腐蚀 该用户已被删除
5#
发表于 2015-3-5 10:47:53 | 只看该作者
其实也不算什么什么心得,在各位大侠算是小巫见大巫了吧,望大家不要见笑,若其中有错误的地方请各位大虾斧正。
分手快乐 该用户已被删除
6#
发表于 2015-3-8 05:11:58 | 只看该作者
找到的的资料很多都是在论坛里的,需要注册,所以我一般没到一个论坛都注册一个id,所有的id都注册成一样的,这样下次再进来的时候就不用重复注册啦。当然有些论坛的某些资料是需要的付费的。
飘飘悠悠 该用户已被删除
7#
发表于 2015-3-13 12:09:46 | 只看该作者
有位前辈曾经跟我说过,phper 至少要掌握200个函数 编起程序来才能顺畅点,那些不熟悉的函数记不住也要一拿手册就能找到。所以建议新手们没事就看看php的手册(至少array函数和string函数是要记牢的)。
简单生活 该用户已被删除
8#
发表于 2015-3-15 20:41:22 | 只看该作者
Ps:以上纯属原创,如有雷同,纯属巧合
再见西城 该用户已被删除
9#
发表于 2015-3-22 04:09:36 | 只看该作者
在学习的过程中不能怕麻烦,不能有懒惰的思想。学习php首先应该搭建一个lamp环境或者是wamp环境。这是学习php开发的根本。虽然网络上有很多集成的环境,安装很方便,使用起来也很稳定、
金色的骷髅 该用户已被删除
10#
发表于 2015-3-22 21:51:28 | 只看该作者
再就是混迹于论坛啦,咱们的phpchina的论坛就很强大,提出的问题一般都是有达人去解答的,以前的帖子也要多看看也能学到不少前辈们的经验。别的不错的论坛例如php100,javaeye也是很不错的。
小妖女 该用户已被删除
11#
发表于 2015-4-6 13:02:02 | 只看该作者
作为一个合格的coder 编码的规范是必须,命名方面我推崇“驼峰法”,另外就是自己写的代码最好要带注释,不然时间长了,就算是自己的代码估计看起来都费事,更不用说别人拉。
深爱那片海 该用户已被删除
12#
发表于 2015-4-11 01:11:27 | 只看该作者
有时候汉字的空格也能导致页面出错,所以在写代码的时候,要输入空格最好用引文模式。
不帅 该用户已被删除
13#
发表于 2015-4-17 17:36:35 | 只看该作者
使用zendstdio 写代码的的时候,把tab 的缩进设置成4个空格是很有必要的
愤怒的大鸟 该用户已被删除
14#
发表于 2015-4-18 00:15:16 | 只看该作者
实践是检验自己会不会的真理。
飘飘悠悠 该用户已被删除
15#
发表于 2015-4-25 15:43:34 | 只看该作者
我要在声明一下:我是个菜鸟!!我对php这门优秀的语言也是知之甚少。但是我要在这里说一下php在网站开发中最常用的几个功能:
海妖 该用户已被删除
16#
发表于 2015-4-26 03:57:55 | 只看该作者
开发工具也会慢慢的更专业,每个公司的可能不一样,但是zend studio是个大伙都会用的。
谁可相欹 该用户已被删除
17#
发表于 2015-5-9 05:15:06 | 只看该作者
要进行开发,搭建环境是首先需要做的事,windows下面我习惯把环境那个安装在C盘下面,因为我配的环境经常出现诡异事件,什么事都没做环境有的时候就不能用啦。
若相依 该用户已被删除
18#
发表于 2015-6-16 02:33:47 | 只看该作者
Apache不是非得用80或者8080端口的,我刚开始安得时候就是80端口老占用,就用了个 81端口,结果照常,就是输localhost的时候,应该输入为 localhost:81
蒙在股里 该用户已被删除
19#
发表于 2015-7-7 01:19:01 | 只看该作者
有位前辈曾经跟我说过,phper 至少要掌握200个函数 编起程序来才能顺畅点,那些不熟悉的函数记不住也要一拿手册就能找到。所以建议新手们没事就看看php的手册(至少array函数和string函数是要记牢的)。
小女巫 该用户已被删除
20#
发表于 2015-7-12 16:41:08 | 只看该作者
当留言板完成的时候,下步可以把做1个单人的blog程序,做为目标,
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-5-7 07:21

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表