MVC 是甚麼!?
Model-View-Controller(MVC)是一種程式開發模式,針對目前以資料庫為基礎的網頁,分為
- Views(視野):HTML頁面
- Controller(控制器):應用程式邏輯
- Model(模組):資料庫功能
View:
- 絕對不要存取資料庫
- 絕對不要使用任何複雜度超過 loops 和 if 的指令
- 絕對不要包括 HTML 編碼
- 絕對不要存取資料庫
- 永遠絕對不要吐出 HTML
大致了解 MVC的架構,看一下 CI的程式流程圖
- index.php 供做前端的控制器(controller),載入執行 CodeIgniter 所需的基本的資源。
- Routing 檢驗 HTTP request 來決定有哪些東西需要被處理。
- 假如快取檔(cacheing file)存在的話,他會直接把快去送給瀏覽器,跳過後續正常的處理。
- Security 是在應用程式控制器(application controller)被載入之前,由 HTTP request 以及任何使用者送出的資料,都會在 security 進行過慮。
- 應用程式控制器(application controller)則負責載入各種不同的 request 所需的模型(model)、核心函式庫(core libraries)、補助函數(helpers)、以及所有其他資源等。
- 最後的檢視(View)建立出來,並送給網頁瀏覽器。假如快取功能有啟動的話,那麼檢視(View)會先被快取(Caching)下來,然後送給網頁瀏覽器。
有結構化的目錄
application(網站主目錄)
system(Codeigniter 核心目錄)
user_guide(Codeigniter 使用目錄)
index.php(網頁主程式)
class Hello extends CI_Controller { public function index() { $data = array( 'context' => "hello world!" ); $this->load->view('welcome', $data); } }接下來在 views 新增 welcome.php
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Hello World</title> </head> <body> <?= $welcome ?> </body> </html>但...你會發生錯誤 error404,因為在 CI 裡面 它有一個預設的 route controller
在 config/routes
$route['default_controller'] = "welcome";
要改成
$route['default_controller'] = "hello";
網址列打上 localhost/test/
就可以顯示結果了~
還有一個很重要 Codeigniter URL
- example.com/index.php/class/function/ID
- 類別的函數 (function) 被呼叫使用
- 任何變數要傳遞給控制器 (controlloer) 所使用
example.com/news.php?mode=edit&id=10
資料來源
- http://blog.wu-boy.com/2012/02/intrduction-to-codeigniter-model-view-controller/
- http://pchome282000.blogspot.tw/2014/04/php-cicodeigniter.html
- http://www.codeigniter.org.tw/
- http://www.codeigniter.org.tw/user_guide/overview/appflow.html
- http://www.slideshare.net/appleboy/phpconf-2011-introductiontocodeigniter
- http://www.codeigniter.org.tw/forum/viewtopic.php?f=5&t=2800
沒有留言 :
張貼留言