Codeigniter 3 入门

发布日期:2026-07-11 12:10:07   来源 : 杭州电子商务研究院    浏览量 :19
杭州电子商务研究院 发布日期:2026-07-11 12:10:07  
19

什么是 CodeIgniter?

CodeIgniter 是一个功能强大且占用空间非常小的 PHP 框架,专为需要简单而优雅的工具包来创建功能齐全的 Web 应用程序的开发人员而构建。

CodeIgniter 适合谁?

如果您符合以下条件,CodeIgniter 就适合您:

  • 您需要一个占用空间较小的框架。
  • 您需要出色的表现。
  • 您需要与运行各种 PHP 版本和配置的标准托管帐户具有广泛的兼容性。
  • 您需要一个几乎不需要配置的框架。
  • 您不想依赖命令行。
  • 您需要一个不会对您的编码方式施加限制的框架。
  • 您不需要像 PEAR 这样的大型库。
  • 您不想学习模板语言(尽管如果您需要的话,也可以选择使用模板解析器)。
  • 您需要清晰、详尽的文档。

CodeIgniter 设置

  1. 从codeigniter.com下载 CodeIgniter
  2. 解压缩文件夹。
  3. 如果您使用 Wampserver,则复制www 文件夹中的文件夹;如果您使用Xampp,则复制htdocs文件夹中的文件夹。

应用程序架构

  • index.php作为前端控制器,初始化运行 CodeIgniter 所需的基础资源。
  • 路由器检查每个 HTTP 请求以确定应该对其执行什么操作。
  • 如果存在缓存文件,则请求将直接发送到浏览器,绕过正常的系统执行。
  • 在应用程序控制器加载之前,HTTP 请求和任何用户提交的数据都会经过安全过滤。
  • 应用程序控制器加载模型、核心库、助手程序以及处理特定请求所需的任何其他资源。
  • 最终的视图被渲染并发送到 Web 浏览器以供查看。如果启用了缓存,则首先缓存该视图,以便在后续请求中提供该视图。

模型-视图-控制器 (MVC) 基础知识

CodeIgniter 基于模型-视图-控制器开发模式。MVC 是一种将应用程序逻辑与表示分离的软件方法。实际上,它允许您的网页包含最少的脚本,因为表示与 PHP 是分开的。

  • 模型:模型代表您的数据结构。通常,您的模型类将包含帮助您检索、插入和更新数据库中信息的函数。
  • 视图:视图是呈现给用户的信息。视图通常是网页,但在 CodeIgniter 中,视图也可以是页眉或页脚等页面片段。它也可以是 RSS 页面或任何其他类型的“页面”。
  • 控制器:控制器作为模型、视图以及处理 HTTP 请求和生成网页所需的任何其他资源之间的连接器。

配置

  • .htaccess文件更新应用程序文件夹的.htaccess文件以包含以下代码:
      RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* index.php/$0 [PT,L]
    
  • 配置文件

CodeIgniter 有一个主要配置文件,位于application/config/config.php

      /* Base URL Configuration  */
$config['base_url'] = 'http://localhost/test/';

 /* Remove index file from the URL  */
$config['index_page'] = '';
    
  • 自动加载文件

自动加载文件允许每次系统运行时自动初始化库、帮助程序和模型。

      /* Libraries load  */
$autoload['libraries'] = array('session','database','form_validation');

 /* Helpers load  */
$autoload['helper'] = array('url','text','form','date');
    
  • 数据库文件

数据库文件允许开发人员存储数据库连接值(用户名、密码、数据库名称等)。

      $db['default'] = array(
	'dsn'	=> '',
	'hostname' => 'localhost',
	'username' => 'root',
	'password' => '',
	'database' => 'test',
	'dbdriver' => 'mysqli',
	'dbprefix' => '',
	'pconnect' => FALSE,
	'db_debug' => (ENVIRONMENT !== 'production'),
	'cache_on' => FALSE,
	'cachedir' => '',
	'char_set' => 'utf8',
	'dbcollat' => 'utf8_general_ci',
	'swap_pre' => '',
	'encrypt' => FALSE,
	'compress' => FALSE,
	'stricton' => FALSE,
	'failover' => array(),
	'save_queries' => TRUE
);
    

例子

现在让我们尝试一个例子。我们想显示数据表中的用户列表。让我们从模型开始。

表结构

用户

ID 用户名 密码
1 阿迪布 123456
2 瓦迪 ABCDEF
3 阿尤布 阿泽蒂

模型

我们看到每个用户都有一些属性需要说明。例如,每个用户都有一个idusernamepassword。这些将成为我们的模型属性。请记住,模型本身处理后端。因此,处理表操作的任何操作都应在此类(或其相关的非视图、非控制器类)中完成。

      class User_model extends CI_Model {

    public $id;
    public $username;
    public $password;

    function getId() {
        return $this->id;
    }

    function getUsername() {
        return $this->username;
    }

    function getPassword() {
        return $this->password;
    }

    function setId($id) {
        $this->id = $id;
    }

    function setUsername($username) {
        $this->username = $username;
    }

    function setPassword($password) {
        $this->password = $password;
    }


    function __construct() {
        parent::__construct();
    }

    public function user_list() {
        return
                        $this->db->select('*')
                        ->from('user')
                        ->order_by('id_user', 'DESC')
                        ->get()
                        ->result_array();
    }
}
    

控制器

接下来,我们将考虑控制器。请记住,控制器在模型和视图之间传递信息和请求。我们希望将所有更改从模型传输到视图,反之亦然,同时保持抽象屏障完好无损(即,同时让用户远离模型本身的内部部分)。

      class user extends CI_Controller {

    public function __construct() {
        parent::__construct();
        $this->load->model('user_model');
    }

    public function user_list() {
        $data = array();
        $tab = $this->User_model->user_list();
        $this->load->view('list', $data);
    }
}
    

控制器的构造函数user_model加载模型,以便检索表本身中的值。从user_list()函数可以看出,控制器在User_model类和加载视图元素之间移动。

看法

最后,我们有一个视图,它决定了用户看到的内容。我们将使用 HTML 将用户放入 HTML 表中的每个位置(用<table>标记表示)。请注意,我们foreach中使用了$tab。这告诉视图构建一个包含user_list()中的值的表。此外,如果添加更多用户,我们可以通过使用foreach来扩展表。

      <html>
<head>
<title>Users list</title>
</head>
<body>
<table>
<thead><font
以上内容来自杭州电子商务研究院推送
关注
关于我们
热门推荐
合作伙伴
免责声明:本站部分资讯来源于网络,如有侵权请及时联系客服,我们将尽快处理
Copyright © 2025-2027 ToB产业网址导航 公安备案 浙公网安备33010602013138号 浙ICP备16025413号-9
支持 反馈 关注 数据