CI框架学习笔记(一) - 环境安装、基本术语和框

建站知识 2025-04-16 18:01www.168986.cn长沙网站建设

本文将作为CI框架学习笔记的第一部分呈现给读者。本篇主要了CI框架的环境安装和基本术语概念,包括前端控制器、应用程序控制器、MVC模式、路由、Hook钩子和CI框架的配置等。

一开始,我想谈谈自己的经历。当我初次接触CI框架时,我曾计划写一系列关于CI源码阅读的笔记,但由于种种原因未能实现。最近由于项目较少,我有了足够的时间来整理和总结过去的笔记和经验。这不仅是对自己学习成果的回顾,也是对未来学习的鞭策。我深知,只有不断学习、不断积累,才能不断进步。

接下来,让我们来了解一下本文涉及的一些基本术语。

前端控制器是集中控制用户所有请求的组件,将用户请求转发到具体的应用程序控制器。在CI框架中,入口文件Index.php就扮演了前端控制器的角色。它将用户的请求分发给对应的应用程序控制器进行处理。前端控制器是一种常见的设计模式,可以帮助我们更好地组织和管理代码。

应用程序控制器是处理用户请求URL的控制器。通常,我们将一组相关的处理或请求放在一个应用程序控制器中。例如,UserController可能包含用户的注册、验证、个人信息管理等功能。

MVC模式是一种代码分层和组织的方式,将代码分为模型(M)、视图(V)和控制器(C)三个层次。这种模式的优点在于,它将业务逻辑和视图渲染分离,降低了代码的耦合性,提高了代码的可维护性。目前,许多PHP框架都基于MVC模式,如ZF、YII和CI等。

路由是指截取用户请求并转发到特定控制器处理的过程。在CI框架中,路由的配置非常重要。通过合理配置路由,我们可以实现更加友好的URL,提高用户体验。

Hook钩子是一种在不改变框架核心源码的基础上增加或更改系统核心功能的方式。在CI框架中,Hook可以用于在控制器加载前后运行特定的脚本,从而实现一些特殊的功能。

接下来,我们来看一下CI框架的环境安装和配置。本文以Linux x86_64 GNU/Linux环境为例,安装了PHP(CGI)、Nginx、Mysql和redis。下载CI框架的源码后,需要解压到指定的目录(假设为/usr/nginx/html/CI目录)。

在配置CI框架之前,我们需要了解框架的目录结构。其中,Application目录是应用程序的目录,所有的应用代码都应该放在这里;index.php是框架的入口文件;Static目录用于存放CSS、image和js等静态文件;System目录是CI框架的系统文件,也是源码阅读的主要部分;User Guide是用户指导,类似于离线的用户手册。

在配置CI框架时,我们需要关注两个方面:一是配置routes,二是配置数据库。在Routes.php中,我们配置默认的应用程序控制器和404页面。打开application/config/routes.php文件,配置默认控制器为"index"。我们还需要配置数据库以支持动态内容。打开application/config/database.php文件,配置数据库连接信息。CI框架支持多数据流连接,default是当前默认的连接,active_record用于指定是否启用ARM(Active Record Model)。

相信读者对CI框架有了更深入的了解。在接下来的学习中,我们将深入CI框架的源码阅读和应用开发实践。每个配置项简洁明了,这里不再赘述。接下来,我们深入如何去掉URL中的index.php。

当你访问应用程序时,URL可能看起来像这样:test.xq./index.php/index 或 test.xq./index.php/wele。对于许多开发者来说,去掉index.php可以使URL更加简洁、美观。为了实现这一目标,我们需要进行以下配置:

打开新添加的test.xq..conf文件,在server部分添加以下配置:

```bash

if ($request_filename !~ /(favicon.ico|static|uploads|js|javascript|css|images|robots\.txt|index\.php|index\.html)) {

rewrite ^/(.)$ /index.php?$1 last;

}

```

重启服务器后,你会发现URL的访问方式已经变成了 test.xq./index 或 test.xq./wele,看上去更加简洁了。

接下来,如果你想在URL中添加特定的后缀,例如.html,可以在application/config/config.php中进行配置。将以下配置添加到文件中:

```php

$config['url_suffix'] = '.html';

```

CI框架提供了许多其他配置选项,你可以根据需要进行调整。为了更好地访问你的应用程序(使用域名访问比使用IP地址更易于记忆),你可以配置vhost。进入nginx的vhost目录,新建配置文件(在此为test.xq..conf)。在配置文件中添加以下内容:

```nginx

server {

listen 80;

server_name test.xq.;

root /usr/nginx/html/CI/;

aess_log logs/xq_aess_log main;

error_log logs/testsq.log error;

charset GBK;

index index.php;

location ~ \.\.(php|php5)?$ {

include fastcgi_params;

fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

fastcgi_pass 127.0.0.1:9000;

}

}

```

在你的本地host文件中添加相应的条目,使得你可以通过域名访问CI框架。例如:10.130.130.130 test.xq.。这样设置后,只需在浏览器中键入域名即可访问你的CI框架。

让我们回顾一下CI框架的基本流程。CI框架的执行流程始于Index.php这个前端控制器。它初始化框架所需的所有资源,加载应用程序的基本配置,并接收所有用户的请求。通过Route路由用户的请求后,如果缓存文件存在,它会绕过常规的执行顺序直接发送到客户端。接着进行Security数据过滤,加载数据库驱动、类库、业务逻辑类等资源,处理用户的请求并将视图发送到客户端。如果启用了缓存,视图会被缓存以用于后续请求。整个流程贯穿了源码阅读的始终,因此非常值得我们深入研究和理解。

Copyright © 2016-2025 www.168986.cn 狼蚁网络 版权所有 Power by