JAVAScript 有框架可以用,那么PHP呢,需不需要框架?如果需要那么PHP的開發(fā)語言用的什么框架結(jié)構(gòu)用的是MVC嗎?testlink開源系統(tǒng)用過嗎?帶著以上問題一起來看看吧!
RAILS的確可能會有很好的前景。但他只能是IT技術(shù)進(jìn)一步普及和低端化的產(chǎn)物。任何一種行業(yè)都會由稀缺到普及,由高端到低端。由于ROR為效率而屏蔽了底層,所以ROR只能做個低端的角色
javascrīpt是基于對象面向過程的語言典型。它在設(shè)計時甚至沒有引入Class,今天很多使用者如果一定要用類,只能以函數(shù)模擬。在JAVA下,一切都要以一個Class開始,在Class里實現(xiàn);而在JS下,壓根就沒有類,可以說它是強(qiáng)制面向過程的?;趯ο?Object-Based)與面向?qū)ο?Object Oriented Programming)是兩個概念。初學(xué)者不要一看到對象就說這個語言很OO,或者一看使用對象不多就認(rèn)為這個語言不夠現(xiàn)代。
OO就是系統(tǒng)化、模型化,是到目前為止最復(fù)雜和最高級的手段,對MVC三者的任意一個都可以O(shè)O。MVC的目的是分離。分離的目的是減少重復(fù)。找不到重復(fù)是因為分離得不到位或不合理。所以如何分離是開發(fā)設(shè)計的核心,也是開發(fā)方法的主要內(nèi)容。
應(yīng)該放棄開發(fā)速度最重要的觀念。并不是說開發(fā)速度不重要,而是因為可維護(hù)性(重構(gòu)性)才是真正重要的;可維護(hù)性低的開發(fā)方法其開發(fā)速度一定高不了。因為結(jié)構(gòu)化越低開發(fā)起來就越復(fù)雜,反之結(jié)構(gòu)化越高開發(fā)就越簡單。為什么web戰(zhàn)勝software,因為它的數(shù)據(jù)存儲、頁引擎、瀏覽器的這樣一個架構(gòu)(當(dāng)然可以進(jìn)一步細(xì)分)取代了堆在一起的software,產(chǎn)生了強(qiáng)大的分離效應(yīng)??梢钥闯觯蛛x是減少重復(fù)提高生產(chǎn)率的要訣。
OO是為了實現(xiàn)MODEL,MODEL是為了分離。如果問題很簡單就能解決,就不一定要MODEL,否則建模所帶來的生產(chǎn)成本就大于問題本身。應(yīng)該只對較復(fù)雜的模塊通過OO建立MODEL。
換言之OO只是手段,分離不一定要OO,甚至不需要MODEL。只要能做到分離。
OOP是無需質(zhì)疑的一大成就,它是我們解決復(fù)雜的項目的手段。問題越復(fù)雜,OO就越重要。但是當(dāng)WEB取代軟件時,本身提供了一種分離架構(gòu),而且分離之后的內(nèi)容又是頁式的(一次只需要處理一頁)。這也就是為什么web會戰(zhàn)勝軟件。問題復(fù)雜程度降低了,多余的方法成本也應(yīng)該降下來。去距離不遠(yuǎn)的超市應(yīng)該騎自行車而不應(yīng)該乘坐出租車,否則等車的時間就不能忽略。function能分離開就不要用class,class修改維護(hù)起來比function復(fù)雜。
請記住:在整個計算機(jī)開發(fā)方法學(xué)中,減少重復(fù)是最終目的,分離則是達(dá)到此目的的途徑。這就是效率的本質(zhì)。
應(yīng)該說PHP一直處于發(fā)展之中,它是從適合小項目發(fā)展向適合大項目的。對于php程序中SQL語句的分離,將來也應(yīng)該像其他數(shù)據(jù)庫那樣使用存儲過程。所以,選擇PHP就不要和別的語言比大型。PHP的重要就在于它適合Web開發(fā)。
關(guān)于框架,可參見關(guān)于三種主流WEB架構(gòu)的思考,目前的PHP框架如:
Zend Platform
fleaphp
FCS
CakePHP
都是模仿ROR。
Ruby on Rails是面向?qū)ο?OOP)和基于模型-視圖-控制器 (MVC) 的典范。它能起到很高的分離作用。Ruby on Rails震驚了編程界。主要是震驚了JAVA界,他們發(fā)現(xiàn)作為集OOP之大成的圣殿語言面對ROR的效率難以企及。原因就在于分離是根本,而OO不是。
RAILS的確可能會有很好的前景。但他只能是IT技術(shù)進(jìn)一步普及和低端化的產(chǎn)物。任何一種行業(yè)都會由稀缺到普及,由高端到低端。由于ROR為效率而屏蔽了底層,所以ROR只能做個低端的角色。如果你開發(fā)一個站點,規(guī)模逐漸增大,訪問量逐漸增高,當(dāng)CMS變成MIS,相對于使用了Smarty的PHP,rails的優(yōu)勢只有active record,但是數(shù)據(jù)庫結(jié)構(gòu)和數(shù)據(jù)庫操作是性能瓶頸,是最需要設(shè)計的環(huán)節(jié)。ROR這個半成品就成了窠臼,項目后期它會讓你嘗足苦頭。
所以ROR只適合小項目。但是相對于直接開發(fā),框架是有成本的。小項目是否需要這么高的方法成本(學(xué)習(xí)框架,維護(hù)框架)。對于CMS,ROR出現(xiàn)得晚了些,很多CMS都成了現(xiàn)成的Web服務(wù)了。
Web開發(fā)長期以來缺乏一種項目規(guī)范。PHP亦如此,每個人的項目其結(jié)構(gòu)都不一樣。這與JAVA區(qū)別明顯。Rails框架解決了這個問題??傊S著硬件的不斷發(fā)展,性能和穩(wěn)定性等對于小型網(wǎng)站越來越不成瓶頸問題,所以ROR會越來越多,但這是個緩慢過程,其對應(yīng)的網(wǎng)站也會越來越低端。
【拓展閱讀】
如何領(lǐng)用PHP框架語言來做手機(jī)APP開發(fā)?
隨著互聯(lián)網(wǎng)的快速發(fā)展,手機(jī)APP開發(fā)深受企業(yè)的歡迎,那么手機(jī)APP開發(fā)的移動后臺都是用什么語言來開發(fā)的呢,這也是很多人所關(guān)注的焦點,而現(xiàn)在的移動后臺開發(fā)語言有很多,分別是:PHP、Java等等,那么你們想知道如何龍PHP框架語言做手機(jī)APP開發(fā)?
利用PHP框架做手機(jī)APP開發(fā)需要考慮兩種可能:
第一:如果需要即時通訊,也就是需要手機(jī)客戶端與服務(wù)端保持TCP長連接,服務(wù)端需要向客戶端推送數(shù)據(jù)的時候可以隨時通過這個長連接發(fā)送數(shù)據(jù)給客戶端,這樣便能做到客戶端與服務(wù)端及時通訊甚至客戶端與客戶端及時通訊。做到這需要PHP能維持很多客戶端連接,并且需要多進(jìn)程支持,支持自己的通訊協(xié)議。這樣的應(yīng)用傳統(tǒng)的nginx+php-fpm + 傳統(tǒng)的php框架是做不到的。如果是長連接即時通訊類的服務(wù)器框架推薦一看下workerman,它是就是一個php的socket服務(wù)器框架,非常適合做手機(jī)后臺服務(wù)器框架。
第二:如果不需要即時通訊的話,可以考慮直接走h(yuǎn)ttp協(xié)議,用nginx+php-fpm搭建一個webserver就好了,php框架可以采用thinkphp、yii等等,客戶端需要與服務(wù)器通訊的時候向服務(wù)端get/post一個請求就好。
如果是比較簡單的手機(jī)APP,例如新聞客戶端這樣的不會涉及到長連接的服務(wù),那么可以考慮直接使用http協(xié)議。因為該協(xié)議幾乎被所有可以上網(wǎng)的設(shè)備支持,手機(jī)客戶端那邊也有大量相關(guān)的庫可以調(diào)用,省掉不少麻煩,其實確定了這三個:協(xié)議(HTTP)、數(shù)據(jù)表示方法(JSON)、請求數(shù)據(jù)的方法(REST)之后,基本上就可以開發(fā)一個簡單地服務(wù)端接口了(業(yè)務(wù)邏輯得自己琢磨),再加上手機(jī)客戶端那邊配套的設(shè)置搭起來,那么就可以了。
綜上所述,大家現(xiàn)在知道如何利用PHP框架來做手機(jī)APP開發(fā),利用PHP框架在做手機(jī)APP開發(fā)的時候,也是要根據(jù)企業(yè)的要求來做,是要考慮很多方面的因素。
1.《fleaphp php語言能用框架嗎》援引自互聯(lián)網(wǎng),旨在傳遞更多網(wǎng)絡(luò)信息知識,僅代表作者本人觀點,與本網(wǎng)站無關(guān),侵刪請聯(lián)系頁腳下方聯(lián)系方式。
2.《fleaphp php語言能用框架嗎》僅供讀者參考,本網(wǎng)站未對該內(nèi)容進(jìn)行證實,對其原創(chuàng)性、真實性、完整性、及時性不作任何保證。
3.文章轉(zhuǎn)載時請保留本站內(nèi)容來源地址,http://f99ss.com/jiaoyu/97368.html