PHP教程之PHP开辟利器-PRADO 1.6初级主题
根据功能来进行封装等。很多的不懂,在使用搜索引擎查找,或者请教老师和在老师详细的讲解、指导下,都能顺利解决。ado|初级 第4章 初级主题4.1显示形态的保护
组件的显示形态是指组件在一系列的postback中应当一直保留的数据。好比,用户在一个页面中更改了一个组件的字体色彩,他但愿页面再一次提交显示的时分,仍然看到的是已修正过的色彩。在桌面GUI法式的开辟中,这个十分复杂。然而在Web编程中就不那末轻易了,由于Web办事器其实不会一向在内存中坚持着页面形态。PRADO自创了ASP.NET的显示形态这个概念来处理这个成绩。
假如要经由过程显示形态来坚持一些数据,可以挪用TComponent 类中的getViewState() 和setViewState() 办法。可以在显示形态中坚持良多类型的数据,然而不必把它用在资本句柄中,好比数据库联接。
PRADO
经由过程一个把限制形态保留在一个埋没字段中来前往给用户。当用户提交页面并再一次显示页面的时分,显示形态中的数据会从被提交的埋没域中读出来并用此恢复页面的形态。可以经由过程重载的办法来本人定制显示形态的存储办法。好比可以把显示形态保留在session中或数据库中,防止经由过程埋没字段要传输大批的数据。
4.2Session
Session是用来在分歧页面间保留形态的,这和页面的显示形态机制分歧,显示形态只能保留本页面的形态。
假如要利用session, 那末起首在使用的设置装备摆设文件中界说一个session类。session类必需完成ISession
接口。假如你不想本人写一个session类,那可使用类System.Security.TSession ,它封装了$_SESSION 变量来完成了ISession 接口。你也能够本人写一个session类来利用分歧的办法处置session(好比把session保留到数据库中)。
<P> 假如界说了session类,在恳求的页面创立之前,对应的session对象就会被创立。TPage 页面类有一个Session 属性,可以便利的来会见session对象。 4.3验证和受权
PRADO 供应了一个验证/受权的框架来撑持验证页面的会见者,判别他们是不是有权限来会见页面。
在验证框架中,一个用户类起到了次要感化。会见者假如经由过程了必定的身份验证(好比登录),并在办事器端取得了一个准确的身份,那末验证就经由过程了。用户对象代表了这么一个身份辨认。除身份反省外,一些页面也需求额定的权限反省来确保被验证的身份有足够的权限来会见。
<P> 验证框架撑持基于脚色的验证。一个页面假如在使用的设置装备摆设页面中指名了需求验证(secured),框架将确保在会见页眼前用户必需被验证。假如还指定的脚色,那末框架还将确保用户是属于该脚色的。最初,还可以定制页面的验证进程。假如验证或受权掉败了,onAuthenticationRequired 或onAuthorizationRequired 办法就会被触发,可以在此显示毛病信息或重定向到登录页面。 <P> 用户对象在分歧的页面一直存在的,它利用了session。因而假如要利用验证框架则必需声名session类。因为用户对象保留在session中,因而你可以用它来保留一些需求在分歧页面会见的数据。
假如要利用验证框架,需求在使用的设置装备摆设文件中声名一个用户类。用户类必需完成了IUser接口。框架中已供应了一个完成了该接口的类System.Security.TUser 。
phonebook 这个例子中申明了验证框架是假如利用的。
4.4Form验证
PRADO供应了一种复杂的办法来停止form的验证,而假如利用传统的PHP编程体例,这个进程长短常反复并且单调的。在PRADO中有一套验证组件。这些验证组件即答应在客户端也答应在办事器端对数据停止验证,上面咱们将举一个例子来讲明。
如今咱们要创立一个用户注册页面。这个页面请求用户输出一个用户名和一个暗码来创立新的帐号。暗码请求是被输出两次以避免输出毛病。别的用户名和暗码都只能包括数字和数字,并且二者的长度分离请求很多于3位和6位。
要完成这个功效,可以创立这么一个模板:
...
<com:TForm>
...
Username:
<com:TTextBox ID="username" />
<com:TRequiredFieldValidator
ControlToValidate="username"
ErrorMessage="You must choose a username." />
<com:TRegularExpressionValidator
ControlToValidate="username"
RegularExpression="[\w]{3,}"
ErrorMessage="Username must ...." />
<br/>
Password:
<com:TTextBox ID="password" TextMode="Password" />
<com:TRequiredFieldValidator
ControlToValidate="password"
ErrorMessage="You must choose a password." />
<com:TRegularExpressionValidator
ControlToValidate="password"
RegularExpression="[\w]{6,}"
ErrorMessage="Password must ...." />
<br/>
Repeat Password:
<com:TTextBox ID="password2" TextMode="Password" />
<com:TRequiredFieldValidator
ControlToValidate="password2"
ErrorMessage="Please re-type your password." />
<com:TCompareValidator
ControlToValidate="password2"
ControlToCompare="password"
ErrorMessage="Your password entries did not match." />
<br/>
<com:TButton Text="Register" />
...
</com:TForm>
...
下面这个模板答应页面履行用户输出的客户端验证和办事器端验证(假定阅读器撑持javascript)。不再需求额定的代码了。假如验证掉败的话,form是不会被提交的,而同时会显示毛病信息。
可以在模板文件中经由过程设置验证组件的EnableClientScript 属性来关失落客户真个验证。这时候候,你可以在页面的OnLoad 事务中或以后经由过程反省页面的IsValid 属性来判别验证是不是经由过程。
4.5缓存
PRADO框架供应了一个缓存机制来进步PRADO使用的运转效力。关于每种组件类型,假如它之前已经被实例化过,那末就会有一个对应的文件存在缓存目次中。这个文件包括了被序列化的的控件实例。今后一旦需求再创立一样的组件,那末就直接经由过程这个缓存文件来创立。这将会大小节省组件的创立工夫,由于创立组件的进程需求解析好几个XML规格文件和模板文件。
假如要利用缓存,只需求在使用的设置装备摆设文件中给的属性设置一个目次便可。这个目次必需是Web办事器可写的。利用的途径可所以相对途径也能够是绝对途径。
假如要封闭缓存,只需求给属性赋一个空字符串便可。
注重,假如你修正了组件的文件,那末应当包含一切的缓存文件都删失落或移走。下一次组件创立的时分会主动从头创立的。因而在开辟的时分,应当把缓存关失落。
4.6定制 TApplication
TApplication 类是可以被扩大的。 TApplication 有好几个办法可以被重载。好比,你可以重载 beginRequest() 办法来完成对request数据的停止一些本人需求的预处置。假如想进一步懂得这些内容,可以参考PRADO 的文档。
培训的第三阶段,开始接触MYSQL,设计数据库,学习PHP如何去连接MYSQL数据库。对于MYSQL,我并不陌生,因为学校开设了Linux系统的课程,对于数据库的操作。 本文当是我的笔记啦,遇到的问题随时填充 至于模板嘛,各位高人一直以来就是争论不休,我一只小菜鸟就不加入战团啦,咱们新手还是多学点东西的好。 没接触过框架的人,也不用害怕,其实框架就是一种命名规范及插件,学会一个框架其余的框架都很好上手的。 Apache不是非得用80或者8080端口的,我刚开始安得时候就是80端口老占用,就用了个 81端口,结果照常,就是输localhost的时候,应该输入为 localhost:81 Apache不是非得用80或者8080端口的,我刚开始安得时候就是80端口老占用,就用了个 81端口,结果照常,就是输localhost的时候,应该输入为 localhost:81 有位前辈曾经跟我说过,phper 至少要掌握200个函数 编起程序来才能顺畅点,那些不熟悉的函数记不住也要一拿手册就能找到。所以建议新手们没事就看看php的手册(至少array函数和string函数是要记牢的)。 php里的数组为空的时候是不能拿来遍历的;(这个有点低级啊,不过我刚被这个边界问题墨迹了好长一会) 作为一个合格的coder 编码的规范是必须,命名方面我推崇“驼峰法”,另外就是自己写的代码最好要带注释,不然时间长了,就算是自己的代码估计看起来都费事,更不用说别人拉。 爱上php,他也会爱上你。 本文当是我的笔记啦,遇到的问题随时填充 至于模板嘛,各位高人一直以来就是争论不休,我一只小菜鸟就不加入战团啦,咱们新手还是多学点东西的好。 开发工具也会慢慢的更专业,每个公司的可能不一样,但是zend studio是个大伙都会用的。 没接触过框架的人,也不用害怕,其实框架就是一种命名规范及插件,学会一个框架其余的框架都很好上手的。 为了以后维护的方便最好是代码上都加上注释,“予人方便,自己方便”。此外开发文档什么的最好都弄齐全。我觉得这是程序员必备的素质。虽然会消耗点很多的时间。但是确实是非常有必要的。 在学习的过程中不能怕麻烦,不能有懒惰的思想。学习php首先应该搭建一个lamp环境或者是wamp环境。这是学习php开发的根本。虽然网络上有很多集成的环境,安装很方便,使用起来也很稳定、 如果你已经到这种程度了,那么你已经可以做我的老师了。其实php也分很多的区域, 为了以后维护的方便最好是代码上都加上注释,“予人方便,自己方便”。此外开发文档什么的最好都弄齐全。我觉得这是程序员必备的素质。虽然会消耗点很多的时间。但是确实是非常有必要的。 环境搭建好,当你看见你的浏览器输出“it works\\\\\\\"时你一定是喜悦的。在你解决问题的时候,我强烈建议多读php手册。 曾经犯过一个很低级的错误,我在文件命名的时候用了一个横线\\\\\\\'-\\\\\\\' 号,结果找了好几个小时的错误,事实是命名的时候 是不能用横线 \\\\\\\'-\\\\\\\' 的,应该用的是下划线\\\\\\\'_\\\\\\\' ;
页:
[1]