ci散記

8950 ワード

CodeIgniter  
 1、  MVC
 1.1、M:  ,    ,    
1.2、V:  ,     ,  form
1.3、C:   ,       
1.4、action:  ,        ,        
 
2、CI  MVC
CI  :CodeIgniter            php  ,  MVC     。          
 
2.1、   url   pathinfo
2.2、  :    /   /  (  pathinfo  )
2.3、application  :
 
Controllers   
Models  
Views  
 
2.4、       welcome
2.5、      index
2.6、       

3、   (controller):
3.1、      ,     .php
3.2、       ,   user.php(            )
3.3、      ,        CI_Controller ,       
3.4、         
 
    :1.   public  
 
2.      (_)  
  !        ,  php      (__construct)
 
4、  (view)
 
4.1、         :$this->load->view(“user_add”);//     
4.2、         :$this->load->view(“user/add”);//     
  :      $this->load->view(  );
4.3、   ,      php  
4.4、         :$this->load->vars(“      ”,php    );
 
  :$str=“abcdefg”;
$this->load->vars(“str”,$str);
     :
 
4.5、           :
 
  :$str=“abcd”;
$list = array(“id”=>”1”,”name”=>”zhangsan”,”pwd”=>”1234”);
$data[“str”]= $str;
$data[“list”]= $list;
$this->load->vars($data);
 
4.6、CI       php     =…?>
4.7、    :$val):?>…

5、    :       ,       
 
5.1、$this->load  
5.1.1、        system/core/Loader.php
5.1.2、CI_Loader     :
$this->load->view()    
$this->load->vars()       
$this->load->database()         
$this->load->model()      
$this->load->helper()    
$this->load->view(“   ”,$   )         
 
5.2、$this->uri  
5.2.1、        system/core/URI.php
5.2.2、CI_URI     :
$this->uri->Segment(n)    URL   n   
     1,    2, 1  3, 2   4…
  1:    /   /  / 1/ 2
echo $this->uri->segment(3);//   1
  2:index.php/   /  /6
//      ;         
publicfunction($id=0){
echo $id;//  6
}
 
5.3、$this->input  
5.3.1、        system/core/Input.php
5.3.2、CI_Input     :
 
$this->input->post(‘username’);//$_POST[“username”];
$this->input->server(“DOCUMENT_ROOT”);//$_SERVER[“DOCUMENT_ROOT”]
$this->input->server(“REMOTE_ADDR”);//   IP
$this->input->server(“SERVER_ADDR”);//    IP
  :    ,     $this           
 
6、     
 
6.1、      :application/config/database.php
6.2、        :$this->load->database();
     ,           ,      db
$this->db
6.3、$query= $this->db->query($sql);//      (array_fetch_object)
$sql = $this->db->last_query($sql);//         sql  
6.3.1、$query= $this->db->escape();//          ,          
6.4、$list= $query->result();//    ,           
6.5、$list= $query->result_array();//      ,       
6.6、$row= $query->row();//       ,       
6.7、$row= $query->row_array();//       ,     
6.8、$count= $query->num_rows();//        
6.9、$field= $query->num_fields();//        
6.10、$count= $query->affected_rows();//        
6.11、$id= $query->insert_id();//    ID
 
7、       
7.1、    db:
 application/config/autoload.php   :
$autoload[“libraries”]= array(“database”);
       $this->load->database();

7.2、    
$name = $this->input->post(“name”);
$pwd = $this->input->post(“pwd”);
//        
$data[0]= $name;
$data[1]= $pwd;//        
$sql =“insertinto ci_user(name,pwd) values (?,?)”;//    ,         
$bool = $this->db->query($sql,$data);//    boolean
7.3、     
 application/config/database.php   :
$db[‘default’][‘dbprefix’]=‘ci_’;
$db[‘default’][‘swap_pre’]=‘ci_’;
     ,   ,              ,             ,     $db[‘default’][‘dbprefix’]=‘new_’,   ci_      new_
 
8、     (AR  )
8.1、  application/cinfig/database.php 
$active_record = TRUE;
8.2、      ,      ,     
8.3、  (get):
$res = $this->db->get(‘  ’);//       
$list = $res->result();//    ,           
$list = $res->result_array();//      ,       
8.4、  (insert):
//        
$data[“      ”]= ;//$this->input->post(“name”);
$data[“      ”]= ;
$res = $this->db->insert(“    ”,$data);//    boolean;
8.5、  (update):
//        
$data[“      ”]= ;//$this->input->post(“name”);
$data[“      ”]= ;
$where = array(“id”=>”4”);
$res = $this->db->update(“    ”,$data,$where);//    boolean;
8.6、  (delete):
$where = array(“id”=>”4”);
$res = $this->db->dalete(“    ”, $where);//    boolean;
 
9、AR     
 
9.1、$res= $this->db->select("id,name")//     
->from("user")//    
->where("id >",3)//   id >        
->order_by("id desc")//  
->limit(3,1)//  ;    1 , 3 , tp  
->get();//    
$list = $res->result_array();
9.2、where()  
   :“>”、“>=”、“db->where(“  ”,” ”)->get();
  :$res= $this->db->where(“name”,”admin”)->get();//     “=”
9.2.2、$res= $this->db->where(“  =”,” ”)->get();
  :$res= $this->db->where(“name=”,”admin”)->get();//      
2、      : array()
9.2.3、$res= $this->db->where(array(“  ”=>” ”,“  ”=>” ”))->get();
  :$res= $this->db->where(array(“name”=>”admin”,“id>3”=>”2”))->get();
9.2.4、         $this->db->query($sql,$data);//        
9.3、join    
9.3.1、      (left join … on)
$this->db->select(“  ”)
->from(“    ”)
->join('   ','    ')
->get();    //      (left join … on)   :
$this->db->select(“*”)
->from(“user”)
->join('category', user.id= category.id)//      (left join )
->get();
9.3.2、  join()           ,      :left、 right、outer、 inner、left outer、right outer
  :
$this->db->select(“*”)
->from(“user”)
->join(“category”, “user.id = category.id”,”left”)//         
->get();
10、  CI   
 
10.1、     
1、 application/core          (MY_Controller),        CI_Controller ,                。
  :class MY_Controller extends CI_Controller{
Public function __consreuct(){
Parent::__construct(); //         
//    
//    
}
}
2、 welcome.php          (MY_Controller),    CI_Controller。
3、         
 application/config/config.php   :
$config['subclass_prefix'] = 'MY_'; 
11、  (model)
11.1、      :user_model.php 、category_model.php,     
  :       _model   ,          !
11.2、     ,        CI_Model ,       
11.3、          :getAll()…
11.4、        :$this->load->model(“     ”); //    
11.5、            :$this->load->model(“     ”,”  ”);
     ,           ,              
11.6、        ,    :$this->     ->   ();
  :$this->load->model(“User_model”); //     
$this->User_model->getAll(); //    ,    
11.6.1、        ,    :$this->  ->   ();
  :$this->load->model(“User_model”,”user”); //     
$this->user->getAll(); //    ,    
12、CI url    
12.1、      :$this->load->helper(“url”);
          : application/config/autoload.php   
$autoload['helper'] = array('url');
    $this->load->helper(“url”);
    :
site_url(“   /  /  ”) ; //  url   
      
base_url();//        (“ci/”);
13、CI        、  index.php    
13.1、    
 
 application/config/routes.php   /  :
 
$route['default_controller'] = "welcome"; //       welcome
 
13.2、     
 application/config/routes.php   /  :
//    (   /)
$route['news/[\d]{6}/([\d\w]+)\.html'] = 'user/show/$1';
http://localhost/CI/index.php/news/201401/caolizhi66.html
   news       user/show/$1
 
13.3、      index.php
13.3.1、  apache    :LoadModule rewrite_module modules/mod_rewrite.so
13.3.2、          ,    .htaccess  ,    :

RewriteEngine on //     
RewriteCond %{REQUEST_FILENAME} !-d //        
RewriteCond %{REQUEST_FILENAME} !-f //        
RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L] //    

 
          index.php 
 
14、CI    
$this->load->library('pagination');
1 $config['base_url'] = $url;
2 /*       URL
3      a、b     ,  url     /news/page/
4      c、d   , url   /news?
5 */
6 $config['total_rows'] = $total;//    ,         ,             
7 $config['per_page'] = $pagesize; //    。 ,         。。    。   10  。
8 $config['page_query_string'] = TRUE;
9 /*    。  true       url    &per_page=3。(  per_page        ,       $config['query_string_segment']     )
10   c、d        localhost/news?&per_page=2     ,     。get per_page  3
11 */
12 $config['first_link'] = '  '; //      
13 $config['last_link'] = '  '; //       
14 $config['next_link'] = '   >'; //      
15 $config['prev_link'] = ''; //        
17 $config['cur_tag_close'] = '';
18 /*       。           。
19                    ,     。     current   css  
20*/
21 $config['num_links'] = 2;//            。           5 ,       3、4、5、6、7 。
22 $config['uri_segment']=4;
23/*      a)、b)       ,       。
24   localhost/news/page/3   uri_segment     3。localhost/news/title/page/3       4
25 */
26 $config['use_page_numbers']= TRUE;
27/*    a)、b)    。   ,page      。false       
15.    
    constants.php
    //       define('GATEWAY_URL', 'http://pay.bebanks.com');