首頁 > php教程 > PHP开发 > 主體

Zend Framework入門知識點小結

高洛峰
發布: 2017-01-05 10:54:26
原創
1340 人瀏覽過

本文總結分析了Zend Framework入門知識點。分享給大家供大家參考,具體如下:

zend framework是MVC模式的一種實現,要快速的入門差不多只看Zend_Controller Zend_View 部分就可以了吧。

1.Zend_Controller部分。最重要的類別是Zend_Controller_Front.使用它的經典程式碼很簡單:

$front=Zend_Controller_Front::getInstance();
$front-> setControllerDirectory("./app/controllers");
$front->dispatch();
登入後複製

這裡要說明的 是不能使用new來取得一個Zend_Controller_Front,只能呼叫getInstance方法來傳回一個實例(我的 zend_framework用的是1.01)。這裡我指定的controllers目錄是在www文檔根目錄之下的app資料夾之下。一般情況下app 不應該放在文檔根目錄下-所謂的安全性問題:如果配置不嚴格,www文檔根目錄下的文件可能對訪客來說都是可見的。一般要放在別的目錄,例如放在和文檔 根目錄同等級的地方則可以使用:

$front->setControllerDirectory("../app/controllers")
登入後複製

   

多了 一個"."。這裡使用的是相對路徑。你可以用路徑全名指定其他目錄。例如:

$front->setControllerDirectory("E: /server/app/controllers")
登入後複製

   

這部分是包含在index。 php中的。在正確的配置下,任何請求都會由rewrite功能重新導向到這$front即前端控制器Zend_Controller_Front實例。所有認證什麼的處理都要在dispatch前處理。

2.Zend_View 常用程式碼為:

$view=new Zend_View();
Zend_Registry::set("view".$view);
登入後複製

   

預設採用了Zend_Framework建議的目錄結構. 即views和 controllers models同級都在appli.目錄下。 views下面有三個同級目錄scrīpts helpers filters。這樣當你定義了一個Controller,你就得在scrīpts下面新建一個目錄,用來存放該Controller下屬的模板。例如簡 單的

Class IndexController extends Zend_Controller_Action
{
 function IndexAction()
 {
 }
}
登入後複製

   

你就要相應的在裡面建立一個index目錄,在index目錄下建立一個index.phtml的模板。如果在IndexController下另 建了一個function addAction(),你就得再在index在新建一個add.phtml。你有另一個UserController,你就要相應的有個user目錄在 scrīpts下。這些*.phtml檔案類似html文件,定義你輸出的內容顯示方式。簡單的就是留著空白也可以。但就是不能沒有,否則會提示說 "error「invalid Controller...這是因為預設的ErrorController是已經註冊的。當前端控制器找不到對應的控制器分發的時候就會呼叫預設的 ErrorController。

我們有時候不想使用預設的目錄結構也不想使用預設的phtml類型的視圖模板。這時我們可以使用

$view->setParam ("noViewRanderer",true);
登入後複製

   

來取消預設的phtml類型目錄設定。用

$view->setParam ("noErrorHandler",true);
登入後複製

   

來寫在預設的ErrorController。使用

$view->setscrīptPath ("./app/views");
登入後複製

   

來設定你的模板位置。這在使用smarty模板時很有用。

可以這麼寫:

$view=new Zend_View_Smarty();
$view->setParam("noViewRanderer",true);
$view->setParam("noErrorHandler",true);
$view->setscrīptPath("./app/views");
Zend_Registry::set("view".$view);
登入後複製

   

在使用的時候可以這麼獲取:

$view=Zend_Registry::get("view");
登入後複製

   

3.剛接觸資料的時候直接繼承Zend_Db_Table這個類別封裝的很不錯,一般使用足夠了:

class data extends Zend_Db_Table
{
 protected $_name="data";
}
登入後複製

你只需指定表的名稱,當然你可以不顯示指定,這時zendf會預設的以你的類別名稱去查找資料庫中的表。別忘了指定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類似於[general]

db.adapter = PDO_MYSQL
db.config.host = localhost
db.config.username = rob
db.config.password = 123456
db.config.dbname = zftest
登入後複製

希望本文所述對大家基於Zend Framework框架的PHP程式設計有所幫助。

更多Zend Framework入門知識點小結相關文章請關注PHP中文網!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門推薦
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!