- 解壓縮
- 上傳 CodeIgniter 目錄及檔案到伺服器上。// 一般 index.php 檔案會在網頁的根目錄。
- 用編輯器開啟 application/config/config.php 設定 URL。如果你打算使用加密或是 session 的話,你可在這個檔案裡頭設定加密金鑰。
- 如果你打算使用資料庫的話,請開啟 application/config/database.php 填入你的資料庫資訊。
定義預設的控制器
CodeIgniter 可以修改預設載入的控制器,如要設定預設的控制器,請開啟 application/config/routes.php 的檔案,然後設定成底下的變數:$route['default_controller'] = 'Blog';
Controller : ( application/controllers/ ) blog.php
class Blog extends CI_Controller { //首字大寫,檔名不用大寫
function __construct() {
parent::__construct();
}
function index() {
echo 'Hello World!' .
; // 你可以先將本 function 此條以下mark掉,在網址列輸入
http://example.com/index.php/blog/
即可正常顯示(不需 view)
// $this->load->model('blog/queries'); // 相對目錄載入 application/models/blog/queries.php
$this->load->model('blogview');
$last10 = $this->
blogview
->get_last_ten_entries();
// 下面將模型(model)指定一個不同的物件名稱
// $this->load->model('
blogview
', 'modblog'); //
$last10 =
$this->modblog->
get_last_ten_entries()
;
$this->load->library('session');
// 載入系統 library Session$this->load->library('menu');
// 載入自定義 library Menu$
vMenu = $this->menu->get_menu();
echo $vMenu .
;
// $data['page_title'] = 'Your title'; // or
$data = array('title' => 'My Title', 'heading' => 'My Heading', 'message' => 'My Message');
$this->load->view('header'); // View 的檢視檔
副檔名不必
加
.php,除非建立不使用.php 的檔案
名
$this->load->view('menu');
$this->load->view('content', $data);
$this->load->view('footer');
$data2['todo_list'] = array('Clean House','Call Mom','Run Errands');
$data2['title'] = "My Real Title"; $data['heading'] = "My Real Heading";
$this->load->view('blogview', $data2);
$string = $this->load->view('myfile','',true); //其中第三個參數為選擇性 ,預設是false,為送至瀏覽器。true為資料回傳,需有回傳的變數值。
$this->load->view('folder_name/file_name'); //Storing Views within Sub-folders
}
function _utility(){ //以底線開頭為私有函數
// some code
}
}
?>
View : ( application/views/ ) blogview.php
<span style="COLOR: rgb(51,51,255)"><?php echo $title;?></span>
My Todo List
- :?> <-- 注意 foreach 結尾是用 : 號 -->
Models : ( application/models/ ) blogmodel.php (注意:函數中使用了Active Record資料庫函數)
class Blogmodel extends CI_Model {
var $title = ''; var $content = ''; var $date = '';
function __construct() { // Call the Model constructor
parent::__construct();
}
function get_last_ten_entries() {
$query = $this->db->get('entries', 10);
return $query->result();
}
function insert_entry() {
$this->title = $_POST['title']; // please read the below note
$this->content = $_POST['content'];
$this->date = time();
$this->db->insert('entries', $this);
}
function update_entry() {
$this->title = $_POST['title'];
$this->content = $_POST['content'];
$this->date = time();
$this->db->update('entries', $this, array('id' => $_POST['id']));
}
}
?>
如需要遍及整個應用的特別模型(model),可告訴CodeIgniter在系統初始化的時候自動載入它。由開啟 application/config/autoload.php 檔案並把這個模型(model)加入autoload陣列。
Libraries : ( application/libraries/ ) Menu.php
檔名第一個字母必須大寫.例:Myclass.php ;; 類別宣告第一個字母必須為大寫.例:class Myclass
Libraries 與系統Libraries同名為擴充或修改,不同名為自建。
class Menu {
// function __construct($params) { //如需傳參數進menu需用此建構式
// }
function get_menu() {
$obj = &get_instance(); //$this 只用在 controllers, models, views. 如要用在自建Class上要先將$this轉為物件 : $obj = &get_instance();
$obj->load->helper('url'); //載入 系統 URL 補助函數 anchor用
// $this(or $obj)->load->helper( array('url', 'date', 'form') ); // 一次載入多個 補助函數
$menu = anchor("z_test1", " Test 1 | ") .' ';
$menu .= anchor("z_test2", "Test 2 | ") .' ';
$menu .= anchor("tools/tool", "Tool ");
return $menu;
}
}
?>
=============
底下的圖形說明資料如何穿過 framework 的運作流程:
- index.php 供做前端的控制器(controller),載入執行 CodeIgniter 所需的基本的資源。
- Routing 檢驗 HTTP request 來決定有哪些東西需要被處理。
- 假如快取檔(cacheing file)存在的話,他會直接把快去送給瀏覽器,跳過後續正常的處理。
- Security 是在應用程式控制器(application controller)被載入之前,由 HTTP request 以及任何使用者送出的資料,都會在 security 進行過慮。
- 應用程式控制器(application controller)則負責載入各種不同的 request 所需的模型(model)、核心函式庫(core libraries)、plugins、補助函數(helpers)、以及所有其他資源等。
- 最後的檢視(View)建立出來,並送給網頁瀏覽器。假如快取功能有啟動的話,那麼檢視(View)會先被快取(Caching)下來,然後送給網頁瀏覽器。
a
a
a
a
a
0 意見:
張貼留言