宝哥软件园

CI框架学习笔记(1)——环境安装、基本术语和框架流程

编辑:宝哥软件园 来源:互联网 时间:2021-09-09

刚开始使用CI框架的时候,打算写一系列阅读CI源代码的笔记。可惜,我没有采取任何行动。最近项目不多,终于有时间写点东西了。所以我准备记录一些之前的笔记和经历。一方面,我有权做备忘录。另一方面,我总是提醒自己,学习和借鉴可以找到出路。忘记过去意味着背叛!基本术语描述

在本文开始之前,有必要简单解释一下本文中反复出现的术语。如果你已经熟悉这部分,可以跳过。本文中反复出现和提到的术语包括:

前控制器(前控制器):

用于集中控制所有用户请求并将用户请求发送到特定应用程序控制器的组件。在CI框架中,它指的是框架的入口文件Index.php。前端控制器本身就是一种设计模式。详见《J2EE设计模式》。

应用程序控制器

应用程序控制器是处理用户请求URL的特定控制器,它通常将一组相关的进程或请求放在应用程序控制器中。例如,用户控制器可以包括用户注册、认证、个人信息、个人页面和其他相关操作。

手动音量调节

一个常见的术语是代码分层和组织模型。代码分为M(Model,business logic)、V(view)、C(Controller,Controller)等级别,便于将业务逻辑部分与视图渲染部分分离,减少代码之间的耦合。目前PHP中的很多框架都是基于MVC模式的,比如ZF、YII、CI等等

路线路线

虽然叫Route,但这里不是路由器,而是指截取用户请求转发到特定Controller进行处理的过程。不同的框架有不同的路线,但基本原理是一样的。

钩钩

原来的Hook指的是“消息传输中的一个环节,用于监控消息传输,在消息处理之前增加特定的处理”。这里的Hook是指在不改变框架核心源代码的情况下,增加或改变系统的核心功能。最典型的情况包括:在加载控制器之前或之后运行特定的脚本。

配置项框架配置

本文的基本环境:Linux x86_64 GNU/Linux。安装了PHP(CGI) Nginx Mysql redis(所以本文很多服务器相关配置主要是Nginx,而Apache服务器暂时忽略)。

首先,下载CI框架的源代码。下载地址是:http://codeigniter.org.cn/downloads's目前稳定的版本是2.2.0。将源代码解压到一个文件夹中(假设/usr/nginx/html/CI目录)。

在配置配置项框架之前,浏览框架的目录结构:

其中:

应用程序:应用程序目录,您所有的应用程序代码应该位于该目录中

index.php :框架入境文件

Static :我们自己的目录,放一些静态的文件比如CSS,image和js(这个可以放在应用程序目录,具体看个人喜好)

系统: CI框架的系统文件也是源代码阅读的主要部分

User_guide :用户指南,类似于离线用户手册。

配置项框架需要较少的配置:

1.配置路由

默认应用控制器和页面404是在Routes.php配置的。打开application/config/routes.php文件,并按如下方式进行配置:

$ route[' default _ controller ']=' index ';$ route[' 404 _ override ']=' ';2.配置database.php数据库

如果您的应用程序需要提供动态内容,那么数据库几乎是必不可少的配置。打开应用程序/config/database.php文件,如下所示:

CI框架支持多数据流连接,默认为当前默认连接,active_record用于指定是否启用ARM(活动记录模型)。每个配置项都非常简洁,这里不再赘述。

3.移除index.php

要立即访问您的应用程序,url应该如下所示:

Test.xq.com/index.php/indextest.xq.com/index.php/welcome指出,每一项请求都将有一个index.php部分。拆除index.php将使URI更加美丽。

打开刚刚添加的test.xq.com.conf文件,在服务器中添加以下配置:

if ($request_filename!~ */(fav icon . ico | static | uploads | js | JavaScript | CSS | images | robots 。txt |索引。php |索引。{重写^/(.*)$ /index.php?最后一个$ 1;}重新启动服务器后,网址访问模式更改为:

test.xq.com/indextest.xq.com/welcome比:D简单多了吗

4.添加。html访问后缀

可能还有其他人喜欢给网址添加特定的后缀。例如。html后缀使您的应用程序更类似于一系列静态文件。配置方法是在application/config/config.php中更改以下配置:

$ config[' URL _后缀']='。html ';关于配置项框架的更多配置,请参考:

使Nginx支持。htaccess(没有提到用重写。本文中的htaccess,所以可以参考一下)。http://www.php100.com/html/program/nginx/2013/0905/5537.htmlci框架集成了Smarty。习惯了使用smarty模板引擎的童鞋可以看http://www.kankanews.com/ICkengine/archives/70302.shtml配置的Vhost

为了方便访问(域名访问比ip地址访问有更好的内存),我们可以通过进入nginx的vhost目录并创建一个新的配置文件来配置vhost(本文中的test.xq.com.conf,通常每个vhost都会以一个域名命名)。在配置文件中输入以下内容:

服务器{ listen 80服务器名test.xq.com;root/usr/nginx/html/CI/;access _ log log/xq _ access _ log main;error_log logs/testsq.log错误;夏塞特GBK;index.php指数;位置~。*.(php|php5)?$ { include fastcgi _ paramsfastcgi _ param SCRIPT _ FILENAME $ document _ root $ fastcgi _ SCRIPT _ name;fastcgi _ pass 127 . 0 . 0 . 1:9000;}}目前在} }服务器中没有其他重写配置。稍后,在配置配置项框架时,我们可以添加更多的配置类来支持配置项友好的URL。

打开本地主机文件并在主机中添加一个条目:

10.130.130.130 test.xq.com,其中10 . 130 . 130 . 130应该是您的服务器的IP地址。

现在,可以通过浏览器中的域名访问CI框架。

框架流程

在结束这篇文章之前,我们先来看看CI框架的基本流程,它将贯穿源代码阅读的整个过程,所以有必要仔细研究一下。请参考配置项框架用户手册上的流程图:

基本实施流程如下:

Index.php是前端控制器,它初始化框架所需的所有资源,加载应用程序的基本配置,接收所有用户的请求,并通过route路由用户请求。如果缓存文件存在,它将绕过通常的执行顺序,直接发送给客户端。安全数据过滤。这是在加载应用程序控制器之前。应用程序控制器加载数据库驱动程序、类库、业务逻辑类和其他可能的资源,处理用户的请求视图并将其发送给客户端。如果打开缓存,视图将被缓存以供以后请求。

更多资讯
游戏推荐
更多+