|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
就是管理员可以编辑,删除,回复 等功能,。加入管理员功能要加入登陆系统,慢慢你会想在线添加管理员,慢慢你会让自己的作品更漂亮些,慢慢1个完整的留言板就会出来了,成绩 看到有人在会商PHP的事务驱动成绩,本应答复一帖。但以为答复缺乏以引发人人的正视,故专开一帖胪陈自己对这个成绩的了解,并对一佳作停止注释与剖析。
事务驱动这个概念是狭义的。可以在客户端,也能够在办事器端。
在WEB使用上,在客户真个事务是基于JS或是插件或是JAVAAPPLET之类的器材,根基上假如是插件或是JAVAAPPLET的话,就不属于HTML的范围了,而真正必需用到JS的场所其实其实不多,最多就是FORM的提交或是链接点击之类的根基操作,因而议论事务无太粗心义。
事务驱动真实的意义其实不在于可视化编程,而在于它的概念,就象OO一样。事务驱动实际上是OO的一个延长,它的最后原型是动静机制。然而事务驱动把动静封装成了一个可挪用的函数,有些相似于API中的回调函数,你本人可以界说这些函数履行的内容。而可视化编程则把这些函数自力出来,界说好参数(多半是现成的对象),让你本人写代码并应用这些参数(实际上是用这些对象)做一些工作。
所以,PHP有事务驱动是完整能够的,次要在于框架的设计。而要做成VB之类所谓的可视化事务驱动,则必需要有配套的集成开辟情况,包含页面设计,事务编码,编译转码之类的一系列功效才行。其实象点NET如许的事务驱动,只不外是把一些经常使用的WEB元素或控件,如按钮、文本框之类的器材封装了一下,让你有个可视化的界面可以设计一下,当它编译以后,依然是<input type="text">之类的文本,只是把你的事务代码转为了JS或是办事器端代码罢了。而PHP次要是因为IDE不敷丰厚,并且也没有预编译机制,所以最初提交的代码仍是终究的PHP代码,而不是点NET的资本代码与事务代码的夹杂体(通常为合适XML标准的ASP文档,包括了非尺度的HTML代码)。故此PHP还没法到达人人心目中广义的所谓事务驱动编程,但实际上是完整可以没有成绩的。
假如人人感乐趣,无妨到www.php.net官方主页去看一下一名中国哥们(Qiang Xue)写的一套基于事务驱动的PHP框架PRADO,这个仍是取得高票中选的最好,激烈保举!请参考 http://www.zend.com/php5/contest ,你看了他的源代码后就会了解PHP的事务驱动是怎样回事。但我以为,在这下面,因为PHP无预编译机制,并且过度依附OO(固然是用PHP5写的代码),形成这个框架有些复杂,且利用对照庞杂,可扩大性也不是很好。不外,个中的理念十分之好,有些设法还处理了猜疑我多日的成绩。我上面复杂引见一下这个框架。
该框架用ZDE及PHP5写成,有具体文档,布局非常明晰,正文极其充实,代码十分易于读懂,申明作者写码程度十分之高。作者明白申明,这套框架参考了ASP点NET及Borland Delphi的概念。
这个框架在验证性上十分之强(并非指外面有甚么验证登录之类的模块),非常强健,几近不成能有甚么直接的破绽可以从里面攻入,它是引入了标准文件这个概念做限制,很无效地处理了大批验证时的效力瓶颈,这类验证办法只要一个成绩就是标准文件自己的制造对照吃力(固然用东西的话是另外一回事了),但是一旦做好(标准文件自己有格局与标准的),验证就天然而然地由框架去做了,而无需每次工资挪用。它的事务也能够界说在标准文件以内(我却以为这就没有需要了),其实它的标准文件就有点相似于DELPHI或是VB中的FORM界说文件,只不外是用XML写的纯文本,而非可视化。而关于事务驱动,框架内置了一套与点NET相似的根基事务流,你可以在分歧阶段定制这些事务,其实说白了,就是从头界说这几个OnXXX函数,用给定模式的参数,你也能够本人到场本人的事务,好比你在界说本人的组件时,在标准文件中界说好该组件能够有的事务函数及参数,今后你在利用该组件时可以直接界说这些被答应的函数――不外我以为这类体例过于庞杂,且要大批读入并剖析XML文件,固然非常地严谨,很平安,但有些过度了,也没有充实使用到PHP自己的天真性,我的思绪是用相似于DELPHI的函数句柄赋值的举措或是用C的回调函数的特征,便可在写代码时在任什么时候间任何地址界说事务,而依然能明白事务收回者及类型并有足够地平安性包管,且无需机械地强迫各个组件只能有哪些事务,代码修正及扩大都非常便利。固然,在做大项目标时分,严厉的界说是需要的,不外,即便如斯,该框架处置事务的办法仍是有些呆板。
它的模板我以为是一个对照好的设法,它的模板有些相似于点NET的ASP文件在编译前的文件(我对ASP点NET其实不熟,但分明一些道理),但起感化的体例则相似于DELPHI的FORM文件,是一个很好的概念,唯的一弱点是用DW之类所见即所得的通用编纂器则感到不是很随手,由于一个模板中可以同时把几个互斥的组件放在一同,而只在运转过程当中决意显示哪些。
就我自己看该框架的代码,仍是发明它有一些十分弱的项。个中最次要的一个就是途径的成绩,可扩大性很低,应当对照合用于公用主机,对一些受限主机(目次限制或是权限限制)就力所不及了,也无响应的提示办法(也无相干接口)。它对某些资本或文件的途径,用了一种繁琐的叫assetService的机制,目标就是肯定文件的途径,作者本人也说,假如用了这个办事,体系损耗会分明增添,其实这个是自创了Flash中asset library的概念,它如许固然可以恣意指定途径,但每次都必需从头校验,有些得失相当。我的作法例是固定好几个次要途径,而其的子目次都可随便,就综合均衡了二者的抵触。因为对途径成绩缺少思索,招致该框架对言语设置、特性化模板等力所不及,如要翻译一个项目,手续之繁,任务量之大是可想而知的,并且极易失足。这是该框架中最严重的一个成绩。
从整体下去说,该框架的理念上,设计上,代码上相对都属一流。固然缺乏老是有的,不外完整无妨碍咱们研讨及进修它。它的代码我并未全看,只次要看了几个中心法式及一些申明,但已能足够看清晰其布局与思惟,对作者深表信服,但对个中的缺乏也深表遗憾。不论怎样,它都相对是研讨PHP事务驱动代码的好作品。因而激烈保举!
既然选择了PHP,就要坚持学下去!大家有没有问自己为什么会选择学习PHP呢?就我个人而言,完全是因为兴趣,因为我的专业和计算机完全无关,但是就是对编程很赶兴趣,尤其对网络编程、web开发特别赶兴趣。 |
|