PHP開發框架--CodeIgniter(CI)使用總結


在開發的時候框架是十分重要的,目前有很多框架,WPF中比較出名的MVVM等,這些都是用來組織開發文件的,就是把一個應用分開來寫。下面總結一下CI框架的用法。
CI框架是基於MVC的,分別是
1.Models:模型,用來擺放實體類,工具類,數據庫訪問類等,屬於后台的數據支持與類型支持。
2.Controls:控制器,當做一個交警的作用,就是控制內部數據和外部界面的協調,所以這個是在M和V中間做調節作用了,竟然是調節作用,那么就需要掌握一些東西:怎么和M交流,怎么和V交流,還有用戶是怎么和自己交流呢。這些都是比較核心,比較重要的東西,下面會總結。
3.Views:視圖,這個就是界面了,反饋給用戶操作的界面了,主要用html來寫,這個大家懂了。
 
下面分幾步來介紹和總結CI的使用:1.准備工作。2.文件介紹。3.M,C,V之間的通訊方式。
 
(一)下載,地址 http://codeigniter.org.cn/下載完成就是應用程序的框架了,然后放在服務器www文件底下,看一下文件 PHP開發框架--CodeIgniter(CI)使用總結其他的就刪除掉,沒什么用處。
(二)
然后有兩個文件夾,一個是Application,這個是應用程序文件放的地方,進去里面看一下:
PHP開發框架--CodeIgniter(CI)使用總結這里可以看到MVC了,controllers,models,views分別放各自的文件,然后有一個config文件夾,用來裝配置文件的。
返回去system文件夾里面就是存在開發這個框架的團隊寫的一些使用類,我們不用去修改,可以直接用。十分簡單,,十分明了。
(三)這里就是重點了,在學會用一個框架的時候,框架之間的元素的通信方式必須要清楚,這樣就能開搞。先說一下CI框架的思想,用戶是通過訪問一個controller中的方法來訪問一個頁面的,所以這個controller就起着十分重要的角色了,上面說過它是交通警察,負責監視內部數據變化和反饋界面,接受界面信息反饋內部數據等作用。下面說幾個主要的通訊:
 
1.用戶與controller的通訊,竟然用戶是通過訪問C中的方法來訪問頁面,那么用戶與方法的通訊就通過參數來了,用戶能在URL中直接寫參數,按順序,例如 http://localhost/CI/index.php/hello/sayhello/Jarvin/Afternoon
這里就訪問hello這個controller中的sayhello方法,看方法:
PHP開發框架--CodeIgniter(CI)使用總結
我看這樣就明了了,第一個參數Jarvin第二個參數Afternoon.看結果 PHP開發框架--CodeIgniter(CI)使用總結
 
2.controller與View的通訊,雖然說能混編html來進行界面表述,但是竟然是用mvc那么就要分開,分到View里面,在Views文件夾里面寫好html文件,這些文件能是完整的全頁面html也能是部分html,例如說頭部,身部,尾部等。寫好以后就通過Controller來引用Views中的view來展示東西了。,竟然能在Controller中引用界面文件,那么怎么調用,這個是重要的:
$this->load->view("text_view.php");在函數里面加上這句就是引用一個views中的文件了。如果想調用多個,例如要一次把頭,身,尾調用進去,那么直接在下面添加多兩條一樣的,改個名稱就OK,還要一個重要的是Controller怎么跟view通訊呢???答案是利用數組,然后在第一個引用后面傳入數組.下面看例子:
function show()
    {
        $name="Jarvin";
        $count=1;
        
        $data= array('Name'=>$name,'num'=>$count);
        
        $this->load->view("text_view.php",$data);//調用一個視圖
    }
這樣傳過去,然后那邊怎么接呢,直接使用就行了,方便啊: PHP開發框架--CodeIgniter(CI)使用總結
 
3.Controller與model的通訊.
用來提交給view的數據很多時候不是寫死的,那么動態數據就要用到數據庫,那么久要用到Model了。,下面總結一下制作一個Model類進行對數據庫進行增刪改除。
其實啊,Controller調用Model類中的函數,然后傳入參數進行通信,形式與C和V通訊差不多。
 
首先是新建一個模型類,新建一個模型類的模型是:
class ClassName extends CI_Model//注意要繼承CI_Model類
{
    function __construct()
    {
        parent::__construct();//構造函數里面要調用父類的構造方法
        $this->load->database();//加載數據庫,數據庫名稱在Config文件里面配置。,還有其他信息,例如密碼等
    }
//下面寫函數。
}
 
下面給出測試model類:
<?php
class Test_m extends CI_Model
{
    function __construct()
    {
        parent::__construct();
        $this->load->database();
    }
    
    function user_insert($arr)
    {
        $this->db->insert("person",$arr);
    }
    
    function user_update($name,$arr)
    {
        $this->db->where("Name",$name);
        $this->db->update("person",$arr);
    }
    function user_delete($name)
    {
        $this->db->where("Name",$name);
        $this->db->delete("person");
    }
    function user_select($name)
    {
        $this->db->where("Name",$name);
        $this->db->select("*");
        $query=  $this->db->get("person");
        return $query->result();
    }
}
?>
 
然后在controllers里面新建一個controller,來使用這個模型類的功能:
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
 
class User extends CI_Controller 
{//繼承是必須的!!
    function insert()
    {
        $this->load->model('Test_m');
        $arr=array('Name'=>'fff','Age'=>21);
        $this->Test_m->user_insert($arr);
    }
    function update()
    {
        $this->load->model('Test_m');
        $arr=array('Name'=>'gg','Age'=>12);
        $this->Test_m->user_update('J',$arr);
    }
    function delete()
    {
        $this->load->model('Test_m');
        $this->Test_m->user_delete("Ken");
    }
    function  select()
    {
        $this->load->model('Test_m');
        var_dump($this->Test_m->user_select("ggg"));
    }
 }
?>
OK了,研究下就好。十分簡單


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM