📜  描述 CodeIgniter 使用的 MVC 结构(1)

📅  最后修改于: 2023-12-03 15:25:57.284000             🧑  作者: Mango

CodeIgniter中的MVC结构

MVC模式介绍

MVC模式是一种常用的软件设计模式,它将软件应用程序分成三个部分:模型、视图和控制器。MVC模式的目的在于使应用程序更容易维护、扩展和测试。

模型

在MVC中,模型(Model)是一个包含数据和与数据相关的逻辑的组件。它处理数据的存储、检索、更新等操作,往往直接与数据库交互。

视图

视图(View)是应用程序中的用户界面。它负责展示数据给用户,并通过控制器来改变应用程序的状态。

控制器

控制器(Controller)是连接模型和视图之间的组件。当用户与应用程序交互时,控制器接收输入并调用一个或多个模型来响应用户请求。然后,控制器将响应数据传递给视图,最终完成用户请求的处理。

CodeIgniter的MVC结构

CodeIgniter是一个MVC框架,它的MVC架构与传统的MVC模式略有不同。在CodeIgniter中,控制器(Controller)扮演着最重要的角色,而模型(Model)和视图(View)则相对较少。

控制器

在CodeIgniter中,控制器(Controller)是最重要的组件,它接收用户的请求并根据请求调用不同的方法来响应。控制器负责处理数据并将处理结果传递给视图展示给用户。

以下是一个简单示例的控制器代码片段:

class Blog extends CI_Controller {

    public function index()
    {
        // 显示所有的博客文章
    }

    public function view($slug)
    {
        // 显示一个博客文章
    }
}

在上面的代码中,Blog控制器有两个方法:index和view。当用户访问/blog URL时,index方法被调用,显示所有的博客文章。当用户访问/blog/view/slug URL时,view方法被调用,显示一个博客文章。

模型

在CodeIgniter中,模型(Model)负责处理数据的存储、检索、更新等操作。它与控制器交互,将处理后的数据返回给控制器再由视图展示给用户。

以下是一个简单示例的模型代码片段:

class Blog_model extends CI_Model {

    public function __construct()
    {
        $this->load->database();
    }

    public function get_blogs()
    {
        // 返回所有的博客文章
    }

    public function get_blog_by_slug($slug)
    {
        // 返回指定slug的博客文章
    }
}

在上面的代码中,Blog_model模型有两个方法:get_blogs和get_blog_by_slug。get_blogs方法返回所有的博客文章,get_blog_by_slug方法根据slug返回指定的博客文章。

视图

在CodeIgniter中,视图(View)负责展示数据给用户。它与控制器交互,接收控制器传递的数据,展示给用户。

以下是一个简单示例的视图代码片段:

<!-- 博客列表视图 -->
<?php foreach ($blogs as $blog): ?>
    <h3><?php echo $blog['title']; ?></h3>
    <div><?php echo $blog['content']; ?></div>
<?php endforeach; ?>

<!-- 博客详情视图 -->
<h3><?php echo $blog['title']; ?></h3>
<div><?php echo $blog['content']; ?></div>

在上面的代码中,有两个视图:博客列表视图和博客详情视图。博客列表视图展示所有的博客文章,博客详情视图展示指定的博客文章。

总结

CodeIgniter的MVC架构虽然相对传统MVC模型略有不同,但它仍然按照MVC模式的思想分离了应用程序的不同部分。控制器接收用户的请求并调用模型来处理数据,再将处理结果传递给视图展示给用户,实现了代码的解耦和模块化。