CodeIgniter、CakePHP、ZendFramework、Symfony這幾個(gè)是國(guó)外的,你可以參考下
成都創(chuàng)新互聯(lián)公司是一家專注網(wǎng)站建設(shè)、網(wǎng)絡(luò)營(yíng)銷策劃、微信小程序開發(fā)、電子商務(wù)建設(shè)、網(wǎng)絡(luò)推廣、移動(dòng)互聯(lián)開發(fā)、研究、服務(wù)為一體的技術(shù)型公司。公司成立10年以來(lái),已經(jīng)為近千家生料攪拌車各業(yè)的企業(yè)公司提供互聯(lián)網(wǎng)服務(wù)?,F(xiàn)在,服務(wù)的近千家客戶與我們一路同行,見證我們的成長(zhǎng);未來(lái),我們一起分享成功的喜悅。
CodeIgniter
優(yōu)點(diǎn):
1. 配置簡(jiǎn)單,全部的配置使用PHP腳本來(lái)配置,執(zhí)行效率高;具有基本的路由功能,能夠進(jìn)行一定程度的路由;具有初步的Layout功能,能夠制作一定程度的界面外觀;數(shù)據(jù)庫(kù)層封裝的不錯(cuò),具有基本的MVC功能
2. 快速簡(jiǎn)潔,代碼不多,執(zhí)行性能高,框架簡(jiǎn)單,容易上手,學(xué)習(xí)成本低,文檔詳細(xì);自帶了很多簡(jiǎn)單好用的library,框架適合小型應(yīng)用
缺點(diǎn):
1. 把Model層簡(jiǎn)單的理解為數(shù)據(jù)庫(kù)操作
2. 框架略顯簡(jiǎn)單,只能夠滿足小型應(yīng)用,略微不太能夠滿足中型應(yīng)用需要
評(píng)價(jià):
總體來(lái)說(shuō),拿CodeIgniter來(lái)完成簡(jiǎn)單快速的應(yīng)用還是值得,同時(shí)能夠構(gòu)造一定程度的layout,便于模板的復(fù)用,數(shù)據(jù)操作層來(lái)說(shuō)封裝的不錯(cuò),并且CodeIgniter沒(méi)有使用很多太復(fù)雜的設(shè)計(jì)模式,執(zhí)行性能和代碼可讀性上都不錯(cuò)。至于附加的 library 也還不錯(cuò),簡(jiǎn)潔高效。
CakePHP
優(yōu)點(diǎn):
1. CakePHP是最類似于RoR的框架,包括設(shè)計(jì)方式,數(shù)據(jù)庫(kù)操作的Active Record方式;設(shè)計(jì)層面很優(yōu)雅,沒(méi)有自帶多余的 library,所有的功能都是純粹的框架,執(zhí)行效率還不錯(cuò);數(shù)據(jù)庫(kù)層的 hasOne, hasMany 功能很強(qiáng)大,對(duì)于復(fù)雜業(yè)務(wù)處理比較合適;路由功能,配置功能還不錯(cuò);自動(dòng)構(gòu)建腳手架(scaffold)很強(qiáng)大;適合中型應(yīng)用;基本實(shí)現(xiàn)過(guò)了MVC每一層;具有自動(dòng)操作命令行腳本功能;
2. 文檔比較全,在國(guó)內(nèi)推廣的比較成功,大部分都知道CakePHP,學(xué)習(xí)成本中等
缺點(diǎn):
1. CakePHP非常嚴(yán)重的問(wèn)題是把Model理解為數(shù)據(jù)庫(kù)層操作,嚴(yán)重影響了除了數(shù)據(jù)庫(kù)之外的操作能力
2. CakePHP的cache功能略顯薄弱,配置功能稍嫌弱;CakePHP不適合大型應(yīng)用,只適合中型應(yīng)用,小型應(yīng)用來(lái)說(shuō)略微的學(xué)習(xí)成本高了點(diǎn)
評(píng)價(jià):
總體來(lái)說(shuō)CakePHP框架代表了PHP框架很重要的一個(gè)時(shí)代和代表,并且目前發(fā)揮著很重要的作用,不少自己寫的框架都模仿了CakePHP的方式,是個(gè)里程碑式的產(chǎn)品;CakePHP透露著RoR的敏捷開發(fā)方式和把數(shù)據(jù)庫(kù)操作認(rèn)為是唯一Model的設(shè)計(jì)思想,作為開發(fā)快速應(yīng)用和原型是絕好的工具;同樣,用來(lái)做Web2.0網(wǎng)站的開發(fā)框架,也是值得選擇的。
【 Zend Framework 】
優(yōu)點(diǎn):
1. 官方出品,自帶了非常多的 library,框架本身使用了很多設(shè)計(jì)模式來(lái)編寫,架構(gòu)上很優(yōu)雅,執(zhí)行效率中等;MVC設(shè)計(jì)中,比較簡(jiǎn)潔,具有路由功能,配置文件比較強(qiáng)大(能夠處理 XML和php INI),各種 library 很強(qiáng)大,是所有PHP框架中各種功能最全面的,包括它不僅是一個(gè)框架,更是一個(gè)大類庫(kù)(取代PEAR),這是它的主要特色;能夠直觀的支持除數(shù)據(jù)庫(kù)操作之外的Model層(比 CodeIgniter 和 CakePHP 強(qiáng)),并且能夠很輕易的使用Loader功能加載其他新增加的Class;Cache功能很強(qiáng)大,從前端Cache到后端Cache都支持,后端 Cache支持Memcache、APC、SQLite、文件等等方式;數(shù)據(jù)庫(kù)操作功能很強(qiáng)大,支持各種驅(qū)動(dòng)(適配器)
2. 文檔很全,在國(guó)內(nèi)社區(qū)很成熟,并且目前不少Web 2.0網(wǎng)站在使用,學(xué)習(xí)成本中等
缺點(diǎn):
1. MVC功能完成比較弱,View層簡(jiǎn)單實(shí)現(xiàn)(跟沒(méi)實(shí)現(xiàn)一樣),無(wú)法很強(qiáng)大的控制前端頁(yè)面
2. 沒(méi)有自動(dòng)化腳本,創(chuàng)建一個(gè)應(yīng)用,包括入口文件,全部必須自己手工構(gòu)建,入門成本高
3. Zend Framework 作為一個(gè)中型應(yīng)用框架問(wèn)題不大,也能夠勉強(qiáng)作為大型應(yīng)用的框架,但是作為一個(gè)很成熟的大型PHP框架來(lái)說(shuō),還需要一些努力
評(píng)價(jià):
作為官方出品的框架,Zend Framework的野心是可以預(yù)見的,想把其他框架擠走,同時(shí)封裝很多強(qiáng)大的類庫(kù),能夠提供一站式的框架服務(wù),并且他們的開發(fā)團(tuán)隊(duì)很強(qiáng)大,完全足夠有能力開發(fā)很強(qiáng)大的產(chǎn)品出來(lái),所以基本可以確定的是Zend Framework前途無(wú)量,如果花費(fèi)更多的時(shí)間去完善框架。同樣的,Zend Framework架構(gòu)本身也是比較優(yōu)雅的,說(shuō)明Zend官方是有很多高手的,設(shè)計(jì)理念上比較先進(jìn),雖然有一些功能實(shí)現(xiàn)的不夠完善,比如View層,自動(dòng)化腳本等等,這些都有賴于未來(lái)的升級(jí)??傮w來(lái)說(shuō)Zend Framework是最值得期待的框架,當(dāng)然,你目前要投入你的項(xiàng)目中使用也是完全沒(méi)問(wèn)題的。
【 Symfony 】
優(yōu)點(diǎn):
1. Symfony 是我了解的PHP框架中功能最強(qiáng)大的,而且我使用時(shí)間比較長(zhǎng),但是很多功能還是沒(méi)有挖掘出來(lái);它完整實(shí)現(xiàn)了MVC三層,封裝了所有東西,包括 $_POST,$_GET 數(shù)據(jù),異常處理,調(diào)試功能,數(shù)據(jù)檢測(cè);包含強(qiáng)大的緩存功能,自動(dòng)加載Class(這個(gè)功能很爽),強(qiáng)大的i18n國(guó)家化支持;具有很強(qiáng)大的view層操作,能夠零碎的包含單個(gè)多個(gè)文件;非常強(qiáng)大的配置功能,使用yml配置能夠控制所有框架和程序運(yùn)行行為,強(qiáng)大到讓人無(wú)語(yǔ);能夠很隨意的定義各種自己的 class,并且symfony能夠自動(dòng)加載(auto load)這些class,能夠在程序中隨意調(diào)用;包含強(qiáng)大的多層級(jí)項(xiàng)目和應(yīng)用管理:Project -- Application -- Module -- Action,能夠滿足一個(gè)項(xiàng)目下多個(gè)應(yīng)用的需要,并且每層可以定義自己的類庫(kù),配置文件,layout;非常強(qiáng)大的命令行操作功能,包括建立項(xiàng)目、建立應(yīng)用、建立模塊、刷新緩存等等;
2. Symfony絕對(duì)是開發(fā)大型復(fù)雜項(xiàng)目的首選,因?yàn)槭褂昧薙ymfony,將大大節(jié)約開發(fā)成本,并且多人協(xié)作的時(shí)候,不會(huì)出現(xiàn)問(wèn)題,在Project級(jí)別定義好基礎(chǔ)Class以后,任何模塊都能夠重用,大大復(fù)用代碼
缺點(diǎn):
1. 數(shù)據(jù)庫(kù)操作model采用了重量級(jí)的propel和creole,不過(guò)在我測(cè)試的版本中已經(jīng)把他們移到了addon里,可用可不用
2. 緩存功能無(wú)法控制,每次開發(fā)調(diào)試總是緩存,需要執(zhí)行 symfony cc, symfony rc 來(lái)清除和重建緩存;
3. 效率不是很高,特別是解析模板和讀取配置文件的過(guò)程,花費(fèi)時(shí)間不少;
4. 學(xué)習(xí)成本很高,并且國(guó)內(nèi)沒(méi)有成熟的社區(qū)和文檔,連中文手冊(cè)都沒(méi)有,相應(yīng)的要掌握所有功能,需要花費(fèi)比較多的時(shí)間
評(píng)價(jià):
Symfony絕對(duì)是企業(yè)級(jí)的框架,唯一能夠貌似能夠跟Java領(lǐng)域哪些強(qiáng)悍框架抗衡的東西;強(qiáng)悍的東西,自然學(xué)習(xí)復(fù)雜,但是相應(yīng)的對(duì)項(xiàng)目開發(fā)也比較有幫助,自然是推薦復(fù)雜的項(xiàng)目使用Symfony來(lái)處理,覺得是值得,后期的維護(hù)成本比較低,復(fù)用性很強(qiáng)。相應(yīng)的如果使用Symfony的應(yīng)該都是比較復(fù)雜的互聯(lián)網(wǎng)項(xiàng)目,那么相應(yīng)的就要考慮關(guān)于數(shù)據(jù)庫(kù)分布的問(wèn)題,那么就需要拋棄Symfony自帶的數(shù)據(jù)庫(kù)操作層,需要自己定義,當(dāng)然了,Symfony支持隨意的構(gòu)造model層。
【 總評(píng) 】
以上數(shù)款框架,各有特色,而且都是開源項(xiàng)目,不過(guò)框架針對(duì)的項(xiàng)目不一樣,一般來(lái)說(shuō) CodeIngiter 比較適合小型項(xiàng)目,CakePHP 和 Zend Framework 比較適合中型項(xiàng)目,Symfony 比較適合大型重量級(jí)項(xiàng)目,在項(xiàng)目選型的時(shí)候,要充分考慮框架的可以定制性、擴(kuò)展性,因?yàn)槊總€(gè)項(xiàng)目都無(wú)法確定你是否會(huì)隨著需求的變化進(jìn)行改變。
相對(duì)來(lái)說(shuō),Zend Framework 和 Symfony 應(yīng)對(duì)變化的能力比較強(qiáng),特別是能夠隨意定制 model 層的Class,能夠非常方便增加自己業(yè)務(wù)或者數(shù)據(jù)處理類,我是個(gè)人比較推薦在中大型項(xiàng)目中使用的框架。CodeIngiter 和 CakePHP 在中小型項(xiàng)目中同樣能夠發(fā)揮重大作用,快速開發(fā)和原型構(gòu)建,非常適合目標(biāo)不清晰的原型項(xiàng)目的開發(fā)。了解一個(gè)框架最好的方式就是使用它,學(xué)習(xí)它最好的方式就是看視頻。
仁者見仁,智者見智,在項(xiàng)目挑選框架的時(shí)候,請(qǐng)先認(rèn)真考察項(xiàng)目的需求和未來(lái)的變化,然后選擇合適的框架,讓項(xiàng)目開發(fā)速度和后期維護(hù)性得到一個(gè)合理的平衡,當(dāng)然了,也許,自己寫一個(gè)框架更適合。
php知識(shí)框架總結(jié)
篇一:php基礎(chǔ)知識(shí)點(diǎn)總結(jié)
PHP語(yǔ)言基礎(chǔ)簡(jiǎn)單整理
1.開始結(jié)束標(biāo)記的格式只有在沒(méi)有判斷語(yǔ)句時(shí)才能使用。
對(duì)表單傳遞的變量進(jìn)行編碼和解碼:PHP中實(shí)現(xiàn)對(duì)查詢字符串進(jìn)行URL編碼可以通過(guò)函數(shù)urlencode()實(shí)現(xiàn),該函數(shù)的使用格式如下:string urlencode(string str);對(duì)URL編碼后的查詢字符串進(jìn)行解碼,可以通過(guò)urldecode()函數(shù)實(shí)現(xiàn),該函數(shù)的使用格式如下:string urldecode(string str);
15.PHP連接數(shù)據(jù)庫(kù):
步驟: 一、建立連接------mssql_connect(server,uid,pwd);
二、指定database-------mssql_select_db(databasename);
三、執(zhí)行sql------mssql_query($sql,$link);
四、處理記錄集-------資源類型數(shù)據(jù),格式:bof---數(shù)據(jù)---eof
五、以特定格式讀取數(shù)據(jù)-----mssql_fetch_array()....
六、釋放相關(guān)資源、關(guān)閉連接------mssql_free_result($result);mssql_close();
16.數(shù)組:php的數(shù)組由鍵值和value值組成
定義:$array = array("鍵值"="value","鍵值"="value","鍵值"="value");如果不給鍵值賦值,默認(rèn)從0開始的int值
相關(guān)函數(shù):(1)in_array("值",數(shù)組名); 返回bool型-----查看數(shù)組中是否存在某value值
(2)array_key_exists("key值",數(shù)組名); 返回bool型-----查看數(shù)組中是否存在某鍵值
(3)array_keys(數(shù)組名);---將數(shù)組鍵值返回出來(lái)形成一個(gè)新數(shù)組,此鍵值作為新數(shù)組的value值
(4)array_values(數(shù)組名);---將數(shù)組value值返回出來(lái)形成一個(gè)新數(shù)組,此值作為新數(shù)組的value值
(5)key(數(shù)組名);----返回當(dāng)前指針指向的元素key值
(6)current(數(shù)組名);----返回當(dāng)前指針指向的元素value值
(7)next(數(shù)組名);----挪動(dòng)當(dāng)前數(shù)組指針到下一步
(8)reset(數(shù)組名);----恢復(fù)數(shù)組指針,指向第0個(gè)元素
(9)end(數(shù)組名);----將指針挪向最后一個(gè)元素
(10)prev(數(shù)組名);----將指針向前挪動(dòng)一位
(11)foreach(數(shù)組名 as $key=$value)
{
$key是鍵值,$value是value值,實(shí)現(xiàn)數(shù)組遍歷
}
(12)each(數(shù)組名);----將當(dāng)前數(shù)組元素依次取出(自動(dòng)挪動(dòng)指針)并放到一個(gè)新的數(shù)組中
(13)array_shift(數(shù)組名);----返回?cái)?shù)組中第一個(gè)元素值
(14)array_pop(數(shù)組名);----返回?cái)?shù)組最后一個(gè)元素值
(15)array_push(數(shù)組名,value);----向數(shù)組中追加元素
(16)array_unshift(數(shù)組名,value);----在數(shù)組最前面添加元素
(17)array_pad(數(shù)組名,數(shù)組長(zhǎng)度,value);----向數(shù)組中追加多個(gè)元素,對(duì)數(shù)組副本操作,不改變?cè)瓟?shù)組,返回一個(gè)新數(shù)組
(18)count();----返回個(gè)數(shù)
(19)array_unique(數(shù)組名);----去掉數(shù)組中重復(fù)部分,操作數(shù)組副本,不改變?cè)瓟?shù)組,返回新數(shù)組
(20)sort(數(shù)組名);----從小到大升序排列數(shù)組value值,一般針對(duì)int型value值,返回bool型,成功返回true
(21)rsort(數(shù)組名);----從大到小,逆序排列數(shù)組value值
(22)array_combine(數(shù)組1,數(shù)組2);----將數(shù)組1的value值作為key,數(shù)組2的value值作為value值,形成一個(gè)新數(shù)組
(23)array_merge(數(shù)組1,數(shù)組2,數(shù)組3...);----合并多個(gè)數(shù)組,將多個(gè)數(shù)組value值依次合并,合為一個(gè)數(shù)組
(24)array_slice(數(shù)組名,int,int);----從目標(biāo)數(shù)組截取元素,形成一個(gè)新數(shù)組。開始位置為第二個(gè)參數(shù),結(jié)束位置為第三個(gè)參數(shù)。若第三個(gè)參數(shù)不寫,則默認(rèn)是截取到最后。
(25)array_splice();----用法同array_slice();但是其截取部分從原數(shù)組中刪除
(26)explode("字符依據(jù)",目標(biāo)字符串);----將字符串按照一定的依據(jù)拆分成數(shù)組
(27)implode("字符依據(jù)",目標(biāo)數(shù)組);----將數(shù)組元素按照依據(jù)組合成一個(gè)字符串
(28)range(mixed low,mixed high[number step]);----生成數(shù)組,例:range(1,100,8);---即從1到100,每8位取一個(gè)數(shù),組成一個(gè)數(shù)組
(29)shuffle(數(shù)組名);----用于將數(shù)組進(jìn)行隨機(jī)排序
(30)array_sum(數(shù)組名);----對(duì)數(shù)值型數(shù)組元素值進(jìn)行求和
(31)array_chunk(數(shù)組名,int);----分割目標(biāo)數(shù)組,返回一個(gè)新數(shù)組,其中數(shù)組的每個(gè)元素都是一個(gè)一維數(shù)組,int參數(shù)為分割成的一維數(shù)組的長(zhǎng)度
17.Cookie和會(huì)話控制:
Cookie是在HTTP協(xié)議下,服務(wù)器或腳本可以維護(hù)客戶工作站上信息的一種方式。Cookie是由Web服務(wù)器保存在客戶機(jī)上的小文本文件,它可以包含有關(guān)用戶的信息。無(wú)論何時(shí)用戶鏈接到服務(wù)器,Web站點(diǎn)都可以訪問(wèn)Cookie信息。
存在server端的是session,存在client端的是cookie,它們用來(lái)存儲(chǔ)全局變量。 設(shè)定Cookie值:setcookie("名","值");
通過(guò)Cookie數(shù)組取值:$_cookie["名"];
設(shè)置生成期:setcookie("名","值",time()+1800);生成期為當(dāng)前時(shí)間加1800秒之后。
刪除cookie: setcookie("名","",time()-3600);中間值設(shè)置為空,并將當(dāng)前時(shí)間減去3600秒。 Cookie數(shù)組:setcookie("名[key]","值"); 使用foreach讀取。
在PHP中可以通過(guò)$_COOKIE預(yù)定義變量訪問(wèn)Cookie的值。如果設(shè)置了php.ini中的register_long_arrays,那么就能夠應(yīng)用$_COOKIE和$HTTP_COOKIE_VARS;如果在php.ini中還設(shè)置了register_globals,那么就可以在PHP中作為全局變量使用各個(gè)Cookie值。但是,更改php.ini中的兩個(gè)文件設(shè)置,容易對(duì)PHP的安全構(gòu)成威脅,不推薦使用該方法,建議使用更新的$_COOKIE。
會(huì)話ID的傳送
會(huì)話ID的傳送有兩種方式,一種是Cookie方式,另一種是URL方式。
Cookie傳送方式:
這是最簡(jiǎn)單的會(huì)話方式,但是有些客戶可能限制使用Cookie,如果客戶限制使用Cookie的條件下,仍要繼續(xù)工作,那就要通過(guò)其他方式來(lái)實(shí)現(xiàn)了。
URL傳送方式:
在該方式中,URL本身用來(lái)傳送會(huì)話,會(huì)話標(biāo)志被簡(jiǎn)單地附加到URL的尾部,或者作為窗體中的一個(gè)變量來(lái)傳遞。例:
最近一直以來(lái)php框架被廣泛利用,多半都是基于mvc架構(gòu)模式的,還有基于事件驅(qū)動(dòng)模式的,大致列舉幾個(gè)。
Zend Framework
Zend Framework 在開發(fā)社區(qū)中有大量的追隨者,它致力于Web 2.0風(fēng)格的程序。因?yàn)樗姸嗟淖冯S者組成的活躍用戶開發(fā)的擴(kuò)展支持,Zend被稱為“The PHP Company”。Zend是一個(gè)(也可能不是)今天可用的最受歡迎的PHP開發(fā)框架。它有健壯的特征能夠支持協(xié)作開發(fā),它需要一些PHP的額外知識(shí)。
E
E是一款非常簡(jiǎn)潔優(yōu)秀開源的超輕量級(jí)PHP框架,致力于追求簡(jiǎn)潔,安全,自由,高效,是中小型項(xiàng)目首選框架??蚣軜?gòu)架合理,一鍵生成完全合乎規(guī)范的大型網(wǎng)站文件夾架構(gòu),網(wǎng)站架構(gòu)一目了然。強(qiáng)大的外部類庫(kù)支持,分布式存儲(chǔ),強(qiáng)大的緩存系統(tǒng),內(nèi)置smarty模板引擎,單入口MVC模式,面向?qū)ο缶幊?,具有微?nèi)核設(shè)計(jì),移植性強(qiáng),松散耦合等特點(diǎn),能集成到你任何一個(gè)系統(tǒng)里面。無(wú)論您是一個(gè)NewPHPer 還是OLDPHPER,那么E框架是您的首選。學(xué)習(xí)完E框架后您可以快速并且輕松的駕馭其他框架,步入php高手之列。
CakePHP
CakePHP 無(wú)論對(duì)于初學(xué)者還是職業(yè)PHP開發(fā)者都是很好的選擇。它基于與Ruby on Rails同樣的原則而設(shè)計(jì),它十分注重快速開發(fā)——這使得它成為一個(gè)非常好的用于RAD的開發(fā)框架。它快速增長(zhǎng)的支持系統(tǒng),簡(jiǎn)潔性和可測(cè)量性使得CakePHP成為今天可用的最受歡迎的PHP開發(fā)框架之一。
SpeedPHP
SpeedPHP是一款全功能的國(guó)產(chǎn)PHP應(yīng)用框架系統(tǒng)。她以“快速開發(fā)、快速學(xué)習(xí)、快速運(yùn)行”為理念,在提高團(tuán)隊(duì)開發(fā)效率、容易學(xué)習(xí)及使用、輕量級(jí)架構(gòu)以增加執(zhí)行速度等方面有著突出的表現(xiàn)。SpeedPHP框架是從實(shí)際運(yùn)行的商業(yè)系統(tǒng)中取其精華而成的,在穩(wěn)定性和運(yùn)行速度上都非常出色;同時(shí)有著清晰的架構(gòu),更有利于提高團(tuán)隊(duì)開發(fā)效率,教程眾多,入門容易,號(hào)稱最適合初學(xué)者的PHP框架,快速帶你進(jìn)入PHP高手的行列。
Yii
Yii 是一個(gè)基于組件、用于開發(fā)大型 Web 應(yīng)用的 高性能 PHP 框架。它將 Web 編程中的可重用性發(fā)揮到極致,能夠顯著加速開發(fā)進(jìn)程。Yii(讀作“易”),代表簡(jiǎn)單(easy)、高效(efficient)、可擴(kuò)展(extensible)。
Symfony
Symfony 是為那些更加職業(yè)的主要開發(fā)企業(yè)級(jí)程序的開發(fā)者而準(zhǔn)備的——特別是 Askeet 和 Yahoo! Bookmarks。這款開源PHP開發(fā)框架有著豐富的特性,做起這些來(lái)綽綽有余,它主要的缺點(diǎn)是比其他的框架略微慢一些。
Canphp
Canphp是一個(gè)中國(guó)開源的php框架,主要的設(shè)計(jì)理念就是為了追求簡(jiǎn)單,減少php初學(xué)者的學(xué)習(xí)成本,而且追求高效率,模版類不提供其他標(biāo)簽,直接應(yīng)用php的源代碼,還有它是微內(nèi)核設(shè)計(jì),移植性強(qiáng),松散耦合等特點(diǎn),能集成到你任何一個(gè)系統(tǒng)里面。其中集成的http類相當(dāng)?shù)膹?qiáng)大,采集圖片速度相當(dāng)?shù)目?,為什么這樣呢?因?yàn)檫m用了模擬異步多進(jìn)程的原理。
KangPHP
KangPHP是一款非常簡(jiǎn)潔優(yōu)秀的PHP框架,是中小型項(xiàng)目首選框架??蚣軜?gòu)架合理,一目了然。強(qiáng)大的外部類庫(kù)支持,分布式存儲(chǔ),強(qiáng)大的緩存系統(tǒng),內(nèi)置smarty模板引擎,單入口MVC模式,面向?qū)ο缶幊蹋绻且粋€(gè)NewPHPer 那么KangPHP框架是您的首選。學(xué)習(xí)完KangPHP框架后您可以快速并且輕松的駕馭其他框架。
DuoLamPHP
DuoLamPHP是一款超輕量級(jí)的PHP框架,命名是按照多啦A夢(mèng)動(dòng)漫給改成的拼音形式。DP是一個(gè)簡(jiǎn)單、高效、上手容易的PHP框架,遵循apache開源協(xié)議??梢钥焖俅罱ǔ鲆粋€(gè)項(xiàng)目,作為一個(gè)超輕量級(jí)的PHP框架,完美支持MVC,完全面向?qū)ο?。作為一個(gè)PHPer,你還需要什么呢? 我們的口號(hào)是:給力的超輕量級(jí)PHP框架。 原因:用了的人都知道!
Codelgniter
Codelgniter 以它的簡(jiǎn)單易用,性能和速度而聞名。與 Symphony 不同,這款PHP開發(fā)框架對(duì)于共享主機(jī)的用戶而言很理想,如果你想有一個(gè)小型覆蓋面的框架。它提供了簡(jiǎn)單的解決方案,還有擴(kuò)展的知識(shí)庫(kù),通過(guò)視頻教程,用戶指南和wiki來(lái)提供支持。
Seagull
Seagull 是一個(gè)良好的PHP開發(fā)框架,可以用來(lái)開發(fā)Web,命令行和GUI程序。這是一款無(wú)論對(duì)初學(xué)者還是職業(yè)程序員而言都及其簡(jiǎn)單的開發(fā)框架。對(duì)于初學(xué)者,Seagull提供一套包含樣例程序的庫(kù),經(jīng)過(guò)簡(jiǎn)單修改就能符合你的要求,而對(duì)于專家級(jí)程序員,Seagull提供了一整套設(shè)置選項(xiàng)——包括最佳練習(xí),標(biāo)準(zhǔn)的和模塊化的代碼庫(kù)——來(lái)快速簡(jiǎn)單地構(gòu)建Web程序。Seagull有一個(gè)活躍的用戶社區(qū)以及豐富的支持文檔。
InitPHP
InitPHP是一款輕量級(jí)的php開發(fā)框架,采用分層體系架構(gòu),適合大中型網(wǎng)站架構(gòu)。提供豐富的library類庫(kù),以及簡(jiǎn)單的框架擴(kuò)展機(jī)制。InitPHP還提供詳細(xì)的開發(fā)文檔,可以讓您在使用該框架的時(shí)候更加簡(jiǎn)單實(shí)用。InitPHP實(shí)現(xiàn)了抽象DB層、分層體系架構(gòu)、緩存無(wú)縫切換機(jī)制、簡(jiǎn)單模板機(jī)制、多模型部署機(jī)制、強(qiáng)大的安全體系,是您快速開發(fā)php應(yīng)用的利器!
Thinkphp
ThinkPHP是一個(gè)性能卓越并且功能豐富的輕量級(jí)PHP開發(fā)框架,本身具有很多的原創(chuàng)特性,并且倡導(dǎo)大道至簡(jiǎn),開發(fā)由我的開發(fā)理念,用最少的代碼完成更多的功能,宗旨就是讓W(xué)EB應(yīng)用開發(fā)更簡(jiǎn)單、更快速。從1.*版本開始就放棄了對(duì)PHP4的兼容,因此整個(gè)框架的架構(gòu)和實(shí)現(xiàn)能夠得以更加靈活和簡(jiǎn)單。2.0版本更是在之前的基礎(chǔ)上,經(jīng)過(guò)全新的重構(gòu)和無(wú)數(shù)次的完善以及改進(jìn),達(dá)到了一個(gè)新的階段,足以達(dá)到企業(yè)級(jí)和門戶級(jí)的開發(fā)標(biāo)準(zhǔn)。國(guó)人開發(fā)的PHP框架,目前最新版本為3.0RC2版本。
PhpPeanut
PhpPeanuts 是一個(gè)用以開發(fā)數(shù)據(jù)庫(kù)后端應(yīng)用的PHP框架,包含一個(gè)可擴(kuò)展的動(dòng)態(tài)腳手架用來(lái)創(chuàng)建一個(gè)完整的web應(yīng)用,提供用戶界面和ORM,包括CRUD操作、關(guān)聯(lián)關(guān)系以及一些示例查詢。 phpPeanuts 2.0 完全支持 PHP 5,遵循 ESTRICT 標(biāo)準(zhǔn),不再使用變量引用來(lái)傳遞對(duì)象;提升了靈活性;更獨(dú)立的模塊,以及迭代的對(duì)象復(fù)制等等。
Rong Framework
Rong Framework是一個(gè)國(guó)產(chǎn)的基于php5的面向?qū)ο箝_發(fā)框架,開發(fā)的主要目的是簡(jiǎn)化開發(fā)、高性能開發(fā)。支持?jǐn)?shù)據(jù)庫(kù)文件緩存、數(shù)據(jù)庫(kù)通用操作及封裝。簡(jiǎn)化CRUD代碼編寫。支持在線生成CRUD代碼,只要選中數(shù)據(jù)表名稱,就可以生成CRUD代碼。不懂編程的人也可以做到。rong framework分為php代碼模板(class Rong_View_PHP)和Rong_View_Wudimei(無(wú)敵美模板引擎,類似smarty)兩種模板機(jī)制。擁有良好的MVC機(jī)制和url美化方式、可以在代碼中實(shí)現(xiàn)URL重寫(由Rong_Countroller_Route實(shí)現(xiàn))。
國(guó)內(nèi)框架:ThinkPHP、Canphp、KYPHP、InitPHP、SpeedPHP、CdvPHP 等等
國(guó)外框架:Zend Framework、Codelgniter、CakePHP、Symfony 、Yii、Seagull 、Laravel等
比較常用:Laravel、Flight、Yii、Medoo、PHPixie、Codelgniter、Kohana、Symfony、Pop PHP、Phalcon、KPHP等
--ITjob
PHP常用框架有:
1.thinkphp: 國(guó)人開發(fā), 文檔比較全,中文文檔。 入門比較簡(jiǎn)單。 寫法快。
2. laravel : 國(guó)外人寫的, 入門門檻高。英語(yǔ)文檔 ,社區(qū)比較活躍。
3. symfony: 國(guó)外人寫的。 門檻比較高, 英語(yǔ)文檔。
4. yii: 國(guó)內(nèi)人寫的,門檻較低。
想學(xué)習(xí)這些框架,可以去黑馬程序員看視頻,有thinkphp、laravel的框架學(xué)習(xí)視頻。
有以下幾種:Canphp,KYPHP,SpeedPHP
php框架介紹:
框架就是通過(guò)提供一個(gè)開發(fā)Web程序的基本架構(gòu),PHP開發(fā)框架把PHPWeb程序開發(fā)擺到了流水線上。換句話說(shuō),PHP開發(fā)框架有助于促進(jìn)快速軟件開發(fā)(RAD),這節(jié)約了你的時(shí)間,有助于創(chuàng)建更為穩(wěn)定的程序,并減少開發(fā)者的重復(fù)編寫代碼的勞動(dòng)。這些框架還通過(guò)確保正確的數(shù)據(jù)庫(kù)操作以及只在表現(xiàn)層編程的方式幫助初學(xué)者創(chuàng)建穩(wěn)定的程序。PHP開發(fā)框架使得你可以花更多的時(shí)間去創(chuàng)造真正的Web程序,而不是編寫重復(fù)性的代碼。
三種框架簡(jiǎn)介:
Canphp是一個(gè)中國(guó)開源的php框架,主要的設(shè)計(jì)理念就是為了追求簡(jiǎn)單,減少php初學(xué)者的學(xué)習(xí)成本,而且追求高效率,模版類不提供其他標(biāo)簽,直接應(yīng)用php的源代碼,還有它是微內(nèi)核設(shè)計(jì),移植性強(qiáng),松散耦合等特點(diǎn),能集成到你任何一個(gè)系統(tǒng)里面。其中集成的http類相當(dāng)?shù)膹?qiáng)大,采集圖片速度相當(dāng)?shù)目?,為什么這樣呢?因?yàn)檫m用了模擬異步多進(jìn)程的原理。
KYPHP是一個(gè)中國(guó)開源的PHP框架,kyphp嚴(yán)格遵守OOP和MVC的理念,具有控件化、可擴(kuò)展性強(qiáng)。kyphp設(shè)計(jì)理念是自由、簡(jiǎn)單。既可以用php源碼編程,也可以使用標(biāo)簽,支持多語(yǔ)言,多數(shù)據(jù)庫(kù),多皮膚,多模型部署等,為程序員節(jié)省更多的時(shí)間。.
SpeedPHP是一款全功能的國(guó)產(chǎn)PHP應(yīng)用框架系統(tǒng)。她以“快速開發(fā)、快速學(xué)習(xí)、快速運(yùn)行”為理念,在提高團(tuán)隊(duì)開發(fā)效率、容易學(xué)習(xí)及使用、輕量級(jí)架構(gòu)以增加執(zhí)行速度等方面有著突出的表現(xiàn)。
SpeedPHP框架是從實(shí)際運(yùn)行的商業(yè)系統(tǒng)中取其精華而成的,在穩(wěn)定性和運(yùn)行速度上都非常出色;同時(shí)有著清晰的架構(gòu),更有利于提高團(tuán)隊(duì)開發(fā)效率,教程眾多,入門容易,號(hào)稱最適合初學(xué)者的PHP框架,快速帶你進(jìn)入PHP高手的行列。