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


猜你喜欢
- Python对于json数据键值对遍历Python中可以使用json模块来解析JSON格式的数据,将其转换成Python中的字典或者列表对象
- 前言Vux 是基于 Vue 和 Weui 开发的手机端页面 UI 组件库,开发初衷是满足公司的微信端表单需求,因为第三方的调查问卷表单系统在
- 本文实例讲述了Python Web框架之Django框架Model基础。分享给大家供大家参考,具体如下:model是关于你的数据的单一的,确
- 直接使用Python来实现向量的相加# -*-coding:utf-8-*-#向量相加def pythonsum(n): a = range
- 一、问题描述在启动MYSQL时出现问题:“ERROR 2003 (HY000): Can't connect to MySQL se
- 我就废话不多说了,大家还是直接看代码吧~from torch import nnclass SELayer(nn.Module): def
- 在执行程序前,先在MySQL中创建一个数据库"pachong"。import pymysqlimport request
- 用户登录验证脚本,Chkpwd.asp<% '=======用户登录验证脚本======= '如果尚未定义Passed
- 一、PDF转为MP3 我们平常看到很多文件都是PDF格式,网上的各类书籍多为此格式。有时候不方便阅读,或者怕费眼睛伤颈椎,那么有没
- 前言在使用echarts绘图时可能遇到一些特别的需求,如,当x周表示日期且数据较多(如三个月,按天统计),此时如果按照echarts的默认配
- 关于Markdown在刚才的导语里提到,Markdown 是一种用来写作的轻量级「标记语言」,它用简洁的语法代替排版,而不像一般我们用的字处
- 本文实例讲述了Python tkinter模块弹出窗口及传值回到主窗口操作。分享给大家供大家参考,具体如下:有些时候,我们需要使用弹出窗口,
- 前言:《flappy bird》是一款由来自越南的独立游戏开发者Dong Nguyen所开发的作品,游戏于2013年5月24日上线,并在20
- 首先centos7 已经不支持mysql,因为收费了你懂得,所以内部集成了mariadb,而安装mysql的话会和mariadb的文件冲突,
- 一、逻辑回归1.模型的保存与加载模型训练好之后,可以直接保存,需要用到joblib库。保存的时候是pkl格式,二进制,通过dump方法保存。
- where条件表达式--统计函数Select count(1) from student;--like模糊查询--统计班上姓张的人数sele
- python爬虫写起来非常快,虽然也可以用java,但是没有python来的简
- 前段时间做视频时需要演示电脑端的操作,因此要用到屏幕录制,下载了个迅捷屏幕录制,但是没有vip录制的视频有水印且只能录制二分钟,于是鄙人想了
- 如果有空格就用%20代替,如果有其它字符就用%ASCII代替,如果有汉字等四个字节的字符,就用两个%ASCII来代替。不过有时候我们也需要将
- “重构”的春风吹遍大江南北,互联网一时间风声鹤唳,“div+CSS”俨然已成为一种“时尚”,难以尽数的网站都不约而同地开始了自己的“重构”。