CI框架学习笔记第一天
来源:互联网 发布:数据库系统概论 王珊 编辑:程序博客网 时间:2024/06/06 02:56
此文章为自己书写,在Word上做的笔记,然后拷贝到这上边的,无任何抄袭。另外若是程序有任何问题可以评论,也可私信我。
若是想看整个学习笔记代码和数据库可点击此处(包含个人书写的项目代码及数据库文件)。
学习目标
使用CI框架开发商城(前台和后台)。
CI简单介绍
小巧,快速。相对于学习其他框架,更容易掌握。
CI快速入门
获取与安装:
在官网下载:http://codeigniter.org.cn/
将下载好的文件解压到工程目录下:
直接访问:http://localhost/citest/
看到此界面表示安装成功。
定义自己的视图和控制器:
其中user_guide文件夹删除.
重点关注application文件夹
控制器说白了就是一个类文件,并要继承CI_Controller,此时我们要借鉴ci自己提供的welcome.php文件。
关于命名规范的问题,如果我们使用别人的框架,尽量要遵守别人制定的规范:
类名的首字母应该大写,如果名称由多个词组成,词之间用下划线分开。
类中所有其他方法的名字小写,多个单词之间用下划线。
类文件名使用小写
定义hello控制器,有一个方法,index
访问:涉及到ci的url模式
CI默认支持的url模式是pathinfo形式,也就是使用/隔开。
例如:http://localhost/citest/index.php/hello/index
其中http://localhost/citest/index.php/是固定的,代表入口文件,而后面的hello表示是控制器,index表示的是控制器中的方法。
在控制器中必须加入这一句:
defined(‘BASEPATH’) or exit(‘No direct script access allowed’);
这句话的作用是:为了防止跨站攻击,直接通过访问文件路径用的
视图文件应该放在view目录下:
在控制器中调用视图。
使用$this->load->view(“视图名”);即可。
上面的操作只是简单的将html页面展示出来。而实际上是在控制器中经常获得数据传送到视图当中。使用load->view方法的第二个参数分配数据即可。
在视图中进行调用。
在CI框架中,模板语法是什么样的?CI使用的是原生的PHP语法,效率高。
在视图中直接使用
必须清楚的几个概念
框架开发和二次开发打个比方:买房子买二手房,直接拎包入住。好比是二次开发,dedecms、phpcms、echshop买新房,一开始不能住人,自己去买各种专修材料进行装修,才能入住。好比是框架开发,只提供了基础的功能。CI是框架,用于框架开发。MVCM:model模型,一般是直接操作数据库的V:view模型,一般是指模版文件,比如html页面,用于展示数据的C:controller,控制器,扮演了交通警察的身份,接受请求,然后调用相应的模型来完成工作,获取数据,最后分配到视图。CI框架也是一个MVC框架。使用CI框架开发时,大部分工作就是在MVC这部分。
MVC完整案例
使用mvc完成新闻的一组增删改查操作。书写一个news控制器。
CI操作数据库
1、数据库相关配置,在config/database.php
2、连接数据库CI提供了专门的数据库操作类,有两种方式,只需要加载该类即可。手动载入:在需要使用数据库操作类的地方,使用$this->load->database()即可,比如在模型中载入。自动载入:在config下面的autoload.php的配置文件中,$autoload['libraries'] = array(‘database’);即可。
3、操作定义news模型定义Model时的书写规范:Model_name是模型类的名字。类名的首字母必须大写,其他字母小写。文件名是类名的小写版。
如何使用数据库操作类进行操作呢?
当我们连接了数据库之后,可以使用
如果直接使用query方法,是比较麻烦的。每次还得自己来拼凑sql语句,更希望有一个能够自动完成增删改查的功能的方法。CI中也提供了一个类叫做active record,也叫AR。最基础的一组操作如下:
完成添加新闻
在news_model中定义add_news方法完成添加操作。
在控制器中,接收表单提交的数据然后调用model里面的添加方法完成添加操作。
先解决一个问题,在视图中表单的action的值该如何来写。
这里涉及到CI的辅助函数,
配置base_url,如下:
默认情况下,url辅助函数是没有加载的,要使用,则需要加载,可以在配置文件中,配置自动加载,也可以在需要使用的地方手动加载。
自动加载配置:
url辅助函数中,提供了base_url()和site_url()方法。
其中,base_url的值是在config中配置的base_url的值,如http://localhost/citest/
而site_url的值则是base_url+index_page,如http://localhost/citest/index.php
所以,在视图中要定义控制器的某个动作(url),使用site_url
在控制器中定义insert方法完成插入操作
完成新闻的读取
在news_model中定义一个方法来获取数据
在news控制器中定义一个方法index,调用模型中的方法获取新闻数据,然后将数据分配到视图。
CI的执行流程
思考题:
1、默认的welcome页面是怎么显示的?
2、
CI是一个单入口的框架,所有的请求都需要经过index.php文件。
大致的流程如下:
分析index.php文件
这个和我们的文件夹结构名称一一对应,可以更改。如果更改了,只需要将在此处修改一下名称与文件夹名字相同即可。
最后载入codeIgniter.php文件。
分析codeIgniter.php
首先载入通用函数库。
载入配置文件(常量配置)
载入核心类
初始化Benchmark类
初始化钩子类
初始化配置类
初始化字符编码类
初始化uri路径类
初始化路由类
初始化输出类
初始化安全类
初始化输入类
初始化语言包类
载入ci的总控制器
通过router对象$RTR的两个方法获取当前的类名和方法名
比如,输入的是http://localhost/citest/index/welcome/index,那么上述代码获取的
这里new了一个对象,叫做CI,这是CI框架中的超级对象。
new的时候做了些什么?
分析CI_Controller.php
采用单例模式创建controller对象。
将前面载入的核心类,作为CI对象的属性。
然后载入Loader.php类。
在控制器中出现的
超级对象生成后,我们就可以使用超级对象提供的一系列方法完成我们的业务逻辑,如果要完成其他功能,可以载入其他的类文件,辅助函数,这些类文件和辅助函数包括CI已经提供好的,也可以是自己定义的。
- CI框架学习笔记第一天
- CI框架学习笔记第三天
- CI框架学习笔记第五天
- ci框架学习笔记
- CI框架学习笔记
- TP框架学习笔记第一天
- 学习笔记 Bootstrap 第一天--UI框架
- CI学习 CCNET Config 第一天
- 第一天学CI
- 第一天学习笔记
- 第一天学习笔记
- 学习笔记第一天
- Yii框架学习笔记(第一天)-执行流程
- YII框架学习 第一天
- struts2框架学习第一天
- Slim 框架学习,第一天
- CI框架学习笔记(一)
- PHP框架CI 学习笔记<一>
- 图论中的二分
- 在ubuntu16.04中安装Node
- Pycharm 2017.1 激活服务器
- **libaio.so.1: cannot open shared object file解决方法**
- 浅谈机器学习步骤
- CI框架学习笔记第一天
- linux | 下载文件
- MySql5.6 Window安装教程
- 斯坦福机器学习笔记五
- [IDEA]习惯用的idea快捷方法
- 强化学习学习笔记——介绍强化学习(reinforcement learning)
- Servlet知识点大纲
- swoole转载文章
- Python in kaggle