模型-视图-控制器 (MVC)

    除了 MVC, Yii 还引入了一个前端控制器,叫做 应用,它表示请求处理的执行上下文。应用处理用户的请求并将其分派到一个合适的控制器以继续处理。

    Static structure of Yii application

    A typical workflow of Yii application
    A typical workflow of Yii application

    • 用户发出了访问 URL http://www.example.com/index.php?r=post/show&id=1 的请求,Web 服务器通过执行入口脚本 index.php 处理此请求。
    • 入口脚本创建了一个 实例并执行。
    • 应用在一个名叫 urlManager 的应用组件的帮助下,决定请求的 控制器和 。在这个例子中,控制器是 post,它代表 PostController 类;动作是 show ,其实际含义由控制器决定。
    • 应用创建了一个所请求控制器的实例以进一步处理用户请求。控制器决定了动作show 指向控制器类中的一个名为 actionShow 的方法。然后它创建并持行了与动作关联的过滤器(例如访问控制,基准测试)。如果过滤器允许,动作将被执行。
    • 动作从数据库中读取一个 ID 为 1 的 Post 模型
    • 视图读取并显示 Post 模型的属性。
    • 视图执行一些 。
    • 视图的渲染结果被插入一个 布局