2010/12/22

on
 裝 CodeIgniter 的四個步驟: (以下說明以 CI 2.0為主)
  1. 解壓縮
  2. 上傳 CodeIgniter 目錄及檔案到伺服器上。// 一般 index.php 檔案會在網頁的根目錄。
  3. 用編輯器開啟 application/config/config.php 設定 URL。如果你打算使用加密或是 session 的話,你可在這個檔案裡頭設定加密金鑰。
  4. 如果你打算使用資料庫的話,請開啟 application/config/database.php 填入你的資料庫資訊。
如果你想要增加安全性的話,你可以把 CodeIgniter 裡頭的 system 改名成安全的名字。如果改名之後,你必須編輯 index.php ,並且把檔案裡頭最上面的 $system_folder 變數,改成你修改後的名字。

義預設的控制器

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 的運作流程:

CodeIgniter application flow
  1. index.php 供做前端的控制器(controller),載入執行 CodeIgniter 所需的基本的資源。
  2. Routing 檢驗 HTTP request 來決定有哪些東西需要被處理。
  3. 假如快取檔(cacheing file)存在的話,他會直接把快去送給瀏覽器,跳過後續正常的處理。
  4. Security 是在應用程式控制器(application controller)被載入之前,由 HTTP request 以及任何使用者送出的資料,都會在 security 進行過慮。
  5. 應用程式控制器(application controller)則負責載入各種不同的 request 所需的模型(model)、核心函式庫(core libraries)、plugins、補助函數(helpers)、以及所有其他資源等。
  6. 最後的檢視(View)建立出來,並送給網頁瀏覽器。假如快取功能有啟動的話,那麼檢視(View)會先被快取(Caching)下來,然後送給網頁瀏覽器。
==
a
a
a
a
a

0 意見: