首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 其他教程 > 互联网 >

Yii技术框架学习之路(1)

2013-11-29 
Yii技术框架学习之路(一)学习PHP的Yii框架的权威指南最近工作有用到别人写好的bugfree问题管理系统,研究了

Yii技术框架学习之路(一)

学习PHP的Yii框架的权威指南

最近工作有用到别人写好的bugfree问题管理系统,研究了一番,发现用到了Yii框架,貌似要好好研究下Yii框架,才能对bugfree系统进行修改,定制出自己的功能。

http://www.yiiframework.com/doc/guide/1.1/zh_cn/

?

Yii 使用了 Web 开发中广泛采用的模型-视图-控制器(MVC)设计模式。 MVC的目标是将业务逻辑从用户界面的考虑中分离,这样开发者就可以更容易地改变每一部分而不会影响其他。 在 MVC中,模型代表信息(数据)和业务规则;视图包含了用户界面元素,例如文本,表单等; 控制器则管理模型和视图中的通信。

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

下面的示意图展示了 Yii 应用的静态结构:

Yii技术框架学习之路(1)

?

下图展示了一个 Yii 应用在处理用户请求时典型的工作流。

Yii技术框架学习之路(1)

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

对2需要进一步阐释:应用由?入口脚本?创建为一个单例对象。这个应用单例对象可以在任何地方通过?Yii::app()?访问。

?个人分析认为3、7、9是比较让人忽略的重点,具体包括request应用组件、一个名为show的视图、视图执行了一些小物件。

应用的生命周期?

当处理用户请求时,应用将经历如下声明周期:

  1. 通过?CApplication::preinit()?预初始化应用;

  2. 设置类的自动装载器和错误处理;

  3. 注册核心类组件;

  4. 加载应用配置;

  5. 通过?CApplication::init()?初始化应用:

    • 注册应用行为;
    • 载入静态应用组件;
    • 触发?onBeginRequest?事件;

    • 处理用户请求:

      • 解析用户请求;
      • 创建控制器;
      • 运行控制器;
      • 触发?onEndRequest?事件。

热点排行