Rumah  >  Artikel  >  php教程  >  CodeIgniter框架学习随笔,codeigniter随笔

CodeIgniter框架学习随笔,codeigniter随笔

WBOY
WBOYasal
2016-06-13 08:57:55880semak imbas

CodeIgniter框架学习随笔,codeigniter随笔

-----------------------------------------------------------------------------------------------

 

Codeigniter框架

 

-----------------------------------------------------------------------------------------------

 

                                                                            讲师:邹义良

                                                                    微博:weibo.com/it266

 

-----------------------------------------------------------------------------------------------

主要内容

 

    CI简介

 

    深入MVC设计模式

 

    CI中的控制器与视图

 

    CI中的超级对象

 

    数据库访问

 

    AR模型

 

-----------------------------------------------------------------------------------------------

CI是什么?

    CodeIgniter是一个轻量级但功能强大的PHP框架

    基于MVC设计模式,提供了一套丰富的类库

    简单易学,高效实用

 

官方网站

    www.codeigniter.com

 

中文网站

    http://codeigniter.org.cn

 

下载当前最新版本

    CodeIgniter_2.1.4.zip

    (截止2015.7.1最新版为3.0.0——笔者注)

 

有什么特点?

    你想要一个小巧的框架

    你需要出色的性能

    你需要广泛兼容标准主机上的各种 PHP 版本和配置

        CI 2.1.4 需要PHP5.1.6

    你想要一个几乎只需 0 配置的框架

    你想要一个不需使用任何命令符的框架

    你想要一个不需坚守限制性编码规则的框架

    你不希望被迫学习一门模板语言(虽然可以选择你喜欢的模板解析器)

    你不喜欢复杂,热爱简单

    你需要清晰,完整的文档

 

目录结构说明

    license.txt  许可协议

    user_guide  用户手册

    syste  框架核心文件

    application  应用目录

    index.php  入口文件

 

-----------------------------------------------------------------------------------------------

MVC

 

 

    1.入口文件

        唯一一个让浏览器直接请求的脚本文件

    2.控制器

        协调模型和视图

    3.模型

        提供数据,保存数据

    4.视图

        只负责显示

        表单...

    5.动作action

        是控制器中的方法,用于被浏览器请求

 

 

CI中的MVC

 

    访问url使用的是pathinfo

    入口文件.php/控制器/动作

    application目录中:

        controllers 控制器

        models  模型

        views  视图

    默认控制器是welcome

    默认动作是index

 

 

控制器

 

    1.不需要加后缀

    2.文件名全部小写    例如  user.php

    3.所有的控制器,直接或间接继承自CI_Controller类

    4.控制器中,对动作(方法)要求:

        public

        不能以_开头

 

 

视图

 

    1.在控制器中如果加载视图

        //直接写视图名字,不写扩展名,如果有子目录,则写上目录名

    2.视图中,直接使用原生PHP代码

    3.推荐使用

       

        =$item['name']?>

       

 

 

超级对象

 

    当前的控制器对象

    提供了很多属性:

 

    $this->load

        装载器类的实例 system/core/loader.php

        装载器类提供的方法:

        view()    装载视图

        vars()    分配变量到视图

        database() 装载数据库操作对象

        model()   装载模型对象

        helper()

 

    $this->uri

        是CI_URI类的实例 system/core/URI.php

        CI_URI类提供的方法:

        segment()用于获取uri中的参数

 

        传统的:入口文件.php/控制器/动作/参数1/值1/参数2/值2

        入口文件.php/控制器/动作/值1/值2

 

        echo $this->segment(3);//值1

        echo $this->segment(4);//值2

 

        //index.php/控制器/index/6

        public function index($p=0){    echo $p;//输出6

        }

 

    $this->input

        输入类

        是CI_URI类的实例 system/core/input.php

        CI_URI类提供的方法:

        $this->input->post('username');  //等价于$_POST['username'];

        $this->input->server('DOCUMENT_ROOT'); //等价于$_SERVER['DOCUMENT_ROOT'];        

        $this->input->server('REMOTE_ADDR');

   在视图中,直接用$this来访问超级对象中的属性

 

 

数据库访问

 

    修改配置文件

    application/config/database.php

    将数据库访问对象 装载到超级对象的属性中 $this->db

    $this->load->query($sql);//返回对象

 

    $res=$this->db->query($sql);//返回对象

    $res->result();//返回数组,数组中是一个一个的对象

    $res->result_array();//返回二维数组,里面是关联数组

    $res->row()//返回第一条数据,直接是一个对象


    参数绑定
    $sql="select * from blog_user where name=?";
    $this->db->query($sql,$name);//如果有多个问号时,需要传入一个索引数组

    表前缀
    $db['default']['dbprefix'] = 'new_';
    $db['default']['swap_pre'] = 'swap_';


    配置为一样,代码中,直接硬编码表前缀就行了,如果以后项目数据库表前缀发生变化,
    只需要修改$db['default']['dbprefix'] = 'new_';代码中的swap_会自动替换为new_

    db的自动加载
    application\config\autoload.php
    $autoload['libraries'] = array(database);
    不需要:$this->load->database();

 

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn