Yii 使用了 Web 开发中广泛采用的模型-视图-控制器(MVC)设计模式。 MVC的目标是将业务逻辑从用户界面的考虑中分离,这样开发者就可以更容易地改变每一部分而不会影响其他。 在 MVC中,模型代表信息(数据)和业务规则;视图包含了用户界面元素,例如文本,表单等; 控制器则管理模型和视图中的通信。
除了 MVC, Yii 还引入了一个前端控制器,叫做 应用,它表示请求处理的执行上下文。 应用处理用户的请求并将其分派到一个合适的控制器以继续处理。
下面的示意图展示了 Yii 应用的静态结构:
下图展示了一个 Yii 应用在处理用户请求时典型的工作流。
http://www.example.com/index.php?r=post/show&id=1
的请求,
Web 服务器通过执行入口脚本 index.php
处理此请求。request
的 应用组件中获得了用户请求的详细信息。urlManager
的应用组件的帮助下,决定请求的 控制器和 动作 。在这个例子中,控制器是 post
,它代表 PostController
类;
动作是 show
,其实际含义由控制器决定。show
指向控制器类中的一个名为 actionShow
的方法。然后它创建并持行了与动作关联的过滤器(例如访问控制,基准测试)。
如果过滤器允许,动作将被执行。1
的 Post
模型。Post
模型渲染一个名为 show
的 视图。Post
模型的属性。