Zend Framework入門(mén)知識(shí)點(diǎn)小結(jié)
本文總結(jié)分析了Zend Framework入門(mén)知識(shí)點(diǎn)。分享給大家供大家參考,具體如下:
zend framework是MVC模式的一種實(shí)現(xiàn),要快速的入門(mén)差不多只看Zend_Controller Zend_View 部分就可以了吧。
1.Zend_Controller部分。最重要的類(lèi)是Zend_Controller_Front.使用它的經(jīng)典代碼很 簡(jiǎn)單:
$front=Zend_Controller_Front::getInstance(); $front-> setControllerDirectory("./app/controllers"); $front->dispatch();
這里要說(shuō)明的 是不能使用new來(lái)獲得一個(gè)Zend_Controller_Front,只能調(diào)用getInstance方法來(lái)返回一個(gè)實(shí)例(我的 zend_framework用的是1.01)。這里我指定的controllers目錄是在www文檔根目錄之下的app文件夾之下。一般情況下app 不應(yīng)該放在文檔根目錄下——所謂的安全問(wèn)題:如果配置不嚴(yán)格,www文檔根目錄下的文件可能對(duì)訪問(wèn)者來(lái)說(shuō)都是可見(jiàn)的。一般要放在別的目錄,比如放在和文檔 根目錄同級(jí)的地方則可以使用:
$front->setControllerDirectory("../app/controllers")
多了 一個(gè)"."。這里使用的是相對(duì)路徑。你可以用路徑全名指定其他目錄。比如:
$front->setControllerDirectory("E: /server/app/controllers")
這部分是包含在index。php中的。在正確的配置下,任何請(qǐng)求都會(huì)由rewrite功能重定向到這$front即前端控制器Zend_Controller_Front實(shí)例。所有認(rèn)證什么的處理都要在dispatch前處理。
2.Zend_View 常用代碼為:
$view=new Zend_View(); Zend_Registry::set("view".$view);
默認(rèn)采用了Zend_Framework推薦的目錄結(jié)構(gòu). 即views和 controllers models同級(jí)都在application目錄下。views下面有三個(gè)同級(jí)目錄scrīpts helpers filters。這樣當(dāng)你定義了一個(gè)Controller,你就得在scrīpts下面新建一個(gè)目錄,用來(lái)存放該Controller下屬的模板。比如簡(jiǎn) 單的
Class IndexController extends Zend_Controller_Action { function IndexAction() { } }
你就要相應(yīng)的在里面建立一個(gè)index目錄,在index目錄下建立一個(gè)index.phtml的模板。如果在IndexController下另 建了一個(gè)function addAction(),你就得再在index在新建一個(gè)add.phtml。你有另一個(gè)UserController,你就要相應(yīng)的有個(gè)user目錄在 scrīpts下。這些*.phtml文件類(lèi)似于html文件,定義你輸出的內(nèi)容顯示方式。簡(jiǎn)單的就是留著空白也可以。但就是不能沒(méi)有,否則會(huì)提示說(shuō) "error“invalid Controller...這是因?yàn)槟J(rèn)的ErrorController是已經(jīng)注冊(cè)的。當(dāng)前端控制器找不到相應(yīng)的控制器分發(fā)的時(shí)候就會(huì)調(diào)用默認(rèn)的 ErrorController。
我們有時(shí)候不想使用默認(rèn)的目錄結(jié)構(gòu)也不想使用默認(rèn)的phtml類(lèi)型的視圖模板。這時(shí)我們可以使用
$view->setParam ("noViewRanderer",true);
來(lái)取消默認(rèn)的phtml類(lèi)型目錄設(shè)置。用
$view->setParam ("noErrorHandler",true);
來(lái)寫(xiě)在默認(rèn)的ErrorController。使用
$view->setscrīptPath ("./app/views");
來(lái)設(shè)置你的模板所在位置。這在使用smarty模板時(shí)很有用。
可以這么寫(xiě):
$view=new Zend_View_Smarty(); $view->setParam("noViewRanderer",true); $view->setParam("noErrorHandler",true); $view->setscrīptPath("./app/views"); Zend_Registry::set("view".$view);
在使用的時(shí)候可以這么獲取:
$view=Zend_Registry::get("view");
3. 剛接觸的時(shí)候?qū)τ趍odel可以簡(jiǎn)單的理解為數(shù)據(jù)對(duì)象,對(duì)于操作數(shù)據(jù)庫(kù)的一般可以直接繼承Zend_Db_Table這個(gè)類(lèi)封裝的很不錯(cuò),一般使用足夠了:
class data extends Zend_Db_Table { protected $_name="data"; }
你只需指定表的名稱(chēng),當(dāng)然你可以不顯示指定,這時(shí)zendf會(huì)默認(rèn)的以你的類(lèi)名去查找數(shù)據(jù)庫(kù)中的表。別忘了為Zend_Db_Table指定 defaultAdapter:
$config = new Zend_Config_Ini('./application/config.ini', 'general'); $db = Zend_Db::factory($config->db->adapter, $config->db->config->toArray()); Zend_Db_Table::setDefaultAdapter($db);
config.ini類(lèi)似于[general]
db.adapter = PDO_MYSQL db.config.host = localhost db.config.username = rob db.config.password = 123456 db.config.dbname = zftest
更多關(guān)于zend相關(guān)內(nèi)容感興趣的讀者可查看本站專(zhuān)題:《Zend FrameWork框架入門(mén)教程》、《php優(yōu)秀開(kāi)發(fā)框架總結(jié)》、《Yii框架入門(mén)及常用技巧總結(jié)》、《ThinkPHP入門(mén)教程》、《php面向?qū)ο蟪绦蛟O(shè)計(jì)入門(mén)教程》、《php+mysql數(shù)據(jù)庫(kù)操作入門(mén)教程》及《php常見(jiàn)數(shù)據(jù)庫(kù)操作技巧匯總》
希望本文所述對(duì)大家基于Zend Framework框架的PHP程序設(shè)計(jì)有所幫助。
- windows下zendframework項(xiàng)目環(huán)境搭建(通過(guò)命令行配置)
- Zend Framework數(shù)據(jù)庫(kù)操作技巧總結(jié)
- Zend Framework數(shù)據(jù)庫(kù)操作方法實(shí)例總結(jié)
- Zend Framework入門(mén)應(yīng)用實(shí)例詳解
- Zend Framework入門(mén)教程之Zend_View組件用法示例
- Zend Framework開(kāi)發(fā)入門(mén)經(jīng)典教程
- 解析zend Framework如何自動(dòng)加載類(lèi)
- Zend Framework頁(yè)面緩存實(shí)例
- Zend Framework 2.0事件管理器(The EventManager)入門(mén)教程
- Zend Framework+smarty用法實(shí)例詳解
- Zend Framework緩存Cache用法簡(jiǎn)單實(shí)例
- Zend?Framework基于Command命令行建立Zend?Framework項(xiàng)目的方法
相關(guān)文章
ThinkPHP基于PHPExcel導(dǎo)入Excel文件的方法
這篇文章主要介紹了ThinkPHP基于PHPExcel導(dǎo)入Excel文件的方法,對(duì)于Excel文件的上傳、讀取操作以及寫(xiě)入數(shù)據(jù)庫(kù)等都做了較為詳盡的講述,在進(jìn)行項(xiàng)目開(kāi)發(fā)的過(guò)程中非常具有實(shí)用價(jià)值,需要的朋友可以參考下2014-10-10利用PHPStorm如何開(kāi)發(fā)Laravel應(yīng)用詳解
這篇文章主要給大家介紹了關(guān)于利用PHPStorm如何開(kāi)發(fā)Laravel應(yīng)用的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面跟著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)下吧。2017-08-08TP5框架使用QueryList采集框架爬小說(shuō)操作示例
這篇文章主要介紹了TP5框架使用QueryList采集框架爬小說(shuō)操作,結(jié)合實(shí)例形式分析了TP5結(jié)合QueryList采集框架爬17k小說(shuō)的相關(guān)原理、步驟與實(shí)現(xiàn)技巧,需要的朋友可以參考下2020-03-03為PHP安裝imagick時(shí)出現(xiàn)Cannot locate header file MagickWand.h錯(cuò)誤的解決方
這篇文章主要介紹了為PHP安裝imagick時(shí)出現(xiàn)Cannot locate header file MagickWand.h錯(cuò)誤的解決方法,需要的朋友可以參考下2014-11-11thinkphp數(shù)據(jù)查詢(xún)和遍歷數(shù)組實(shí)例
這篇文章主要介紹了thinkphp數(shù)據(jù)查詢(xún)和遍歷數(shù)組的方法,包括數(shù)據(jù)庫(kù)的DSN方法配置、CURD操作方法以及模板的遍歷數(shù)組等技巧,具有一定的借鑒價(jià)值,需要的朋友可以參考下2014-11-11PHP循環(huán)輸出指定目錄下的所有文件和文件夾路徑例子(簡(jiǎn)單實(shí)用)
這篇文章主要介紹了一個(gè)簡(jiǎn)單實(shí)用的PHP循環(huán)輸出指定目錄下的所有文件和文件夾路徑例子,需要的朋友可以參考下2014-05-05如何優(yōu)雅的使用 laravel 的 validator驗(yàn)證方法
web 開(kāi)發(fā)過(guò)程中經(jīng)常會(huì)需要進(jìn)行參數(shù)驗(yàn)證,這篇文章主要介紹了如何優(yōu)雅的使用 laravel 的 validator驗(yàn)證方法,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2018-11-11基于thinkphp5框架實(shí)現(xiàn)微信小程序支付 退款 訂單查詢(xún) 退款查詢(xún)操作
這篇文章主要介紹了基于thinkphp5框架實(shí)現(xiàn)微信小程序支付 退款 訂單查詢(xún) 退款查詢(xún)操作,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-08-08