CI框架精简版教程 最快上手

本文介绍了CodeIgniter框架的MVC模式,包括模型、视图和控制器的角色和作用。模型用于管理数据,视图负责展示,控制器作为中间层协调数据。此外,文章还涉及URL规则、目录结构、路由设置、数据库连接及模型的使用。通过实例展示了如何创建视图文件、控制器和处理HTTP请求,以及路由配置,帮助理解CodeIgniter的运作方式。
摘要由CSDN通过智能技术生成

一、MVC介绍

  • 模型 主要用来管理应用的数据, 根据应用的特殊业务规则获取数据。
  • 视图 是一个没有或者少量逻辑的简单的文件,
    它只负责将数据展示给用户。一个视图文件通常是一个HTML文件加入少量的PHP代码。视图中的PHP代码应该尽可能的简单
  • 控制器 主要承担了胶水代码的功能, 它主要在视图层和数据存储之间来回的处理并整合数据。控制器是你的应用程序的入口。

安装运行说明 请参考官方文档

https://codeigniter.org.cn/user_guide/intro/requirements.html

URL规则

http://example.com/[controller-class]/[controller-method]/[arguments]
如我们访问http://example.com/A/b/3,其意思是访问A这个控制器下的b方法,给b方法的传参为3

目录结构

入门关注app目录即可,注:这些文件夹的名字可更改,如何修改请另行搜索(需要更改路由)。

/Config        存放配置文件
/Controllers   控制器目录
/Database       Stores the database migrations and seeds files
/Filters        Stores filter classes that can run before and after controller
/Helpers        Helpers store collections of standalone functions
/Language       Multiple language support reads the language strings from here
/Libraries      Useful classes that don't fit in another category
/Models         Models work with the database to represent the business entities.
/ThirdParty     ThirdParty libraries that can be used in application
/Views          视图目录(存放HTML)

一个简单的Demo

视图:
新建页头文件 application/Views/Page.php 并添加以下代码:

<!doctype html>
<html>
<head>
<title>CodeIgniter Tutorial</title>
</head>
<body>
<h1><?= $title; ?></h1>
<em>&copy; 2016</em>
</body>
</html>

CodeIgnite 框架虽然没有规定任何的规则,但通过经验我们规定在 Views 目录下创建一个新的目录对应每个控制器。然后通过方法名来命名视图。这样就会使我们之后查找起来更加容易。例如:用户配置 可能会显示在一个名为 User 的控制器中,并且方法名称为 profile ,你就可以将该视图文件保存在 /app/Views/User/Profile.php 这个路径下,并这样命名。

控制器
新建一个文件 application/Controllers/Pages.php,然后添加如下代码:

public function view($page = 'home')
{
	//检测视图文件是否存在,
	//注意 视图文件也是php的后缀名 虽然其主要是Html
    if ( ! file_exists(APPPATH.'/Views/Pages/'.$page.'.php'))
     // PageNotFoundException 是 CodeIgniter 的内置函数,
     //用来展示默认的错误页面。
     throw new \CodeIgniter\PageNotFoundException($page);
     
     //title对应视图view文件中的$title变量,由于有很多个,通过
     //关联数组的形式传参过去
	$data['title'] = $page; 
	//这里表示显示出视图文件,第一个参数为View文件夹下的相对路径
	//这里也可以使用其他路径的文件,
	echo view('Pages', $data);

}

路由
通过之前的例子,您可在你的浏览器中输入 [your-site-url]index.php/pages/view查看刚刚我们所创建的界面,但是,有时我们会存在一些特殊的要求,比如为了方便用户操作和隐藏系统开发语言,更整洁和搜索引擎友好,我们会想要省略掉其中的index.php,这时就要使用路由重写功能了。
使用自定义的路由规则,你可以将任意的 URL 映射到任意的控制器和方法上,从而打破默认的规则:
让我们来试试。打开路由文件 application/Config/Routes.php 然后添加如下两行代码,并删除掉其它对 $route 数组赋值的代码。

$routes->setDefaultController('Pages/view');
// $routes 数组中使用了通配符 (:any) 来匹配所有的请求,
//然后将参数传递给 Pages 类的 view() 方法。
$routes->add('(:any)', 'Pages::view/$1');

CodeIgniter 读取路由的规则为从上到下,并将请求映射到第一个匹配的规则。每个规则都是一个正则表达式(左侧)映射到一个控制器和方法(右侧)。当获取到请求时,CodeIgniter 首先查找能匹配到的第一条规则,然后调用相应的可能存在参数的控制器和方法。

模型
首先需要连接数据库
CodeIgniter 安装时会自动生成一个 .env 文件,确保里面的配置信息没有被注释掉,并且和你本地的数据库实际情况相吻合:

database.default.hostname = localhost
database.default.database = ci4tutorial
database.default.username = root
database.default.password = root
database.default.DBDriver = MySQLi

参考 https://codeigniter.org.cn/user_guide/tutorial/news_section.html

模型文件中定义

public function getNews($slug = false)
{
        if ($slug === false){
                return $this->findAll();
        }
        return $this->asArray()
                     ->where(['slug' => $slug])
                     ->first();
}

Controller中这样使用

$model = new NewsModel();
$data['news'] = $model->getNews();

处理HTTP请求

$request = service('request');
// 请求的 uri(如 /about )
$request->uri->getPath();
// 检索 $_GET 与 $_POST 变量
$request->getGet('foo');
$request->getPost('foo');
// 从 $_REQUEST 检索,其中应同时包含 $_GET 和 $_POST 内容
$request->getVar('foo');
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值