码迷,mamicode.com
首页 > 其他好文 > 详细

CI框架

时间:2017-08-28 19:54:50      阅读:229      评论:0      收藏:0      [点我收藏+]

标签:数组   add   es2017   localhost   函数   技术分享   lin   使用   注意   

.CI介绍

小巧,快速,

天下武功,无坚不破,唯快不破。

Ci还是很受欢迎的。

学习CI还有一个好处,相比其他的一些php框架,更容易掌握。(源码和思想)

.CI快速入门

1.获取与安装

直接上官网下载http://codeigniter.org.cn/ 

将下载好的文件解压打网站根目录,

 技术分享

 

 

在页面中直接访问,输入如http://localhost/citest

 技术分享

 

 

看到此界面,表示安装成功。So easy

2.定义自己的控制器和视图

在编写代码之前,要明确,我们的代码写在什么地方?

 技术分享

 

 

其中user_guide 一般会将其删除

 

重点来关注application文件夹

 技术分享

 

1)控制器

控制器说白了就是一个类文件,并且要继承自CI_Controller,此时我们可以借鉴ci自己提供的welcome.php文件。

 

 

关于命名规范的问题,如果我们使用别人的框架,尽量要遵守别人制定的规范,正所谓入乡随俗。

  • 类名的首字母应该大写。如果名称由多个词组成,词之间要用下划线分隔。
  • 类中所有其他方法的名称应该完全小,多个单词之间使用下划线。
  • 类文件名使用小写,名字和类名一致。

 

定义hello控制器,有一个方法,index

 技术分享

 

 

访问:涉及到ciurl模式

Ci支持的url模式默认为pathinfo形式,也就是使用/隔开。

http://localhost/citest/index.php/hello/index

 

其中http://localhost/citest/index.php/ 是固定的,表示的就是入口文件

 

而后面的hello则表示控制器,index表示是控制器中的方法。

2)视图的定义

视图,说白了就是模板文件,可以是html页面,也可以php文件,使用什么后缀并不重要。ci默认后缀是.php,如果模板是php文件,那么后缀不需要写,如果是其他后缀,必须写上后缀,如.html

视图文件应该放在view文件夹中

 技术分享

 

 

 

3)在控制器中调用视图

使用$this->load->view(视图名)即可 【是.html文件,需要带上后缀】

 技术分享

 

 

上面的操作只是简单的将html页面展示出来,而实际上是经常 需要在控制器中获得数据,然后分配到视图当中。使用load->view方法的第二个参数分配数据即可。

 技术分享

然后在视图页面,输出数据。

 技术分享

Ci框架中,模板语法是怎样的?

CI使用的原生的php语法,效率高。

在视图中,直接使用$title输出,而不是$data[‘title’],需要注意,CI它使用了一个extract函数,将数组变量导入到当前的符号表,所以直接使用键名作为变量来访问。

3.必须清楚的几个概念

1)框架开发和二次开发

打个比方:买房子

买二手房,直接拎包入住。   好比是二次开发,dedecmsphpcmsechsop

买毛坯房,不能住人,自己去买各种装修材料,请人装修,才能入住。好比是框架开发,只提供了基础功能和项目结构。

 

CI是框架,用于框架开发。

2MVC

Mmodel模型,一般是直接操作数据库的

Vview视图,一般指的是模板文件,比如html页面,用于展示数据的

Ccontroller,控制器,扮演了交通警察的角色,接收请求,然后调用相应的模型来完成工作,获取数据,最后分配到视图。

 

CI框架也是一个基于MVC的框架。使用CI框架进行开发的时候,大部分工作就是在MVC这块。

.MVC完整案例

使用mvc来完成一个新闻的一组操作----增删改查。

1.准备工作

书写一个news控制器,

 技术分享

 

 

设计一张表

 技术分享

 

 

Ci操作数据库

1) 数据库相关配置,在config/database.php

 技术分享

 

 

2) 连接数据库

Ci提供了专门的数据库操作类,只需要加载该类即可。

有两种方式:

手动载入,在需要使用数据库操作类的地方,使用$this->load->database()即可,比如在模型中载入。

 

自动载入,在config/autoload.php配置文件中,autoload[‘libraries‘] 加入database即可。

 技术分享

 

3) 操作

定义news模型【在模型中连接数据库,在控制器中加载模型】

Model_name 是模型类的名字。 类名的首字母必须大写,其他字母小写。

文件名应该是模型类名一致。

 技术分享

 技术分享

 

 

 

 

如何使用数据库操作类进行操作呢?

当我们连接了数据库之后,可以使用 $this->db 来操作数据,最常用的一个方法就是$this-db->query(sql语句)

 

如果直接使用query,是比较麻烦的。每次还得自己来拼凑sql语句,我们更希望有一个能够完成自动增删改查的这么一个功能,CI中也提供了这么一个类,这个类就是active recored类,也叫AR。最基础的一组操作,如下:

  • $this->db->get();
  • $this->db->insert();
  • $this->db->update();
  • $this->db->delete();

2.完成添加新闻

news_model中定义add_news方法完成添加操作

技术分享

 

在控制器中,接收表单提交的数据,然后调用模型来完成对数据库的操作。

 

先解决一个问题,就是在视图中,表单的action的值该如何来写?

 技术分享

 

 

这就涉及到CI的辅助函数 url 函数,

配置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 方法完成 插入操作

 技术分享

 

3.完成新闻的读取

news_model模型中,定义一个方法,获取数据

 技术分享

 

 

然后在news控制器中,定义一个方法index,调用模型的中的方法,获取新闻,然后分配到视图

 技术分享

 这部分需要自己组合,传键给模板

 

在视图文件 list.html中,展示新闻列表,使用的是php的原生模板语法

 技术分享

 

 

在浏览器中,输入http://localhost/citest/index.php/news/index

结果如下:

 技术分享

 

CI框架

标签:数组   add   es2017   localhost   函数   技术分享   lin   使用   注意   

原文地址:http://www.cnblogs.com/wangyuming/p/7442098.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!