网络编程
位置:首页>> 网络编程>> php编程>> PHP之CI框架学习讲解

PHP之CI框架学习讲解

作者:铁柱同学  发布时间:2023-07-03 21:25:13 

标签:PHP,CI

一、前言

CodeIgniter 是一个简单快速的PHP MVC框架。EllisLab 的工作人员发布了 CodeIgniter。CodeIgniter 是一套小巧但功能强大的、给 PHP 网站开发者使用的 Web 应用程序开发框架和工具包。它为组织提供了足够的自由支持,允许开发人员更迅速地工作。

二、CI的工作流程

  • 1.index.php作为前端控制器,初始化运行CodeIgniter所需要的基本资源。

  • 2.Router检查HTTP请求,以确定谁来处理请求。

  • 3.如果缓存(Cache)文件存在,它将绕过通常的系统执行顺序,被直接发送给浏览器。

  • 4.安全(Security)。应用程序控制器(ApplicationController)装载之前,HTTP请求和任何用户提交的数据将被过滤。

  • 5.控制器(Controller)装载模型、核心库、插件、辅助函数,以及任何处理特定请求所需的其它资源。

  • 6.最终视图(View)渲染发送到Web浏览器中的内容。如果开启缓存(Caching),视图首先被缓存,所以将可用于以后的请求。

三、CI入门


手册地址:http://codeigniter.org.cn/user_guide/

1、查看ci框架的版本号


项目中全局搜索:CI_VERSION
define('CI_VERSION', '2.x');

2、 CI框架设置默认的控制器


1.进入application的config文件夹下,找到routes.php
2.看到设置:$route['default_controller'] = "test";  // 含义是默认访问test控制器的index方法

3、核心类库的调用方式(system/core/config.php)


(1)控制器中调用核心库
$aa = $this->config->base_url();

(2)控制器中调用逻辑文件
$this->load->biz('test/test1'); // test1.php就是逻辑文件名

4、系统类库的调用(system/libraries/config.php)


$this->load->library('class_name'); //调用单个文件
$this->load->library(array('email', 'table')); //调用多个文件
$this->class_name->error_array();  //调用结束之后,就可以直接使用系统类库中的方法

5、辅助函数类的调用 (system/helps/test.php)


$this->load->library('test');
$casUserInfo = $this->test->xxx(); // 调用完可直接使用

6、模型类的调用 (system/models/model_name.php)


$this->load->model('blog/model_name'); 引用位于子目录下模型
$this->model_name->method(); 加载之后,你就可以通过一个和你的类同名的对象访问模型中的方法。

7、渲染页面


$this->load->view($template, $data, TRUE);

8、其他调用(redis)


//需要在config文件夹新建redis.php文件,里面写上配置等
$this->load->redis('key的名字'); //redis

9、获取和设置config的值


echo $this->config->item('charset'); //获取config中配置的charset值
$this->config->set_item('charset', 'gbk') //重新设置config中charset的值

10、以上方法皆为在controller中的调用,如果不在controller中怎么办?


要你自定义的类库中访问CodeIgniter的原始资源,你必须使用 get_instance() 函数.这个函数返回一个CodeIgniter super object.
$CI = &get_instance();
$CI->load->config('test1'); //加载core下的配置文件,例如test1.php
$CI->load->model('xxx/test_db'); //  加载model下的文件
$CI->load->library('http');  //加载 library下的文件
$CI->load->redis('test');  // 调用redis
$CI->load->rabbitmq('test'); // 调用rabbitmq
$CI->load->view($template, $data, TRUE);  // 渲染页面

11、ci的命令行调用

调用方式:php index.php 控制器 方法 参数
示例:


*/1 * * * * php 项目目录/index.php test test_1 0 > /dev/null 2>&1

解释:


(1)类似于其他框架的命令行模式,前面是php位置,后面是项目根目录的index,php
(2) 后面的是用空格隔开的,控制器文件名(application里面的),方法名,参数
(3)方法示例:
// 这个就是对应的方法,$index是参数
public function test_1($index = 0)
   {}

12、优秀入门博文推荐


https://www.cnblogs.com/lovele-/p/9434328.html
https://blog.csdn.net/qq_21806621/article/details/70992328
https://www.cnblogs.com/xiaoxiaoqingyi/p/6654190.html

来源:https://blog.csdn.net/LJFPHP/article/details/111825427

0
投稿

猜你喜欢

  • 问题你有50枚金币,需要分配给以下几个人:Matthew,Sarah,Augustus,Heidi,Emilie,Peter,Giana,A
  • 在开发的过程中,几乎不可能一次性就能写出毫无破绽的程序,断点调试代码是一个普遍的需求。作为前端开发工程师,以往我们开发的JavaScript
  • 当浏览网页时,总有那么一类网站华丽而富有趣味性。在浏览信息的同时,足够让我们眼前一亮。它们在充分融入动画、视频、游戏、甚至是与众不同的交互操
  • 设计与开发之间本有一线界限,但当时代步入又一个十年,这个线变得更加模糊甚至感觉不到它的存在。使用PS设计网页版面,足矣?或许五年前是吧!现在
  • 题目:用 JavaScript 代码实现空位补零,比如 pad(12, 3) => 012实现一:/* 平淡无奇法 */functio
  • 以下介绍用数据库实现简单计数器,功能实现统计网站每日访问,每周访问及总访问量的统计,使用js调用下面存为count.asp<%&nbs
  • 1.不装入数据库而启动事例 可以不装入数据库而启动事例,一般是在数据库才创建时才可以这样做:STARTUP NOMOUNT2.启动事例并装入
  • 事物绝非十全十美总有强差人意的一面,之前针对浮动分析了其引起文本重影的怪异问题,而作为浮动布局的最佳搭档定位布局也存在一定的缺陷。围绕着定位
  • 用新云还不是很熟,一点点学习中。今天遇到一个文章列表前有小圆点的问题,把去除方法记一下。文章列表前有小圆点有这么几种情况:1、li的默认样式
  • 如何限制重复订阅邮件或投票?一、准备子程序和函数。1、初始化数据,在Session对象中保存两个变量:Sub InitializeFID()
  • 随着十几年前“用户体验”这一概念的提出,“用户研究”也逐渐发展成为一个新兴的行业。那么,“用户研究”究竟包括哪些工作内容,在企业中如何开展,
  • 问题:有一个列表,每一个条目都是这篇文章的部分内容,类似这样:<div class="list">
  • MySQL使用环境变量TMPDIR的值作为保存临时文件的目录的路径名。如果未设置TMPDIR,MySQL将使用系统的默认值,通常为/tmp、
  • 导语:排版是一门艺术,也是一门技巧。我们每天都能在报纸,书籍等各种媒介上看到排版,或精美,或丑陋。如何能在准确传递信息的同时,又能排出精美的
  • 代码如下所示:表landundertake结构如下所示:表appraiser结构如下所示:access代码:代码如下:TRANSFORM F
  • 一共4个页面:form.asp; chk.asp; num.asp; count.asp得到一个随即数字。加密
  • 我们有时候希望回车键敲在文本框(input element)里来提交表单(form),但有时候又不希望如此。比如搜索行为,希望输入完关键词之
  • 使用fso对象遍历指定文件夹函数:'遍历文件夹sub ListFolderContents(path) &nbs
  • SQL SERVER用来判断表或视图存在的语句在ORACLE中不能用,请问该怎么写。谢谢。答案exists(select tnam
  • 原来看到这个代码的时候,觉得功能不错,调试并整理了一下也许大家用的到,对于越来越注重用户体验的今天,这种功能一定很受欢迎,当然本例子只是一个
手机版 网络编程 asp之家 www.aspxhome.com