1. 程式人生 > >PHP CI 框架教程 (1) -- 安裝和簡介

PHP CI 框架教程 (1) -- 安裝和簡介

 CodeIgniter 是一個小巧但功能強大的 PHP 框架,作為一個簡單而“優雅”的工具包,它可以為開發者們建立功能完善的 Web 應用程式。是比較主流的一個PHP框架。

1. 安裝

下載後解壓縮,然後放到你應用伺服器對應的程式目錄中即可,如MAC (/Library/WebServer/Documents)

啟動應用伺服器,如apache httpd 或 nginx ,然後就可以在瀏覽器中訪問到


2. CI框架結構


1)首先,不管什麼請求,都先送到 index.php 
2)第二步,Routing會決定將請求傳送到 step-3 做快取檢查處理,還是傳送到 setp-4 做安全檢查
3)如果這個請求在快取中不存在,那麼Routing會將請求送到STEP-4做安全檢查。
4)在傳送給應用程式控制器之前,提交資料的安全性已經接受了檢查。此後,控制器載入必要的模型、庫、幫助器、外掛和指令碼,然後傳遞給檢視View。
5)檢視用資料來渲染頁面,然後傳送給快取。如果請求資料沒有被快取儲存,這時就會儲存,以便將來再次請求時候能快速處理。

2.1 目錄結構


CI目錄結構分成三部分:
. Application
. System
. User_guide


Application
這裡包含所有用來構建你的應用所需要的程式碼。主要包含:
Cache
Config      -- 程式的配置資訊,如資料庫配置資訊
Controllers
Core -- 你的應用的基礎類
Helpers
Hooks-- 提供一些修改Core的入口
Language -- 語言設定相關內容
Libraries -- 
Logs --
Models--
Third_party--
Views--

System
CI框架的一些核心程式碼

Core -- CI的基礎核心。不要做任何修改!!要擴充套件功能請通過Application\Hooks 
Database --
Fonts--
Helpers --
Language --
Libraries --

User_guide


CI的離線版應用指南。建議瀏覽一下

此外,這些資料夾之外還有一個很重要的檔案,叫  index.php 。我們可以在這檔案中設定應用環境和錯誤處理,也可以定義系統和應用資料夾名。在你還不確定要做什麼之前,建議你不要去修改這些東西。

3. MVC框架

CI基於 MVC 設計模式。MVC是一種將應用邏輯和表現分庫的軟體設計機制。在實踐中,它僅允許你在Web頁面中包含最小的腳步,因為表現層從PHP指令碼中分離了。


M: Model 代表你的資料結構。典型得,model類包含你從資料庫裡檢索、插入和更新資訊的功能。
V: VIEW 檢視是展現給使用者的資訊。通常是一個Web頁面,但是在CI裡,也可以是頁頭或者頁尾。也可以是一個RSS頁或者其他任何型別的“頁面”。
C: Controller 控制器為檢視和資料提供服務,以及其他任何需要處理HTTP請求併產生頁面的資源。

4. 基本概念

4.1 控制器

轉到 application/controllers 目錄,你會看到2個檔案 index.html Welcome.php,這是CI自帶的。
在該目錄下新建一個檔案 “Test.php” , 寫入如下程式碼
建立控制器

<?php 
   class Test extends CI_Controller {
  
      public function index() { 
         echo "Hello World!"; 
      } 
   } 
?>

Test類擴充套件了 CI_Controller 類。當你想建立自己的控制器時,就擴充套件它。

呼叫控制器
通過下面的路徑來呼叫剛才建立的控制器
http://www.your-domain.com/index.php/test
請注意,類名 Test 用大寫開頭,但在URI裡,用小寫 test. 基本呼叫方法: 
http://www.your-domain.com/index.php/controller/method-name

建立和呼叫構造方法

修改上面的類,增加一個方法 hello

<?php 
   class Test extends CI_Controller {  
	
      public function index() { 
         echo "This is default function."; 
      } 
  
      public function hello() { 
         echo "This is hello function."; 
      } 
   } 
?>

可以通過以下三種方式來呼叫和執行控制器: 
http://www.your-domain.com/index.php/test
http://www.your-domain.com/index.php/test/index
http://www.your-domain.com/index.php/test/hello
當我們在瀏覽器中執行時候,會發現 第一種和第二種呼叫得到了相同的結果。因為index是控制器預設的被呼叫方法

訪問第三個URL,得到 this is hello function

小結:
1)Controller的名字必須以大寫開頭
2)呼叫controller必須用小寫開頭
3)不要使用和父類相同的方法名,否則會覆寫掉父類方法

4.2 檢視 

檢視可以簡單或複雜,可以包含頁頭頁尾或者邊條。在 application/views 下建立一個名為 test.php 的檔案,然後寫入:

<!DOCTYPE html> 
<html lang = "en"> 

   <head> 
      <meta charset = "utf-8"> 
      <title>CodeIgniter View Example</title> 
   </head>
	
   <body> 
      CodeIgniter View Example 
   </body>
	
</html>

修改此前的 test.php (application/controllers/test.php)如下

<?php 
   class Test extends CI_Controller { 
	
      public function index() { 
         $this->load->view('test'); 
      } 
   } 
?>

檢視可以通過如下的方式載入

$this->load->view('name');
或
$this->load->view('directory-name/name');

不需要寫上.php的字尾,除非你要載入其他型別的檢視。


index()方法會呼叫view方法,然後傳入 test 作為引數給 view() 因為我們在application/views/ 下建立了 test.php 

從下面這張圖中可以清晰的看到,這些過程是如何起作用的

4.3 模型

定義
<?php 
   Class Model_name extends CI_Model { 
	
      Public function __construct() { 
         parent::__construct(); 
      } 
   } 
?> 
呼叫
$this->load->model('model_name');
$this->model_name->method();

4.5 路由  Routing 

一個典型的路由模式
 xxxcom/clas/method/id/
控制器類名/方法名/引數


某些情況下,你可能需要修改路由規則,那麼可以在 application/config/routes.php中修改