相对了CI2,新版本有了较多的变化,如果有疑问请留言提出。
首先下载CI框架文件,你可以选择CodeIgniter官网下载,或者用Github下载,当然你也可以使用npm或者composer进行下载。
CI3的目录结构并没有太大改变,你可以根据需求将不必要的英文文档,版权协议声明删除。考虑到安全性你也可以根据官方文档将应用程序目录改成
app/
。在
controllers/
目录下添加Home.php
文件,将默认的welcome
控制器修改为Home
控制器,只需修改config/routes.php
中default_controller
的值为Home
。这里我根据PSR规范将控制器文件名首字母大写,这一点和CI官方文档建议不同,推荐使用PSR这种写法。由于网站前后台均使用CI3混编,不使用模板引擎,为了防止前台控制器和后台控制器混淆,我们一般在
controllers/
目录下新建index/
和home
目录分别放入前后台控制器。可是这种设置子目录控制器为默认控制器的方法在CI3中会报错找不到资源文件(不推荐修改源码达到效果
)。在此我推荐所有后台控制器添加前缀,比如我就喜欢添加Ex前缀,ExBook,ExUser,ExOption等等。载入模版默认后缀为
.php
,可以省略为$this->load->view('admin/index')
。如果要载入其他文件,则不能省略,如$this->load->view('admin/header.html')
。给视图模板传递数据时候,如果传递了
$data['title','name']
($this->load->view('index', $data)
),那么只需要在视图文件中使用键名输出即可,如echo $title,$name;
。向单个模板文件传递的变量同时也可以在其他模板文件中获取该变量。在CI中使用远程php语句遍历输出
$students['name']
时,使用三行语句。
<?php foreach ($name as $v): ?>
<span> <?php echo $v ?> </span>
<?php endforeach ?>
CI中的辅助函数有两处,分别位于
application/helpers
和system/helpers
中,前者的优先级要高于后者(前者会覆盖重写后者)。载入辅助函数的方法可以在控制器中手动载入,如$this->load->helper('getnames')
。也可以打开application/config/autoload.php
文件,填写自动加载辅助函数,如$autoload['helper'] = array('getnames')
。通常我们会使用系统辅助函数url
和file
。载入URL辅助函数后,我们就可以使用
site_url()
,base_url()
和redirect()
三个重要函数了。第一个用于获得url参数段路径(不带参数的路径,主要用来访问不同控制器的不同方法),第二个用于拼接字符串家在外部样式和js文件,第三个用于跳转,且网页URL自动改变。在一些AOP切面编程中常常讲到设置拦截器其实就是书写自己的函数,使其自动加载拦截过滤部分信息。在CI中如何拓展自己的常用函数呢?你只需要将函数放入
system/core/Common.php
中即可,请按照该文件中的写法先判断该函数是否存在。例如将print_r
和<pre>
合并后重命名为p函数。下面以一个正常的企业网站为例,首先准备好前后端静态模板,下载好CI框架,修改
config
前台默认控制器为Home,手动规定控制器文件首字母大写,添加自动加载url
辅助函数,封装debug打印函数p,规定后台控制器以Ex为前缀,构思后台首页包含登陆时间
,登陆点IP
,服务器信息
,服务器环境
,PHP版本
,服务器信息
,数据库版本
,数据库状态
等等。
CodeIgniter学习笔记持续记录中......