时间:2020-12-28 编辑:
首先,我们来谈谈CI框架的部署和配置。对于CI而言,基本的部署仅仅需要通过下载官方压缩包,并解压至本地服务器根目录即可。而基本的配置信息,也就是application/config/database.php中,需要填写的服务器地址,用户名密码等基本信息。完成以上步骤,直接访问服务器地址即可见到亲爱的火镰标志了。
配置如下
'hostname' => 'localhost',//主机名,如127.0.0.1 'username' => 'root',//用户名 'password' => 'password',//用户密码 'database' => 'db_test', //目标数据库名
当完成基础配置后,接下来就是了解MVC的基本结构。众所周知,Controller即C层,为MVC结构的核心,通过Controller可加载Model数据和View页面;此处,我们将Controller中函数分为两种:View函数和Action函数。
View函数基本结构为:
public function testView() { $data = array();//需要传入view的数据 $this->load->view("test/index",$data); //声明需要加载的页面为test文件夹中的index.php,并传入数据 }
Action函数基本结构为:
public function testAction() { $data = $this->input->post();//接收post过来的信息 $res= $this->test_model->getTest($data);//调用model,返回数据 echo json_encode($res);//以json格式返回响应 }
基本上两种函数可满足控制器的绝大部分职能,配合附属函数,例如protected属性的一些过滤器(filter)之类。
在Controller中存在两种思路,一种为通过Controller进行业务逻辑的处理,将逻辑全部集成在Controller中。这种模式的好处在于,可通过调用不同model的方式,使得不同模块间数据可互通,提升了灵活性;缺点在于耦合性太高,存在的依赖太多,对代码的修改提出了挑战;
第二种为将业务逻辑全部集成在model中,每个Action函数对应一个model函数,将参数全部通过调用model进行处理,该模式优点在于耦合性低,提升了模块集成程度,缺点在于某些情况下,如需要调用其他表数据时,对可能出现的跨model调用函数的情况,处理起来就力不从心了。本人习惯于第二种方式,将某些可能出现的跨model调用函数集成于一个model文件中,其他model通过继承的方式来调用这些公有函数。