设为首页 收藏本站
查看: 1319|回复: 0

[经验分享] PHP开发框架--CodeIgniter(CI)使用总结

[复制链接]

尚未签到

发表于 2015-11-17 14:37:12 | 显示全部楼层 |阅读模式
  转自:http://blog.sina.com.cn/s/blog_7b60d05f0101tl9h.html
  在开发的时候框架是十分重要的,目前有很多框架,WPF中比较出名的MVVM等,这些都是用来组织开发文件的,就是把一个应用分开来写。下面总结一下CI框架的用法。

CI框架是基于MVC的,分别是

  •   Models:模型,用来摆放实体类,工具类,数据库访问类等,属于后台的数据支持与类型支持。

  •   Controls:控制器,当做一个交警的作用,就是控制内部数据和外部界面的协调,所以这个是在M和V中间做调节作用了,竟然是调节作用,那么就需要掌握一些东西:怎么和M交流,怎么和V交流,还有用户是怎么和自己交流呢。这些都是比较核心,比较重要的东西,下面会总结。

  •   Views:视图,这个就是界面了,反馈给用户操作的界面了,主要用html来写,这个大家懂了。

  下面分几步来介绍和总结CI的使用:

1、准备工作。

2、文件介绍。

3、M、C、V之间的通讯方式。
  (一)下载,地址http://codeigniter.org.cn/下载完成就是应用程序的框架了,然后放在服务器www文件底下,看一下文件PHP开发框架,如下图:

DSC0000.jpg

(二)然后有两个文件夹,一个是Application,这个是应用程序文件放的地方,进去里面看一下:

DSC0001.jpg

PHP开发框架–CodeIgniter(CI)使用总结这里可以看到MVC了,controllers,models,views分别放各自的文件,然后有一个config文件夹,用来装配置文件的。

返回去system文件夹里面就是存在开发这个框架的团队写的一些使用类,我们不用去修改,可以直接用。十分简单,,十分明了。

(三)这里就是重点了,在学会用一个框架的时候,框架之间的元素的通信方式必须要清楚,这样就能开搞。先说一下CI框架的思想,用户是通过访问一个controller中的方法来访问一个页面的,所以这个controller就起着十分重要的角色了,上面说过它是交通警察,负责监视内部数据变化和反馈界面,接受界面信息反馈内部数据等作用。
  下面说几个主要的通讯:
  1.用户与controller的通讯,竟然用户是通过访问C中的方法来访问页面,那么用户与方法的通讯就通过参数来了,用户能在URL中直接写参数,按顺序,例如http://localhost/CI/index.php/hello/sayhello/Jarvin/Afternoon

这里就访问hello这个controller中的sayhello方法,看方法:

DSC0002.jpg

PHP开发框架–CodeIgniter(CI)使用总结

我看这样就明了了,第一个参数Jarvin第二个参数Afternoon.
  2.controller与View的通讯,虽然说能混编html来进行界面表述,但是竟然是用mvc那么就要分开,分到View里面,在Views文件夹里面写好html文件,这些文件能是完整的全页面html也能是部分html,例如说头部,身部,尾部等。写好以后就通过Controller来引用Views中的view来展示东西了。,竟然能在Controller中引用界面文件,那么怎么调用,这个是重要的:

$this->load->view(“text_view.php”);在函数里面加上这句就是引用一个views中的文件了。如果想调用多个,例如要一次把头,身,尾调用进去,那么直接在下面添加多两条一样的,改个名称就OK,还要一个重要的是Controller怎么跟view通讯呢???答案是利用数组,然后在第一个引用后面传入数组.下面看例子:

function show()
{
$name="Jarvin";
$count=1;
$data= array('Name'=>$name,'num'=>$count);  
$this->load->view("text_view.php",$data);//调用一个视图
}
  这样传过去,然后那边怎么接呢,如下图:

DSC0003.jpg
  3.Controller与model的通讯.

用来提交给view的数据很多时候不是写死的,那么动态数据就要用到数据库,那么久要用到Model了。,下面总结一下制作一个Model类进行对数据库进行增删改除。

其实啊,Controller调用Model类中的函数,然后传入参数进行通信,形式与C和V通讯差不多。
  首先是新建一个模型类,新建一个模型类的模型是:


class ClassName extends CI_Model//注意要继承CI_Model类
{
function __construct()
{
parent::__construct();//构造函数里面要调用父类的构造方法
$this->load->database();//加载数据库,数据库名称在Config文件里面配置。,还有其他信息,例如密码等
}
//下面写函数。
}
  下面给出测试model类:


<?php
class Test_m extends CI_Model
{
function __construct()
{
parent::__construct();
$this->load->database();
}
function user_insert($arr)
{
$this->db->insert("person",$arr);
}
function user_update($name,$arr)
{
$this->db->where("Name",$name);
$this->db->update("person",$arr);
}
function user_delete($name)
{
$this->db->where("Name",$name);
$this->db->delete("person");
}
function user_select($name)
{
$this->db->where("Name",$name);
$this->db->select("*");
$query=  $this->db->get("person");
return $query->result();
}
}
?>
  然后在controllers里面新建一个controller,来使用这个模型类的功能:


<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class User extends CI_Controller
{//继承是必须的!!
function insert()
{
$this->load->model('Test_m');
$arr=array('Name'=>'fff','Age'=>21);
$this->Test_m->user_insert($arr);
}
function update()
{
$this->load->model('Test_m');
$arr=array('Name'=>'gg','Age'=>12);
$this->Test_m->user_update('J',$arr);
}
function delete()
{
$this->load->model('Test_m');
$this->Test_m->user_delete("Ken");
}
function  select()
{
$this->load->model('Test_m');
var_dump($this->Test_m->user_select("ggg"));
}
}
?>
  OK了,研究下就好。十分简单

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-140394-1-1.html 上篇帖子: PHP编程:.htaccess配置文件实现伪静态 下篇帖子: php编程之正则表达式
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表