php codeigniter

一、CI是什麼php

       CI的全稱是CodeIgniter, 一個小巧但功能強大的 PHP 框架,做爲一個簡單而「優雅」的工具包,它能夠爲 PHP 程序員創建功能完善的 Web 應用程序。基於MVC設計模式,輕量易學,注重安全,文檔健全,有豐富的類庫。html

二、CI能作什麼程序員

       CI提供了許多豐富的類庫,好比文件上傳、圖片處理、文件壓縮、郵件發送等。這些類庫的存在大大減低了開發的難度與週期,也減小了整合外部類庫的需求。能快速高效的開發各類web應用: 好比電子商務網站、SNS、論壇、內容管理系統(CMS)、客戶關係管理系統(CRM)等等。web

三、MVCsql

  • 入口文件:惟一一個讓瀏覽器直接請求的腳本文件數據庫

  • 控制器controller:協調模型和視圖設計模式

  • 模型model:提供數據,保存數據api

  • 視圖view:只負責顯示、表單...數組

  • 動做action:是控制器中方法,用於被瀏覽器請求瀏覽器

四、CI中的mvc

  • 訪問url使用的是pathinfo:入口文件.php/控制器/動做

  • application目錄中:controllers(控制器)、models(模型)、views(視圖)

五、c(控制器)。

  • 不須要加後綴;

  • 文件名所有小寫(例如:user.php);

  • 全部控制器,直接或間接繼承自CI_Controller類;

  • 控制器中,對動做(方法)要求:public、不能已下劃線開始、不要與類名相同(不然會被認爲是構造方法)。

六、視圖。

  • 在控制器中加載視圖:$this->load->view(視圖)

        //直接寫視圖名,不寫擴展名,若有子目錄,則加上子目錄,能夠屢次調用view;

  • 視圖中直接使用php原生代碼,不使用模版引擎;

  • 遍歷數據推薦使用<?php foreach($list as $item):?> <?=$item['']?> <?php endforeach;?>。

  • 分配變量:this->assign('key','value')//smarty中;this->load->vars('key','value')或$data['list']=$list this->load

    ->vars($data)

七、超級對象

  • 當前控制器對象(CI_Controller)

  • 提供了不少屬性:

    $this->load(類屬性,Loader.php中裝載器CI_Loader類實例)

              裝載器CI_Loader類中提供方法:view()-裝載視圖、vars()-分配變量到視圖、database()-裝載數據庫操做對象、model()-裝載模型對象、helper()-輔助函數。

    $this->uri(類屬性,URI.php中CI_URI類的實例)

               CI_URI類中提供方法:

               segment() 用於獲取url中的參數   入口文件.php/控制器/動做/參數1/參數2(或者動做中帶相對應參數)

    $this->input(類屬性,Input.php中CI_Input類的實例)

                CI_Input類中提供方法:

                post() 獲取post提交的數據,至關於$_POST ;server() 獲取服務器中相關信息,至關於$_SERVER。

  • 在視圖中,直接用$this來訪問超級對象中的屬性。

八、操做數據庫

  • 修改配置文件:application\config\database.php

  • 裝載數據庫對象:$this->load->database();

  • 寫sql:$sql="";

  • 執行sql:$this->db->query($sql,[關聯數組]); 查詢返回數組($res->result()),增刪改返回布爾

九、ar(active record,經常使用的簡單sql)操做

  • 修改配置文件:application\config\database.php($active_record = TRUE;);application\config\autoload.php($autoload['libraries'] = array('database');)

  • 執行查詢:$this->db->get(表名);查詢表中全部數據

  • 執行插入:$this->db->insert(表名,關聯數組數據);

  • 執行更新:$this->db->update(表名,關聯數組數據,條件(array))

  • ar連貫操做:$this->db->select('id,name')->from('user')->where('id >=',3)->limit(3,2)->order_by('id desc ')

    ->get();

     // ci執行的sql($this->db->last_query())爲select 'id','name' from('blog_user') where 'id' >=3 order by 'id' desc limit 2,3

十、擴展ci控制器

  • application\core\目錄下建立MY_Controller.php其中類繼承CI_Controller。其餘控制器就能夠繼承MY_Controller。

十一、m(模型)

  • User_model繼承自CI_Model,能夠直接使用超級對象中的屬性。文件名全小寫,類名首字母大寫,建議使用_model做爲後綴。

  • 控制器中

    加載模型:$this->load->model('User_model');

    調用模型獲取數據:$list=$this->User_model->getAll();

    加載視圖:$this->load->view('視圖名',array('list'=>$list));

十二、url相關函數

  • 控制器中加載url(常使用能夠在config目錄下的autoload.php文件中配置):$this->load->helper('url');  而後表單中action可寫爲<?php echo site_url('控制器名/方法名'); ?>

  • base_url:<?php  echo base_url(); ?>獲取基礎目錄(網站根目錄)

1三、設置路由

  • 在config目錄下的routes.php文件中配置

  • $route['news/(\d+)\.html']='article/show/$1'; //=後面是實際訪問地址,前面的生成顯示地址

1四、ci的分頁

  • 裝載類文件:$this->load->library('pagination'); $this->load->helper('uri');

  • $config['base_url']=site_url('控制器/方法名'); //地址

  • $config['total_rows']=100; //記錄總條數

  • $config['per_page']=10;  //每頁記錄數

  • $config['first_link']='首頁'; //設置首頁連接顯示名稱

  • $this->pagination->initialize($config); //初始化設置

  • $page_index=intval($this->uri->segment(3)); //獲得起始位置

  • $sql='select * from 表名 limit $page_index,10';

  • $data['links']=$this->pagination->create_links(); //建立連接

  • $this->load->view('目錄/php名',$data);

1五、文件上傳

  • form表單,其中必有屬性enctype="multipart/form-data"。

  • input標籤,type爲file。

  •  $config['upload_path'] = './uploads/'; //上傳目錄

  •   $config['allowed_types'] = 'gif|jpg|png'; //文件類型

  •   $config['max_size'] = '100'; //文件最大限制

  •   $config['max_width']  = '1024'; //文件最大寬度

  •   $config['max_height']  = '768'; //文件最大高度

  •   $this->load->library('upload', $config); //裝載上傳文件

  •   $this->upload->do_upload('input標籤名')); //上傳

1六、session(需配置)

  • $this->load->library('session'); (注:md5(uniqid()); //生成密匙)

  • this->session->set_userdata($array); //多頁面傳遞數據

  • this->session->set_flashdata($array); //兩頁面傳遞以後銷燬

1七、驗證碼(輔助函數CAPTCHA,詳細查api)

1八、表單驗證(詳細查api

相關文章
相關標籤/搜索