运行应用(Running Applications)

安装 Wii2 后,就有了一个可运行的 Wii2 项目,根据配置的不同,可以通过 http://hostname/web/index.phphttp://hostname/index.php 访问。
本章节将介绍应用的应用结构和请求生命周期

信息:为简单起见,在整个“入门”板块都假定你已经把 web 设为 Web 服务器根目录并配置完毕,你访问应用的地址会是 http://hostname/index.php 或类似的。可按需调整 URL。

注意项目模板和框架完全不同,你可以根据你的需要自由的添加或删除代码

应用结构

├── builder                      配置文件集合
│   ├── nginx                    nginx配置文件目录
│   └── sql                      sql文件目录
├── commands                     命令行程序文件
│   ├── HelloController.php
│   └── TaskController.php
├── composer.json                Composer 配置文件, 描述包信息
├── composer.lock
├── config
│   ├── filters                  针对module配置的filter文件(yml格式)
│   ├── console.conf.php         命令行程序配置文件
│   ├── development.conf.php     开发环境配置
│   ├── development-local.conf.php     本地开发环境配置(此文件不提交代码托管)
│   ├── main.conf.php            配置文件(所有环境)都会加载
│   ├── production.conf.php      线上环境配置
│   └── test.conf.php            beta环境配置
├── controllers                  控制器目录
│   ├── DefaultController.php
├── fe
│   └── config                   前端配置文件
├── filters                      当前项目filter php类
│   └── DefaultFilter.php
├── models                       model类目录
│   ├── app
│   └── user
├── modules                      模块目录
│   ├── api                      对外接口模块
│   ├── h5                       H5页面模块 
│   ├── main                     主模块(PC)                 
│   ├── oss                      运营管理系统(后台管理系统)
│   ├── wxapp                    微信小程序
│   └── wxwork                   企业微信
├── runtime                      包含 Wii 在运行时生成的文件,例如日志和缓存文件
├── tests                        单元测试文件夹,可编写单元测试、功能测试、集成测试
│   ├── codeception.yml
│   └── tests
├── vendor                       包含已经安装的 Composer 包,包括 Wii 框架自身
│   ├── autoload.php             类自动加载文件
│   ├── composer
│   └── wii                      
├── views                        视图文件
│   ├── common
│   ├── default
│   ├── layouts
├── wcl.php                      命令行启动程序文件
└── web                          web目录
    ├── application
    │   └── wau                  
    │        └── config.js       WAU配置文件
    ├── assets                   包含wau发布的资源文件(javascript 和 css)
    ├── favicon.ico
    ├── index.php
    └── static

一般来说,应用中的文件可被分为两类:在 web 下的和在其它目录下的。前者可以直接通过 HTTP 访问(例如浏览器),后者不能也不应该被直接访问。

Wii2 实现了模型-视图-控制器 (MVC)设计模式,这点在上述目录结构中也得以体现。
models 目录包含了所有模型类
views 目录包含了所有视图脚本
controllers 目录包含了所有控制器类

以下图表展示了一个应用的静态结构:

每个应用都有一个入口脚本 index.php,这是整个应用中唯一可以访问的 PHP 脚本。入口脚本接受一个 Web 请求并创建应用实例去处理它。应用在它的组建辅助下解析请求,并分派请求至 MVC 元素。视图使用小部件去创建复杂和动态的用户界面。

请求生命周期

以下图表展示了一个应用如何处理请求:

  1. 用户向入口脚本 web/index.php 发起请求。
  2. 入口脚本加载应用配置并创建一个应用实例去处理请求。
  3. 应用通过请求组件解析请求的路由
  4. 应用创建一个控制器实例去处理请求。
  5. 控制器创建一个动作实例并针对操作执行过滤器。
  6. 如果任何一个过滤器返回失败,则动作取消。
  7. 如果所有过滤器都通过,动作将被执行。
  8. 动作会加载一个数据模型,或许是来自数据库。
  9. 动作会渲染一个视图,把数据模型提供给它。
  10. 渲染结果返回给响应组件。
  11. 响应组件发送渲染结果给用户浏览器。

results matching ""

    No results matching ""