国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

新里程碑到來(lái) 開(kāi)啟PHP框架的新時(shí)代

原創(chuàng)
開(kāi)發(fā) 后端 前端
然而就在最近,我注意到一個(gè)新的里程碑到來(lái)了——PHP框架的新時(shí)代。5月21日我在荷蘭PHP大會(huì)上講話時(shí)談到這個(gè)問(wèn)題,引發(fā)的熱烈討論也讓我感到非常有趣。本文中我想要說(shuō)說(shuō)我所認(rèn)為的PHP目前處在什么狀態(tài),哪些地方有問(wèn)題,還有眾多新出現(xiàn)的框架會(huì)怎樣改變它。

【51CTO 精選譯文】我曾在不同的系統(tǒng)和項(xiàng)目中埋頭度過(guò)了很多年,大部分時(shí)間都花在了PHP上。然而就在最近,我注意到一個(gè)新的里程碑到來(lái)了——PHP框架的新時(shí)代。5月21日我在荷蘭PHP大會(huì)上講話時(shí)談到這個(gè)問(wèn)題,引發(fā)的熱烈討論也讓我感到非常有趣。在最近的日子里好像一切都在變化。本文中我想要說(shuō)說(shuō)我所認(rèn)為的PHP目前處在什么狀態(tài),哪些地方有問(wèn)題,還有眾多新出現(xiàn)的框架會(huì)怎樣改變它。

框架的誕生

[[30070]]

圖一 我使用PHP框架

6年前出現(xiàn)的CakePHP大概是***個(gè)PHP框架,在它以后,我們見(jiàn)到了大量的PHP框架。目前的數(shù)量……可能大約有一百萬(wàn)了,這些框架使用著不同的MVC、DBAL和模板實(shí)現(xiàn),我喜歡它們,即使它們各有各的古怪,而且都仍然沒(méi)有得到大規(guī)模的采用。

如果你想要上網(wǎng)找找那些以框架為基礎(chǔ)開(kāi)發(fā)的PHP開(kāi)源項(xiàng)目,能夠找到的只有數(shù)量很少的一些,這很令人惋惜。部分原因是這些開(kāi)源項(xiàng)目有很多在發(fā)布時(shí)甚至還沒(méi)有任何PHP框架存在,另有部分原因是想用PHP框架來(lái)開(kāi)發(fā)確實(shí)需要學(xué)習(xí)相當(dāng)一段時(shí)間。也就是說(shuō)如果一個(gè)PHP項(xiàng)目如果想用框架開(kāi)發(fā)就會(huì)增加不少學(xué)習(xí)難度,至少在大多數(shù)情況下。

不過(guò)框架們的出現(xiàn)已經(jīng)確實(shí)開(kāi)始改變了我們開(kāi)發(fā)PHP的方式。許多開(kāi)發(fā)者喜歡在口頭上聲稱他們懂得面向?qū)ο螅钱?dāng)框架出來(lái)后,他們要被迫證明他們真正懂得OOP和它的工作方式。如今你要是再讓人用mysql_query可能臉上會(huì)挨上一兩拳,因?yàn)樗麄儸F(xiàn)在還需要用到mysql_real_escape_string。

框架是怎么做的呢?

沒(méi)有人真正知道PHP框架應(yīng)該是什么樣子的,它們應(yīng)該有什么功能。因此,人們是怎么把它們開(kāi)發(fā)出來(lái)的呢?好的,他們要么是跟著其他語(yǔ)言(比如RoR)的現(xiàn)有框架照貓畫(huà)虎,要么是自己拍腦門。因?yàn)椴淮嬖谑裁唇?jīng)驗(yàn)可言,現(xiàn)如今大多數(shù)的框架都是傳統(tǒng)設(shè)計(jì)的,每個(gè)人都知道有問(wèn)題,但卻沒(méi)法解決。

PHP開(kāi)發(fā)者一貫的務(wù)實(shí)做法在這里給了很大的幫助——就像PHP作為一種語(yǔ)言在不停進(jìn)化一樣,PHP框架也在不斷的根據(jù)反饋而改變和成長(zhǎng)。有幾年里多數(shù)人都對(duì)已經(jīng)擁有的功能感到滿足了,但是如果你現(xiàn)在再回頭看看2007年的Zend Framework 1.0,和1.11相對(duì)比功能已經(jīng)天差地別。因此,即使在今天,框架也正在迅速的發(fā)展來(lái)滿足功能的需要。

PHP 4曾經(jīng)得到所有PHP框架的支持(令人驚訝的是現(xiàn)在一些框架仍然支持)。這導(dǎo)致了大量的過(guò)時(shí)代碼,特別是OOP模式。試圖支持舊版本的PHP讓新功能執(zhí)行起來(lái)過(guò)于復(fù)雜,修正錯(cuò)誤也愈發(fā)艱難。而且,越來(lái)越少的開(kāi)發(fā)者想要面對(duì)著這些舊代碼工作。

什么出問(wèn)題了?

[[30071]]

圖二:每用一次PHP魔術(shù)函數(shù),都有一只貓要死于非命! “魔法殺戮”

首先,回到PHP魔術(shù)函數(shù)(__get、__call等等這些)盛行的年代。初看上去它們沒(méi)有什么錯(cuò),但它們實(shí)際上是非常危險(xiǎn)的。它們讓API變得模糊不清,不能自動(dòng)處理,最重要的是它們很慢。對(duì)魔術(shù)函數(shù)來(lái)說(shuō),它們的用例就是讓PHP被破解而做不想做的事情,它們有用處,但是會(huì)發(fā)生錯(cuò)誤的事情。

SCOP——Static class oriented programming,面向靜態(tài)類編程,這是我發(fā)明的術(shù)語(yǔ),用來(lái)描述大部分PHP代碼。靜態(tài)方法從很多方面來(lái)說(shuō)都有問(wèn)題,但更重要的是,如果一個(gè)類只作為靜態(tài)方法的集合,那么它就離OOP越來(lái)越遠(yuǎn)了,它只是使用類來(lái)作為存放各種函數(shù)的容器,但是甚至有完整的框架就在做這個(gè)。

Zend Framework在很長(zhǎng)一段時(shí)間是我最喜歡的PHP框架(現(xiàn)在對(duì)于PHP 5.2仍然適用),但我和它之間的主要問(wèn)題是它總是過(guò)于賣力的想成為一個(gè)組件庫(kù)。而且其他框架和它走著相同的路——它們各寫各的類庫(kù),但卻不使用現(xiàn)有的庫(kù)。這就搞得PHP有那么多獨(dú)立的庫(kù),你想要使用就需要下載整個(gè)框架,臃腫的框架真令人頭疼。

#p#

2011年的新時(shí)代

為了改善這種情況,人們終于選擇要做一些事情。主要是在PHP 5.3的基礎(chǔ)上從頭開(kāi)始重寫框架。建立新的標(biāo)準(zhǔn),統(tǒng)一所有框架之間的接口,扔掉所有的遺留問(wèn)題。這些聽(tīng)起來(lái)容易,但只有通過(guò)這些事情,我們才能進(jìn)入框架的新時(shí)代。

在CakePHP誕生之前我沒(méi)有用過(guò)任何PHP框架,所以我打算把它算作一個(gè)里程碑(其實(shí)我有些懷疑CakePHP就是***個(gè)PHP框架,當(dāng)然你不會(huì)把Drupal當(dāng)做框架的)。從CakePHP開(kāi)始,至今六年過(guò)去了,這六年我稱為***個(gè)時(shí)代。2011年標(biāo)志著第二個(gè)時(shí)代,全新的變革終將發(fā)生,我們會(huì)迎來(lái)各種各樣的版本發(fā)布和公告。

有趣的是,2011年的PHP好像不再是PHP了,或者可以說(shuō)不再只是PHP了。有了Nginx和CouchDB這樣的新工具,惱人的LAMP stack用的越來(lái)越少了。如今集成功能和互操作性成為了關(guān)鍵因素。同樣,PHP 5.3更像是一個(gè)全新出籠的野獸,它能夠給你強(qiáng)大功能,但是并沒(méi)有真正的支持向后兼容。

我們來(lái)解決它,好嗎?

[[30072]]

圖三:來(lái)用GIT吧。

Git支持許多PHP框架,給我印象最深的是Symfony,因?yàn)樗鼈円呀?jīng)成功的吸引到大量的貢獻(xiàn)者,而對(duì)比前幾年,PHP框架最近步伐又快了很多。

PHP框架們?cè)诓煌5耐晟浦鞣N小修改。首先,所有的魔術(shù)函數(shù)現(xiàn)在已經(jīng)不見(jiàn)了,顯式定義隨處可見(jiàn)。此外,人們更多的考慮使用小尺寸的核心,通過(guò)擴(kuò)展和類庫(kù)來(lái)附加功能,這是一個(gè)了不起的辦法,更易于使用框架,減少內(nèi)存占用。

性能是PHP框架面對(duì)的主要問(wèn)題,大部分框架在新版本中都做了提升性能的安排。比如Symfony,在前端做了改進(jìn)用來(lái)幫助管理資產(chǎn)(JavaScript和CSS),在PHP端由于清除了魔術(shù)函數(shù)和清理陳舊代碼,通過(guò)PHP 5.3得到了巨大的性能提高。

新功能

顯然,所有新的語(yǔ)言功能都包含在其中了,例如大多數(shù)的框架已經(jīng)開(kāi)始支持命名空間,還有更早出現(xiàn)的PSR-0現(xiàn)在很好的集成到框架中,匿名函數(shù)也以各種各樣的方式在框架中找到了它們的位置。

依賴注射容器(Dependency injection container)和Annotation接口是我想提及的兩個(gè),它們能夠改變你的編程方式。在Symfony中我很喜歡使用它們,現(xiàn)在其他的框架也正在迎頭趕上,開(kāi)始把它們集成進(jìn)去。這些結(jié)合上新的PHP功能,就可以創(chuàng)建出非常干凈的微型框架應(yīng)用。

我并不喜歡直接把Java的功能列表移植到PHP來(lái),Java的工作方式不同(而且需要1GB內(nèi)存)。我們看到它正一步步走來(lái),但我有點(diǎn)擔(dān)心,因?yàn)槲抑繮HP喜歡輕一點(diǎn)的系統(tǒng),而不是復(fù)雜的對(duì)象。這些功能聽(tīng)起來(lái)很炫,但實(shí)際上它們帶來(lái)的問(wèn)題比解決的要多。

因此,什么時(shí)候?

[[30073]]

圖四:Symfony2發(fā)布

Zend Framework 2.0正在路上,但還需要一段時(shí)間。由于ZF有一個(gè)龐大的代碼庫(kù),他們首先要做是把它轉(zhuǎn)換成命名空間代碼。完成之后,還要開(kāi)始重新構(gòu)建原有功能和新功能。ZF目前正在做MVC方面的工作,我希望今年年底最終版能夠發(fā)布。

Lithium會(huì)來(lái)的快些,它還在dev模式,但似乎已經(jīng)很接近完成了。Lithium是一個(gè)和常規(guī)完全不同的框架,所以很值得看看。最觸動(dòng)我的是它的AOP實(shí)現(xiàn),顯然它只支持PHP 5.3,但它對(duì)CouchDB和MongoDB支持的相當(dāng)不錯(cuò)。

在我看來(lái)Symfony2依然在領(lǐng)先群雄。目前它正在Beta2版,但最終版也只是幾個(gè)月的事兒了。Symfony2功能列表很難總結(jié),所以值得去它的網(wǎng)站查看一下,我想特別說(shuō)一個(gè)——捆綁(Bundle)功能。捆綁是一種方法,可以通過(guò)外部的組件集合來(lái)擴(kuò)展應(yīng)用結(jié)構(gòu),想想插件吧。

結(jié)論

我對(duì)當(dāng)前PHP行業(yè)發(fā)生的事情感到極度興奮,我相信這些一定會(huì)帶來(lái)重大的成就。我們終于可以扔掉所有(或者大多數(shù))的遺留問(wèn)題,開(kāi)始實(shí)施新的想法。從現(xiàn)在開(kāi)始的五年之內(nèi),我們都會(huì)像今天一樣興奮。

原文地址:http://blog.webspecies.co.uk/2011-05-23/the-new-era-of-php-frameworks.html

【編輯推薦】

  1. 見(jiàn)微知著 大型網(wǎng)站PHP開(kāi)發(fā)之道
  2. 草根語(yǔ)言PHP的進(jìn)化史
  3. 中國(guó)應(yīng)用開(kāi)源腳本語(yǔ)言PHP的水平如何?
  4. 優(yōu)秀的PHP開(kāi)發(fā)者是怎樣煉成的?
  5. 25個(gè)不錯(cuò)PHP的游戲編程腳本代碼分享
責(zé)任編輯:陳貽新 來(lái)源: 51CTO
相關(guān)推薦

2011-09-09 13:42:16

2011-09-10 19:23:22

2024-12-04 10:39:00

Linux內(nèi)核技術(shù)性

2016-09-29 09:46:41

JavascriptWeb前端

2012-09-21 17:24:04

開(kāi)源云平臺(tái)開(kāi)源云計(jì)算標(biāo)準(zhǔn)OpenStack

2013-11-13 15:42:54

AndroidWPBlackBerry

2015-12-21 16:12:06

紅帽CloudForms混合云

2010-04-09 15:24:55

2017-08-01 10:15:56

數(shù)據(jù)分析大數(shù)據(jù)

2013-01-18 10:09:10

互聯(lián)網(wǎng)網(wǎng)絡(luò)發(fā)展撥號(hào)上網(wǎng)

2021-02-04 14:31:30

RISC-V架構(gòu)GPU

2019-03-08 09:54:29

華為

2013-10-21 10:38:19

Ubuntu 13.1Canonical

2017-05-10 09:57:11

小米手機(jī)智能

2023-06-23 14:15:09

Rust編程

2015-07-28 11:29:59

電商亞馬遜沃爾瑪

2023-05-18 14:03:00

Transforme模型

2024-08-19 08:50:00

模型數(shù)據(jù)

2011-08-18 10:12:19

以太網(wǎng)IEEE
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

在线看片免费人成视久网| 国语精品中文字幕| 亚洲国产精品久久久久婷婷884| 国产欧美日韩精品高清二区综合区| 久久久pmvav| 国产精品jizz在线观看老狼| 欧美日本啪啪无遮挡网站| 欧美性猛交xxxx黑人猛交| 日韩av网站免费在线| 国产亚洲高清在线观看| 在线色视频网| mm131午夜| 4444欧美成人kkkk| 欧美精品v国产精品v日韩精品| 成人激情综合网站| 亚洲成人国产| 欧美xxxx做受欧美护士| 99re6热在线精品视频播放| 色播五月综合| 欧美高清视频在线播放| 欧美日韩亚州综合| 久久先锋影音av| 99在线|亚洲一区二区| 欧美2区3区4区| 黄黄的网站在线观看| 亚洲老女人av| 国产精品乱码视频| 久久91亚洲人成电影网站| 欧美日产国产精品| 国产蜜臀97一区二区三区| 亚洲欧美日韩视频二区| 精品少妇一区| 超碰高清在线| 青青草在线视频免费观看| 欧美一级免费播放| 国产精品v欧美精品v日韩精品| 久久精品国产69国产精品亚洲| 在线亚洲一区观看| 国产日韩欧美高清| 日本aⅴ免费视频一区二区三区| 国产精品一区高清| av激情成人网| gogogo高清在线观看免费完整版| 日韩欧美黄色大片| 亚洲日本无吗高清不卡| 国产精品一区二区三区毛片淫片| 中文字幕日韩精品有码视频| 欧美人伦禁忌dvd放荡欲情| 国产精品午夜春色av| 日韩精品每日更新| 97精品视频| 91精品国产自产在线丝袜啪| 999精品网| 国产精品麻豆一区二区三区| caoporn超碰97| 一二三在线视频| 免费av在线一区二区| 国产精品久久久久久久久影视 | 国产亚洲永久域名| 小说区图片区色综合区| 欧美日韩五码| 中文字幕中文字幕在线十八区| 天天射综合网站| 少妇网站在线观看| 国产曰肥老太婆无遮挡| 热舞福利精品大尺度视频| 91精品国产自产在线观看永久| 欧美精品999| 中文字幕在线看视频国产欧美在线看完整| 欧美一区二区观看视频| 色综合久久中文综合久久牛| 亚洲精品国产视频| 中文字幕精品综合| 成人黄色综合网站| 国内精品不卡在线| 久久亚洲二区| 在线看片一区| 欧美激情亚洲| 欧美激情偷拍自拍| 激情综合网五月| 欧美日韩导航| 97久久精品| 日韩一二三区在线观看| av成人亚洲| 日本成人片在线| 毛片免费看不卡网站| 岛国毛片av在线| av大片在线| 黄色小网站在线观看| 国产中文字幕在线看| 未来日记在线观看| 在线黄色av| 一级在线观看| 一色桃子在线| 色资源在线观看| 欧美日韩视频精品二区| 肉丝一区二区| 国产一二三区在线视频| 你懂的免费在线观看| 美女做暖暖视频免费在线观看全部网址91| 樱花在线免费观看| 欧美另类极限扩张| 一线天粉嫩在线播放| 天天在线女人的天堂视频| 一区 二区 三区| 日本啊v在线| melody高清在线观看| 婷婷成人激情| 污污的视频在线观看| 成人女同在线观看| 性国裸体高清亚洲| 中文字幕系列一区| 在线免费观看亚洲| 国产精品极品| 精品国产一区二区三区噜噜噜| 欧美国产小视频| 亚洲无毛电影| 日韩影院免费视频| 老色鬼精品视频在线观看播放| 久久激五月天综合精品| 高清视频一区二区| 久久精品人人做人人爽97| 中文字幕一区日韩精品欧美| 亚洲图片欧美一区| 欧美日韩三级视频| 日韩大片免费观看视频播放| 最近2019中文字幕第三页视频| 久久久久久久久久久91| 国产精品永久免费视频| 九九热久久66| 青青草综合视频| 性欧美videossex精品| 麻豆电影在线观看| 在线观看av的网站| 性爽视频在线| 伊人久久大香线蕉av超碰| 国产永久精品大片wwwapp| 黄色av一区| 黑人精品欧美一区二区蜜桃 | 久久久噜噜噜久久| 国产精品一区二区久久国产| 精品高清视频| 青青在线视频免费观看| 99久久国产宗和精品1上映| 97影院手机在线观看| 老司机福利在线视频| 欧美艳星kaydenkross| 91在线一区| 狠狠爱成人网| 国产传媒一区在线| 亚洲天堂a在线| 欧美精品一级二级三级| 亚洲一级黄色av| 日产精品99久久久久久| 精品久久久久久乱码天堂| 欧美日韩视频免费| 五月天婷婷综合社区| 91三级在线| 午夜视频在线观看精品中文| 五月综合激情| 国产精品影视在线| 亚洲精品中文在线| 51精品国自产在线| 久久中文字幕国产| av蓝导航精品导航| av无码久久久久久不卡网站| 草莓污污视频在线观看| 成人黄色动漫| 亚洲精品aaaaa| 老司机午夜精品视频| 国产丝袜在线精品| 欧美日韩免费视频| 久久综合亚洲社区| 国产精华一区| 黄色片一级视频| 国产高清一级毛片在线不卡| a∨色狠狠一区二区三区| 亚洲二区三区不卡| www.欧美精品一二区| 欧美色道久久88综合亚洲精品| 亚洲欧美日韩综合| 国产日韩精品电影| 久久精品xxx| 欧美视频综合| 国产精品日韩精品在线播放| 亚洲第一黄色| 欧美激情一二三区| 欧美一二三四在线| 欧美中文字幕在线| 五月天色婷婷综合| 国产精品精华液网站| 欧美电影免费观看| 91精品国产91久久久久久黑人| heyzo一本久久综合| 欧美色精品天天在线观看视频| 欧美乱妇高清无乱码| 噜噜噜噜噜久久久久久91| 日韩中文字幕a| 欧美男男激情videos| 2023国产精品久久久精品双|