2008年5月20日 星期二

Zend Framework - 學習心得 (1) ~ How to Auto Include Models

Model 在 MVC 架構中所扮演的角色簡單來說就是資料的物件,但複雜的來說其實他的任務不僅如此,詳細資料可參考此篇文章 MVC



Zend FrameWork 也是遵循 MVC 架構下的一套 FrameWork ,不過初次使用的人可能會有疑問就是看過了一些 Toturial 的文件( 官方版 QuickStart )大概知道了要怎樣去使用它的 Controller ,以及架構上的安排但對 Model 卻不知道該如何用起。

所以一開始我在使用的時候就用了許多 dirty code 的寫法,例如:
UserController.php

include_once('../model/User.php');

class UserController{
public signinAction(){

}

中略.....

}

不過在寫的時候我就覺得 Zend 應該不可能沒有考慮過這個 MVC 中這個最基本需要被載入的物件, 但或許是覺得太基本而沒有說的很詳細。上網找到了一些使用Zend FramWork 的前輩有一些討論的文章

其實在 bootstrap file 中在設定 System include_path 時將擺放 model 的目錄也加入,Zend Loader 就會在你 new model 物件的同時自動去 include 相應的 model file。

範例如下 :

我的目錄結構如下 (僅列出相關目錄)

application
/controllers
/models
/views
public
/index.php


File Name: index.php

ini_set('include_path',ini_get('include_path') . PATH_SEPARATOR . '../library' . PATH_SEPARATOR . '../application/models');

require_once("Zend/Loader.php");
Zend_Loader::registerAutoload();


中略

?>

紅色部份為要注意部份,因為自己也開始玩 Zend Frame Work 沒多久,日後也會陸續貼一些學習心得來分享,如果有錯誤的地方也希望大家多多指正嚕。

沒有留言: