介紹PHP開發框架和(hé)CMS系統平台

2019-09-01

1541750783599_[1200]-[PHP-開發一個(gè)-MVC-框架](1).jpg


什(shén)麽是CMS和(hé)框架的(de)區(qū)别,
這(zhè)個(gè)其實很重要,應該全面而清晰的(de)認識。

1 . 各自代表
框架代表:ThinkPHP(簡稱TP,以及它的(de)最新版TP5),Laravel,YII,CI,......
CMS:Content Management System:内容管理(lǐ)系統;代表有:PHPCMS,dedecms,phpMyWind,帝國CMS,Ecshop,ECMall,Discuz,PHPWind

2 . 知識難度
網站建設的(de)框架需要的(de)知識含金量比較高(gāo),對(duì)面向對(duì)象編程思想要深入理(lǐ)解,也(yě)要深刻懂(dǒng)MVC原理(lǐ),單入口原理(lǐ),标簽解析引擎原理(lǐ),方可(kě)以靈活使用(yòng)框架去開發;
所以它是适應PHP基礎比較全面的(de)人(rén);
而CMS不需要那麽高(gāo)深的(de)知識,你稍微懂(dǒng)PHP一些語法,基礎東西,就可(kě)以依葫蘆畫(huà)瓢的(de)使用(yòng)CMS開發出一個(gè)簡單的(de)項目,而且速度還(hái)比較快(kuài)(但是維護起來(lái)會頭痛)。
CMS對(duì)PHP入門級的(de)人(rén)是最愛(ài)。

3 . 應用(yòng)範疇

CMS的(de)應用(yòng)範圍有局限,要選對(duì),否則後患無窮。如:某類CMS隻适合開發一類項目,選錯了(le)可(kě)能要重新開發。
比如PHPCMS适合開發文章(zhāng)類型的(de)管理(lǐ)系統,Ecshop适合開發商城(chéng)類型的(de)項目,Discuz适合開發論壇類型的(de)項目;
但是你如果要用(yòng)Ecshop來(lái)開發論壇,就需要改的(de)地方太多(duō)了(le),那就會走很多(duō)彎路....
而框架,因爲屬于更底層的(de)東西,所以它可(kě)以用(yòng)來(lái)開發任何類型的(de)項目。
另外,框架還(hái)可(kě)以開發CMS出來(lái),但反過來(lái),CMS就不能用(yòng)來(lái)開發框架(會造成性能太低)。


4 . 開發特點

在框架中,你可(kě)能看不到一個(gè)具體的(de)控制器子類文件,所以基于框架的(de)開發,首先要你自己來(lái)寫控制器文件,還(hái)要安排在什(shén)麽位置寫,
這(zhè)些都有框架自己的(de)規矩,雖然也(yě)可(kě)以靈活的(de)修改文件夾的(de)位置,但你要麻煩的(de)去尋找爲什(shén)麽。
而CMS等開源系統,這(zhè)些文件都是幫你寫好了(le)的(de),位置也(yě)會幫你安排好,你在那些現成的(de)文件上修修改改基本上就可(kě)以了(le)。你會少很多(duō)事情。


5 . 靈活對(duì)比

用(yòng)框架去開發,你可(kě)以随意修改你的(de)項目模塊架構,可(kě)以随意添加你想要的(de)功能,如:你想在文章(zhāng)系統中添加個(gè)旅遊模塊也(yě)可(kě)以;
實例:“PHP葵花寶典”項目(www.phpkhbd.com)就是用(yòng)框架開發出來(lái)的(de),可(kě)以方便的(de)添加任何想要的(de)功能。
但CMS你要想做(zuò)到這(zhè)種穿插功能交集就比較麻煩了(le)。

6 . 速度對(duì)比

用(yòng)框架去開發,開發的(de)時(shí)候速度慢(màn),但後續修改靈活,同時(shí)速度會很快(kuài),遇到問題可(kě)以馬上知道處在哪裏了(le),可(kě)謂是“一步到位、一針見血”。
用(yòng)CMS去開發:開發的(de)時(shí)候速度快(kuài),但後續修改特别是添加功能模塊的(de)時(shí)候,就不夠靈活,會造成速度很慢(màn),甚至不大(dà)可(kě)能實現。
打個(gè)比方:你用(yòng)框架開發的(de)項目,開發的(de)時(shí)候可(kě)能需要2個(gè)月(yuè),但你後續升級項目,添加個(gè)什(shén)麽功能可(kě)能隻要1個(gè)星期。
而你用(yòng)CMS去開發,開發項目上線可(kě)能隻要3個(gè)星期,但是你升級功能、添加新功能模塊、可(kě)能也(yě)要3個(gè)星期甚至更多(duō),還(hái)有可(kě)能實現不了(le),
或者強加進去會造成該模塊性能甚至整個(gè)系統的(de)性能大(dà)大(dà)降低。而且每次升級都是這(zhè)樣。

所以,該如何選擇,你應該清楚了(le)吧:如果想做(zuò)一個(gè)長(cháng)久更新的(de)項目,那使用(yòng)框架去開發是最好的(de)選擇


PHP開發框架和(hé)CMS系統平台;

開發框架
WACT http://wact.sourceforge.net/
老牌的(de)PHP編程框架,實現了(le)很多(duō)企業級的(de)開發模式

Horde http://www.horde.org/horde/
提供了(le)一些常用(yòng)類庫,可(kě)以滿足參數處理(lǐ)、數據壓縮、浏覽器檢測、鏈接跟蹤以及 MIME。需要PEAR類庫的(de)支持,提供了(le)API參考。

Seagull http://seagull.phpkitchen.com/ 推薦
一個(gè)面向對(duì)象的(de)PHP開發框架,使用(yòng)了(le)Pear類庫,其主要特性有:運用(yòng)組件方式、簡化(huà)數據訪問、錯誤處理(lǐ)機制和(hé)權限認證管理(lǐ)等。

studs http://mojavelinux.com/projects/studs/  推薦
Jakarta Struts結構移植過來(lái)的(de)PHP開發框架,使用(yòng)面向對(duì)象的(de)開發結構和(hé)API,模拟了(le)一個(gè)HTTP Servlet容器
和(hé)使用(yòng)了(le)PHP服務頁面引擎技術

InterJinn http://www.interjinn.com/
有很多(duō)擴展模塊提供下(xià)載,可(kě)惜配置文件使用(yòng)的(de)是inc格式

Php.MVC http://www.phpmvc.net/
知名的(de)PHP開發框架 ,基于Java的(de)Struts

Phrame http://phrame.sourceforge.net/
雖然不大(dà),但用(yòng)的(de)很多(duō),也(yě)是基于Struts思想

Ambivalence http://amb.sourceforge.net/
基于Maverick思想實現的(de)PHP開發框架

binarycloud http://www.binarycloud.com/
使用(yòng)了(le)Smarty模闆引擎,文檔很完善

Prado http://www.xisc.com/
Zend獲獎作品,基于事件驅動的(de)PHP開發框架

rwfphp http://www.rwfphp.org/
面向對(duì)象和(hé)事件驅動的(de)php開發框架

Krysalis http://www.kompletecms.com/
把XML文檔轉換爲XHTML文檔的(de)PHP系統

FastFrame  http://codejanitor.com/wp/apps/fastframe/
可(kě)以快(kuài)速地實現表單提交

Blueshoes http://www.blueshoes.net/ 推薦
比較先進的(de)一個(gè)framework,提供了(le)很多(duō)GUI組件

下(xià)面這(zhè)些我也(yě)沒有詳細看
Cgiapp http://weierophinney.net/matthew/download
Fuselogic  http://www.haltebis.com/index/wakka/main/FuseLogic
Copix http://copix.aston.fr/
logicreate http://www.logicreate.com/
booby http://www.nauta.be/booby/

主要的(de)CMS系統
Drupal http://www.drupal.org/
Mambo http://www.mamboportal.com/
Nucleus http://nucleuscms.org/
Midgard http://www.midgard-project.org/
Pmachine http://www.pmachine.com/
PostNuke http://www.post-nuke.net/
sitellite http://www.sitellite.org/
eZPublish http://ez.no/
limb http://limb-project.com/


php各種主流框架的(de)優缺點分(fēn)析;

ThinkPHP(FCS)是一個(gè)輕量級的(de)中型框架,是從Java的(de)Struts結構移植過來(lái)的(de)中文PHP開發框架。它使用(yòng)面向對(duì)象的(de)開發結構和(hé)MVC模式,并且模拟實現了(le)Struts的(de)标簽庫,各方面都比較人(rén)性化(huà),熟悉J2EE的(de)開發人(rén)員(yuán)相對(duì)比較容易上手,适合php框架初學者。 ThinkPHP的(de)宗旨是簡化(huà)開發、提高(gāo)效率、易于擴展,其在對(duì)數據庫的(de)支持方面已經包括MySQL、MSSQL、Sqlite、PgSQL、 Oracle,以及PDO的(de)支持。ThinkPHP有著(zhe)豐富的(de)文檔和(hé)示例,框架的(de)兼容性較強,但是其功能有限,因此更适合用(yòng)于中小項目的(de)開發。

優點

1.易于上手,有豐富的(de)中文文檔;

2.框架的(de)兼容性較強,PHP4和(hé)PHP5完全兼容、完全支持UTF8等。

3. 适合用(yòng)于中小項目的(de)開發

缺點

1.對(duì)Ajax的(de)支持不是很好;

2.目錄結構混亂,需要花時(shí)間整理(lǐ);

3.上手容易,但是深入學習(xí)較難。


Yii

Yii 是一個(gè)基于組件的(de)高(gāo)性能php框架,用(yòng)于開發大(dà)型Web應用(yòng)。Yii采用(yòng)嚴格的(de)OOP編寫,并有著(zhe)完善的(de)庫引用(yòng)以及全面的(de)教程。從 MVC,DAO/ActiveRecord,widgets,caching,等級式RBAC,Web服務,到主題化(huà),I18N和(hé)L10N,Yii提供了(le) 今日Web 2.0應用(yòng)開發所需要的(de)幾乎一切功能。事實上,Yii是最有效率的(de)PHP框架之一。

優點

純OOP

用(yòng)于大(dà)規模Web應用(yòng)

模型使用(yòng)方便

開發速度快(kuài),運行速度也(yě)快(kuài)。性能優異且功能豐富

使用(yòng)命令行工具。

缺點:

對(duì)Model層的(de)指導和(hé)考慮較少

文檔實例較少

英文太多(duō)

要求PHP技術精通(tōng),OOP編程要熟練!

View并不是理(lǐ)想view,理(lǐ)想中的(de)view可(kě)能隻是html代碼,不會涉及PHP代碼。


CodeIgniter

優點:

Code Igniter推崇“簡單就是美(měi)”這(zhè)一原則。沒有花哨的(de)設計模式、沒有華麗的(de)對(duì)象結構,一切都是那麽簡單。幾行代碼就能開始運行,再加幾 行代碼就可(kě)以進行輸出。可(kě)謂是“大(dà)道至簡”的(de)典範。 配置簡單,全部的(de)配置使用(yòng)PHP腳本來(lái)配置,執行效率高(gāo);具有基本的(de)路由功能,能夠進行一定程度的(de)路 由;具有初步的(de)Layout功能,能夠制作一定程度的(de)界面外觀;數據庫層封裝的(de)不錯,具有基本的(de)MVC功能. 快(kuài)速簡潔,代碼不多(duō),執行性能高(gāo),框架簡 單,容易上手,學習(xí)成本低,文檔詳細;自帶了(le)很多(duō)簡單好用(yòng)的(de)library,框架适合小型應用(yòng).

缺點:

本身的(de)實現不太理(lǐ)想。内部結構過于混亂,雖然簡單易用(yòng),但缺乏擴展能力。 把Model層簡單的(de)理(lǐ)解爲數據庫操作. 框架略顯簡單,隻能夠滿足小型應用(yòng),略微不太能夠滿足中型應用(yòng)需要.

評價:

總體來(lái)說,拿CodeIgniter來(lái)完成簡單快(kuài)速的(de)應用(yòng)還(hái)是值得(de),同時(shí)能夠構造一定程度的(de)layout,便于模闆的(de)複用(yòng),數據操作層來(lái)說封裝的(de)不 錯,并且CodeIgniter沒有使用(yòng)很多(duō)太複雜(zá)的(de)設計模式,執行性能和(hé)代碼可(kě)讀性上都不錯。至于附加的(de)library 也(yě)還(hái)不錯,簡潔高(gāo)效。

 
Lavarel 框架
優點
Laravel 的(de)設計思想是很先進的(de),非常适合應用(yòng)各種開發模式TDD, DDD 和(hé)BDD,作爲一個(gè)框
架,它準備好了(le)一切,composer 是個(gè)php 的(de)未來(lái),沒有composer,PHP 肯定要走向沒落。
laravel 最大(dà)的(de)特點和(hé)優秀之處就是集合了(le)php 比較新的(de)特性,以及各種各樣的(de)設計模式,
Ioc 容器,依賴注入等。
缺點
基于組件式的(de)框架,所以比較臃腫.

責任編輯:中山網站建設
 【網訊網絡】國家高(gāo)新技術企業》十年專注軟件開發,網站建設,網頁設計,APP開發,小程序,微信公衆号開發,定制各類企業管理(lǐ)軟件(OA、CRM、ERP、訂單管理(lǐ)系統、進銷存管理(lǐ)軟件等)!服務熱(rè)線:0760-88610046、13924923903,http://www.wansion.net

您的(de)項目需求咨詢熱(rè)線:0760-88610046(國家高(gāo)新技術企業)

*請認真填寫需求,我們會在24小時(shí)内與您取得(de)聯系。