백엔드 개발 PHP 튜토리얼 CodeIgniter框架学习要义

CodeIgniter框架学习要义

Jun 13, 2016 pm 12:23 PM
codeigniter gt nbsp php this

CodeIgniter框架学习要点

以下内容从兄弟连的CI教学视频中摘抄:

http://codeigniter.org.cn/tutorials/

 

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

 

Codeigniter框架

 

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

 

                                                                            讲师:邹义良

                                                                    微博:weibo.com/it266

 

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

主要内容

 

    CI简介

 

    深入MVC设计模式

 

    CI中的控制器与视图

 

    CI中的超级对象

 

    数据库访问

 

    AR模型

 

    如何扩展CI的控制器


    url相关函数


    设置路由


    分页


    文件上传


    Session


    验证码


    表单验证

 

 

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

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();

 

    取自增id

    $this->db->insert_id();

    受影响行数

    $this->db->affected_rows();

 

Active record

 

    1.application/config/database.php

        确保$active_record = TRUE;

    2.application/config/autoload.php

        $autoload['libraries'] = array(database);

    3.在配置文件中,正确配置表前缀后,会自动添加

 

    $res->$this->db->get('表名');//返回结果集对象

    $res->result();

 

    $bool=$this->db->insert('表名',关联数组);

 

    $bool=$this->db->update('表名',关联数组,WHERE条件);

 

    $bool=$this->db->delete('表名',WHERE条件);

 

    //select uid,username from user where uid>=3 order by uid desc limit 2,3

    $res=$this->db->select('uid,username')

        ->from('user')

        ->where('uid >=',1)

        ->limit(3,2)//跳过2条,取出3条数据

        ->order_by('uid desc')

        ->get();

 

    //显示最进一条sql语句

    echo $this->db->last_query();

 

    //where

    //$res=$this->db->where('username','marry')->get('user');

    //$res=$this->db->where('username !=','marry')->get('user');

    //$res=$this->db->where('username','marry')->get('user');

    $res=$this->db->where(array('username'=>'hanyile','uid 3))->get('user');

    echo $this->db->last_query();

 

    复杂的查询请用$this->db->query($sql,$data);//使用问号绑定查询

 

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25 : Myrise에서 모든 것을 잠금 해제하는 방법
4 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

Ubuntu 및 Debian용 PHP 8.4 설치 및 업그레이드 가이드 Ubuntu 및 Debian용 PHP 8.4 설치 및 업그레이드 가이드 Dec 24, 2024 pm 04:42 PM

PHP 8.4는 상당한 양의 기능 중단 및 제거를 통해 몇 가지 새로운 기능, 보안 개선 및 성능 개선을 제공합니다. 이 가이드에서는 Ubuntu, Debian 또는 해당 파생 제품에서 PHP 8.4를 설치하거나 PHP 8.4로 업그레이드하는 방법을 설명합니다.

CakePHP 날짜 및 시간 CakePHP 날짜 및 시간 Sep 10, 2024 pm 05:27 PM

cakephp4에서 날짜와 시간을 다루기 위해 사용 가능한 FrozenTime 클래스를 활용하겠습니다.

CakePHP 토론 CakePHP 토론 Sep 10, 2024 pm 05:28 PM

CakePHP는 PHP용 오픈 소스 프레임워크입니다. 이는 애플리케이션을 훨씬 쉽게 개발, 배포 및 유지 관리할 수 있도록 하기 위한 것입니다. CakePHP는 강력하고 이해하기 쉬운 MVC와 유사한 아키텍처를 기반으로 합니다. 모델, 뷰 및 컨트롤러 gu

CakePHP 파일 업로드 CakePHP 파일 업로드 Sep 10, 2024 pm 05:27 PM

파일 업로드 작업을 위해 양식 도우미를 사용할 것입니다. 다음은 파일 업로드의 예입니다.

CakePHP 유효성 검사기 만들기 CakePHP 유효성 검사기 만들기 Sep 10, 2024 pm 05:26 PM

컨트롤러에 다음 두 줄을 추가하면 유효성 검사기를 만들 수 있습니다.

CakePHP 로깅 CakePHP 로깅 Sep 10, 2024 pm 05:26 PM

CakePHP에 로그인하는 것은 매우 쉬운 작업입니다. 한 가지 기능만 사용하면 됩니다. cronjob과 같은 백그라운드 프로세스에 대해 오류, 예외, 사용자 활동, 사용자가 취한 조치를 기록할 수 있습니다. CakePHP에 데이터를 기록하는 것은 쉽습니다. log() 함수는 다음과 같습니다.

PHP 개발을 위해 Visual Studio Code(VS Code)를 설정하는 방법 PHP 개발을 위해 Visual Studio Code(VS Code)를 설정하는 방법 Dec 20, 2024 am 11:31 AM

VS Code라고도 알려진 Visual Studio Code는 모든 주요 운영 체제에서 사용할 수 있는 무료 소스 코드 편집기 또는 통합 개발 환경(IDE)입니다. 다양한 프로그래밍 언어에 대한 대규모 확장 모음을 통해 VS Code는

CakePHP 빠른 가이드 CakePHP 빠른 가이드 Sep 10, 2024 pm 05:27 PM

CakePHP는 오픈 소스 MVC 프레임워크입니다. 이를 통해 애플리케이션 개발, 배포 및 유지 관리가 훨씬 쉬워집니다. CakePHP에는 가장 일반적인 작업의 과부하를 줄이기 위한 여러 라이브러리가 있습니다.

See all articles