Codeigniter 3 入门
什么是 CodeIgniter?
CodeIgniter 是一个功能强大且占用空间非常小的 PHP 框架,专为需要简单而优雅的工具包来创建功能齐全的 Web 应用程序的开发人员而构建。
CodeIgniter 适合谁?
如果您符合以下条件,CodeIgniter 就适合您:
- 您需要一个占用空间较小的框架。
- 您需要出色的表现。
- 您需要与运行各种 PHP 版本和配置的标准托管帐户具有广泛的兼容性。
- 您需要一个几乎不需要配置的框架。
- 您不想依赖命令行。
- 您需要一个不会对您的编码方式施加限制的框架。
- 您不需要像 PEAR 这样的大型库。
- 您不想学习模板语言(尽管如果您需要的话,也可以选择使用模板解析器)。
- 您需要清晰、详尽的文档。
CodeIgniter 设置
- 从codeigniter.com下载 CodeIgniter 。
- 解压缩文件夹。
- 如果您使用 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 | 阿尤布 | 阿泽蒂 |
模型
我们看到每个用户都有一些属性需要说明。例如,每个用户都有一个id、username和password。这些将成为我们的模型属性。请记住,模型本身处理后端。因此,处理表操作的任何操作都应在此类(或其相关的非视图、非控制器类)中完成。
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
免责声明:本内容来源于第三方作者授权、网友推荐或互联网整理,旨在为广大用户提供学习与参考之用。所有文本和图片版权归原创网站或作者本人所有,其观点并不代表本站立场。如有任何版权侵犯或转载不当之情况,请与我们取得联系,我们将尽快进行相关处理与修改。感谢您的理解与支持!
请先 登录后发表评论 ~