谁可相欹 发表于 2015-2-4 00:21:20

PHP网页编程之是你等候的吗? 从Zend Engine 2.0的...

学习如何将PHP与HTML结合起来完成简单动态页面设计   一些杂谈
起首是本文写作的初志。我拿到关于Zend Engine 2.0的设计蓝图文档已有一段工夫了(如今人人也能够去参考材料中的地址下载回来看看),看完以后就有了写一篇评论的感动--由于依据文档的描写下一代的PHP将是一种更合适现有面向对象开辟习气的言语,最少是被更多的付与了面向对象特征。然而随之带来的成绩就是关于PHP如许一个以Web疾速开辟为初始方针的言语是不是值得将本人润色得八面玲珑?这个成绩看来是需求一些评论文章来会商的,我也很情愿提出本人的概念。然而后来一些忙碌的工作就将这个感动一点点又打回了肚里,直到比来一段工夫又想起,因而再拜读几遍设计蓝图文档,遂有此文。(刚拿到这份英文文档的时分我还有将这份设计蓝图文档翻译到中文的盘算,然而思索到一是并不是终究蓝图,二是人人都应当培育直接浏览原文的习气,三是翻译老是不成防止会带来一些流畅的中央,因而临时作罢。不外写成此文的时分,仍是决意"冒险"翻译一次,不克不及正确达意的地方还请列位不惜斧正。)

其次是对本文会商核心的注释--在这篇评论中我将次要针对未来的PHP中得以大大增强的面向对象特征停止评述。假如你是PHP的开辟者,那末我料想你应当懂得一些PHP言语中的面向对象特征;然而因为普通PHP用于"极端疾速开辟情况"(这是我本人生造出的一个词语,暗示停止一些以客户为导向的网站开辟的情形,特色就是工期十分短且客户请求不甚明白),所以真正大批利用其对象特征的开辟者和开辟项目并非良多;别的,现有PHP对象模子绝对C++和Java的弱势,也限制了这方面特征的利用。不外在PHP的未来版本中,修正重点就在于言语中的面向对象模子,完美现有版本中很多不良的特征并到场其他特征。因而会商PHP的将来相貌就集中在会商PHP的面向对象特征方面。

好了,让咱们步入正题,看看Zend Engine 2.0的新特征。

归结Zend Engine 2.0设计蓝图(草稿)
从设计蓝图(草稿)中可以十分清晰的看出下一代Zend Engine是以新的面向对象模子为基本的。假如你已经利用过现有PHP 4的面向对象特征,那末或许会在找到一点点Java或C++的感到的同时感觉有些别扭--不仅是在面向对象语法的匮乏上,并且有时会失掉意想不到的运转了局--这一切都是由于在现有的撑持PHP 4的Zend Engine 1.0中不那末优雅的面向对象模子酿成的。

复杂说来,下一代的Zend Engine将向Java挨近,大批自创其面向对象形式。从改善特征的类型来看,应当可以分为三类:第一类是对现有面向对象模子的改善和增强,个中包含对构建器和析构器的界说,增添的公有成员变量、静态成员变量、多重承继、过载等面向对象特征;第二类是关于掌握流程的修正和增删,好比增添了形如try/catch/throw背例处置机制;第三类是关于函数的修正和增删,好比关于字符串偏移量的增添函数。(关于每类改善的具体情形,可以查阅参考材料中所列文档。)由此可以看出,经由过程第一类和第二类的改善,PHP正在慢慢将本人改进成一种具有面向对象特点的言语。

不外成绩恰好就发生于此:

从积极的方面来讲,现在的编程世界中加倍接待具有面向对象特点的言语(即便言语自己其实不构建于面向对象基本之上,也能够经由过程增添界说的对象等手腕使得该言语不至于落在潮水以后)--从这一意义上说,Zend Engine 2.0使得PHP对面向对象的撑持将从如今的摸索性接触改变为未来的周全反对,看来加倍合适编程言语开展的潮水;别的,在构建企业级使用(这也是PHP如今常常被人求全谴责的地方)之时,采取面向对象的办法建模和完成已是现实上的尺度,而PHP的这一改善或许会投合这一需求,处理言语本身在这方面的亏弱的地方。
从消极的方面来讲,为开辟者贡献一个加倍相似Java的新版PHP仿佛没有甚么意义。PHP被普遍使用的缘由,除源码公然和跨平台等以外,顺应互联网站构建的复杂、疾速的web编程特色生怕也是主要的一点。极短的进修工夫、友爱的言语作风(出格是假如你对C对照熟习)和大批扩大类库函数,足以证实其壮大;然而假如将如许的言语的下一版本改革成相似面向对象的言语,不仅会使原本的大批开辟者在短工夫内莫衷一是,并且十分晦气于吸引新的开辟者到场--既然有Java如许的言语,何须去进修PHP呢?

以上是我自己的一些"客不雅"剖析--所谓"客不雅",就是在写积极方面的时分,将本人假装成一个Zend Engine 2.0的忠厚反对者;而在写消极方面的时分,则正相反(但愿你在读完我的剖析以后也能够感觉还算客不雅)。不外"客不雅"其实也只是为我的"客观"论调起到铺垫感化--

成绩的关头--咱们希冀未来的PHP会是甚么模样?
其实成绩的关头或许在于咱们希冀的PHP究竟会向哪个偏向开展,或说PHP会努力于哪个范畴。

PHP之所以遭到如斯大的接待,特别是在几近没有任何贸易撑持(Zend公司如今对PHP供应撑持,然而其实力和Microsoft和Sun对照起来其实是微乎其微的。)的情形下成为可以与ASP和JSP对抗的编程言语,是由于它完整面向实际的疾速web编程情况。这一情形在很多的PHP教程中可以清晰的看出--完成一些经常使用的web功效,采取PHP常常意味着更少的代码量和庞杂水平;同时关于某一特定范畴的编程,PHP还有扩大模块的函数可供利用(固然没有贸易撑持,然而PHP具有开源软件浩瀚的反对者撑持,他们不仅为PHP的发生和开展作出奉献,而且供应了各类扩大模块函数。),如许关于开辟者而言,更多的当即可用的而且收费的函数库意味着更少的任务量,所需求做的仅仅是查阅函数手册并妥帖利用它们。而PHP的竞争敌手们,则显得有些"学究"-- 天真缺乏而严谨不足,或许大型贸易公司的产品在利用的便利水平上的确不及黑客们的满意之作吧。

不外为了顺应实际的疾速web编程情况,PHP在重视便利易用的时分保持了一些器材:好比开辟者的自有模块的编写和封装(非源码级别),和面向对象特征(现有版本只是不完整的撑持一局部特点)等等--而这些PHP的短少的倒是它的竞争敌手们所具有的(好比ASP可以和COM组件沟通,JSP则可以便利的利用Java Bean;JSP脱胎于Java这一完整面向对象的言语等等),因而PHP凡是被扫除在构建企业级使用的候选名单以外。

成绩的中心已对照明晰了--如今的PHP开展碰到了一个叉路口:是持续将本人的疾速web编程言语的特色发扬得极尽描摹,仍是将本人完美、润色成一个顺应严厉贸易情况需求的编程言语?

事实若何--不抱太大但愿
从Zend Engine 2.0的设计蓝图中看来,PHP的发明保护者们仿佛选择了后一种战略--几近重写注释引擎的面向对象模子,增强言语的面向对象特征。我团体以为如许的选择是有必定的来由的:

PHP在顺应疾速web编程方面仿佛已做得很好,在现有言语架构基本上关于此方面已不成能有太大改动(可以做的仅仅是修正、增删一些中心函数和墨守成规的增添更多的扩大函数库),而PHP必需要开展…… J
大局部人都意想到了PHP的局限性,它的发明保护者们加倍清晰--假设PHP可以在企业级使用中取得正视,那将是一次更大的成功(关于开源软件的反对者来讲或许意义更深远)。提拔其在该范畴竞争力的捷径或许就是Zend Engine 2.0设计蓝图中出现的内容--为这个面向进程的绝对传统的言语添加全新的面向对象模子,使得开辟者可以轻易的采取面向对象编程办法。

不外十分遗憾的是,试图进入企业级盘算范畴的PHP完善的还太多--没有足够的贸易撑持,大批的扩大模块处于实验阶段而个中的一些需求被用来在企业级使用中担任重担,关于体系架构的计划和撑持不力等等,还有或许是最主要的是贸易界的不雅念可否承受开源而不是贸易撑持的编程言语构建全部贸易体系(不外Linux的使用仿佛正在展现夸姣的远景,但仅仅是远景罢了)。即便是悲观的PHP撑持者(好比我本人),关于在企业级盘算中利用PHP,仍是持嫌疑立场--即便是Zend Engine 2.0如设计蓝图所述的被推出以后。

因而,我对采取Zend Engine 2.0的新版PHP其实不抱有太大的但愿:

它的合用处仍是在于疾速web编程情况,好比互联网站等;选择PHP作为构建关头贸易体系的次要撑持言语,需求十分十分稳重。
固然Zend Engine 2.0侧重增强了面向对象特征(或许PHP的发明保护者们也会鼎力倡始利用它们),然而关于现有的大局部PHP开辟者而言,用如今的面向进程的作风书写PHP法式其实不会遭到任何影响(Zend Engine 2.0也十分周密的思索到了向下兼容的成绩)--也就是说,外表上看PHP会因为被付与了面向对象的特点而加倍壮大,实践上在大多半开辟者手中采取Zend Engine 2.0和1.0版本(撑持如今的PHP 4的注释引擎)的PHP并没有甚么区分。

固然仍是有一些值得等候的中央:

疾速web编程情况一样需求优秀的建模,面向对象的设计和完成要比面向进程的或说是面向页面间的办法好很多。局部PHP开辟者(包含PHP的发明保护者们)已在鼎力倡始利用言语自己的面向对象特征(PEAR就是很好的例子),Zend Engine 2.0将会为他们带来福音--更好的面向对象模子,可以几近不受限制的采取面向对象设计和完成(而如今的PHP因为面向对象撑持的极不完整,基本作不到这一点);同时在对象的利用功能上可以失掉必定提拔。
背例处置机制的引入关于PHP项目会带来必定积极的影响,可以无效的进步代码效力,并勉励妥帖的处置毛病。
因为Zend Engine 2.0面向对象模子的改善,使得PHP挪用内部组件(好比COM和Java Bean)加倍便利和公道,在效力上也将失掉进步。这一改善或许会增添PHP作为异种体系(好比采取Java开辟的体系)前真个能够性(国际的minij2ee项目就是这方面的一个典范)。

对PHP开辟者的一些建议
起首你不需求对将来的PHP有任何的担心--你所具有的开辟妙技在新的版本中依然合用并且运作得很好(这让我想起Microsoft .net中Visual Basic的为难位置--PHP不会如许)。即便你对面向对象一窍不通,也能够依照传统的体例(也是大局部市情上教学PHP开辟的书本中引见的手艺)停止开辟。

其次是假如你对PHP的面向对象特征发生了乐趣,或已有了积极的探究,那末将来的PHP会加倍合适你的口胃--你可以完整采取面向对象办法停止项目标剖析,然后用PHP轻松的完成你的设计。或许随之而来的还会有一些合用于PHP的建模东西(或许是在现有东西上的增添特征,或许是开辟源码社区的又一奉献)加倍有益于PHP的面向对象设计和编码。不外关于这一类开辟者,需求注重的关头在于--你不是仅仅被局限于PHP的世界中,合适你需求的或许是加倍面向对象的C++或Java;或许PHP关于你是最熟习的,然而C++或Java倒是更壮大的。

再次是关于那些"渐有去意"的PHP开辟者(我指的是在PHP无用论调下遭到影响筹办保持PHP的开辟者),大局部求全谴责PHP的论点都集中在是不是具有更大的扩大便是否合适企业级体系构建上--假如你也是为此保持了PHP,那末就上文的概念,将来的PHP也很少能够成为可以应战Microsoft和Sun产物的编程言语--从这个意义下去说你的选择或许是准确的。

最初关于正筹办接触PHP的开辟者,不论是现有的PHP仍是将来的PHP都最少长短常合适web疾速开辟的编程言语--不外一样缘由,假如你在寻觅"分量级"的可以撑持完全贸易体系的编程言语,请稳重思索PHP,即便将来的版本会极大的增强面向对象这一盛行的特征。
看到好的帖子最好up一下,以使得更多的人得到分享。

小魔女 发表于 2015-2-4 12:27:19

因为blog这样的可以让你接触更多要学的知识,可以接触用到类,模板,js ,ajax

活着的死人 发表于 2015-2-5 02:01:40

这些都是最基本最常用功能,我们这些菜鸟在系统学习后,可以先对这些功能深入研究。

海妖 发表于 2015-2-9 07:34:01

Apache不是非得用80或者8080端口的,我刚开始安得时候就是80端口老占用,就用了个 81端口,结果照常,就是输localhost的时候,应该输入为 localhost:81

爱飞 发表于 2015-2-10 06:02:40

开发工具也会慢慢的更专业,每个公司的可能不一样,但是zend studio是个大伙都会用的。

老尸 发表于 2015-2-17 17:41:57

个人呢觉得,配wamp 最容易漏的一步就是忘了把$PHP$目录下的libmysql.dll拷贝到windows系统目录的system32目录下,还有重启apache。

分手快乐 发表于 2015-3-5 21:22:45

最后祝愿,php会给你带来快乐的同时 你也会给他带来快乐。

飘飘悠悠 发表于 2015-3-7 02:27:02

找到的的资料很多都是在论坛里的,需要注册,所以我一般没到一个论坛都注册一个id,所有的id都注册成一样的,这样下次再进来的时候就不用重复注册啦。当然有些论坛的某些资料是需要的付费的。

透明 发表于 2015-3-14 03:38:01

如果你已经到这种程度了,那么你已经可以做我的老师了。其实php也分很多的区域,

金色的骷髅 发表于 2015-3-20 08:07:24

爱上php,他也会爱上你。

谁可相欹 发表于 2015-4-7 21:53:29

装在C盘下面可以利用windows的ghost功能可以还原回来(顺便当做是重转啦),当然啦我的编译目录要放在别的盘下,不然自己的劳动成果就悲剧啦。

若相依 发表于 2015-4-11 05:09:30

实践是检验自己会不会的真理。

因胸联盟 发表于 2015-4-11 07:12:29

最后祝愿,php会给你带来快乐的同时 你也会给他带来快乐。

柔情似水 发表于 2015-4-24 14:32:24

有时候汉字的空格也能导致页面出错,所以在写代码的时候,要输入空格最好用引文模式。

只想知道 发表于 2015-4-28 19:56:02

使用zendstdio 写代码的的时候,把tab 的缩进设置成4个空格是很有必要的

冷月葬花魂 发表于 2015-6-7 00:04:58

兴趣是最好的老师,百度是最好的词典。

乐观 发表于 2015-6-18 22:24:02

再就是混迹于论坛啦,咱们的phpchina的论坛就很强大,提出的问题一般都是有达人去解答的,以前的帖子也要多看看也能学到不少前辈们的经验。别的不错的论坛例如php100,javaeye也是很不错的。

第二个灵魂 发表于 2015-6-22 05:49:09

写js我最烦的就是 ie 和 firefox下同样的代码 结果显示的结果千差万别,还是就是最好不要用遨游去调试,因为有时候遨游是禁用js的,有可能代码是争取结果被遨游折腾的认为是代码写错。

兰色精灵 发表于 2015-6-29 05:08:11

建议加几个专业的phper的群,当然啦需要说话的人多,一处一点问题能有人回答你的,当然啦要让人回答你的问题,平时就得躲在里面聊天,大家混熟啦,愿意回答你问题的人自然就多啦。

若天明 发表于 2015-7-5 08:28:37

环境搭建好,当你看见你的浏览器输出“it works\\\\\\\"时你一定是喜悦的。在你解决问题的时候,我强烈建议多读php手册。
页: [1]
查看完整版本: PHP网页编程之是你等候的吗? 从Zend Engine 2.0的...