資源描述:
《PHP與開(kāi)發(fā)框架》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫(kù)。
1、PHP與開(kāi)發(fā)框架www.17ggs.com2009.05.05主要內(nèi)容什么是框架PHP開(kāi)發(fā)是否需要框架如何使用框架進(jìn)行PHP開(kāi)發(fā)ZendFramework簡(jiǎn)介分別使用傳統(tǒng)方式和ZendFramework開(kāi)發(fā)一個(gè)文章管理發(fā)布系統(tǒng)細(xì)節(jié)問(wèn)題MVC,數(shù)據(jù)庫(kù),模板,權(quán)限控制,AJAX等借鑒其它語(yǔ)言及框架RubyonRails什么是框架?框架,即Framework。其實(shí)就是某種應(yīng)用的半成品,就是一組組件,供你選用完成你自己的系統(tǒng)。注意,框架體現(xiàn)了程序的設(shè)計(jì)思想,但又不只是規(guī)劃性的東西,它已經(jīng)實(shí)現(xiàn)了部份核心代碼。簡(jiǎn)單說(shuō)就是使用別人搭好的舞臺(tái),你來(lái)做表演,但你要按
2、照一定的規(guī)則??蚣芤话闶浅墒斓?,不斷升級(jí)的軟件。PHP開(kāi)發(fā)是否需要框架使用框架的好處面向?qū)ο箝_(kāi)發(fā),有成熟的設(shè)計(jì)思想可以借鑒MVC分層,避免業(yè)務(wù)層與表現(xiàn)層混合,有利于后續(xù)開(kāi)發(fā)有固定的程序結(jié)構(gòu)和編碼規(guī)范,代碼易分享,有利于團(tuán)隊(duì)協(xié)作實(shí)戰(zhàn)—一個(gè)PHP程序的演化假設(shè)我們要開(kāi)發(fā)一個(gè)文章發(fā)布管理系統(tǒng)ArticleSystem需要實(shí)現(xiàn)的功能有:Add新增文章Edit編輯文章Delete刪除文章List文章列表View查看某篇文章傳統(tǒng)的開(kāi)發(fā)方式新建一個(gè)目錄includes新建一個(gè)文件functions.inc.php編輯functions.inc.php編寫(xiě)下面幾個(gè)
3、函數(shù):addArticle(),editArticle(),delArticle(),listArticle()includes/functions.inc.phpArticleSystemincludesarticle.phpfunctions.inc.phpdb.inc.php在根目錄下
4、創(chuàng)建一個(gè)article.php測(cè)試一下,新增文章http://localhost/article.php?action=add編輯http://localhost/article.php?action=edit&id=2瀏覽http://localhost/article.php?action=view&id=3article.php
5、case'add':addArticle();break;case'edit':editArticle();break;......}?>viewArticle()示例問(wèn)題代碼冗長(zhǎng)很多代碼不容易組織成函數(shù),導(dǎo)致代碼重復(fù),容易造成“復(fù)制-粘貼”型開(kāi)發(fā)習(xí)慣業(yè)務(wù)層和表現(xiàn)層混合改進(jìn)ArticleSystemincludesarticleAd
6、d.phpfunctions.inc.phpdb.inc.phparticleEdit.phparticleDel.phparticleList.phparticle.php控制器的雛形拆分代碼,把每個(gè)功能獨(dú)立為一個(gè)文件。通過(guò)一個(gè)article.php來(lái)選擇訪問(wèn)某個(gè)文件。模塊化開(kāi)發(fā)的基本思想改進(jìn)后的viewArti
7、cle()然后將$arrayResults數(shù)據(jù)輸出到模板,再進(jìn)行輸出再改進(jìn)ArticleSystemincludesarticleAdd.phpfunctions.inc.phpdb.inc.phparticleEdit.phparticleDel.phparticleList.phparticle.
8、php使用模板系統(tǒng),把業(yè)務(wù)層和表現(xiàn)層分開(kāi)templatesarticleView.phparticleView.tplar