`
dcj3sjt126com
  • 浏览: 1871215 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

[入门]运行应用

    博客分类:
  • Yii2
阅读更多

安装 Yii 后,就有了一个可运行的 Yii 应用,根据配置的不同,可以通过 http://hostname/basic/web/index.php 或 http://hostname/index.php 访问。本章节将介绍应用的内建功能,如何组织代码,以及一般情况下应用如何处理请求。

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

功能 

一个安装完的基本应用包含四页:

  • 主页,当你访问 http://hostname/index.php 时显示,
  • “About” 页,
  • “Contact” 页, 显示一个联系表单,允许终端用户通过 Email 联系你,
  • “Login” 页, 显示一个登录表单,用来验证终端用户。试着用 “admin/admin” 登录,你可以看到当前是登录状态,已经可以“退出登录”了。

这些页面使用同一个头部和尾部。头部包含了一个可以在不同页面间切换的导航栏。

在浏览器底部可以看到一个工具栏。这是 Yii 提供的很有用的调试工具,可以记录并显示大量的调试信息,例如日志信息,响应状态,数据库查询等等。

应用结构 

应用中最重要的目录和文件(假设应用根目录是 basic):

basic/                  应用根目录
    composer.json       Composer 配置文件, 描述包信息
    config/             包含应用配置及其它配置
        console.php     控制台应用配置信息
        web.php         Web 应用配置信息
    commands/           包含控制台命令类
    controllers/        包含控制器类
    models/             包含模型类
    runtime/            包含 Yii 在运行时生成的文件,例如日志和缓存文件
    vendor/             包含已经安装的 Composer 包,包括 Yii 框架自身
    views/              包含视图文件
    web/                Web 应用根目录,包含 Web 入口文件
        assets/         包含 Yii 发布的资源文件(javascript 和 css)
        index.php       应用入口文件
    yii                 Yii 控制台命令执行脚本

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

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

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

应用静态结构

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

请求生命周期 

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

请求生命周期

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

相关推荐

    c#+web应用程序入门经典.pdf

    但是,根据标题、描述和标签,可以推测本书的内容涉及C#语言和Web应用程序的入门知识。 C#是一种面向对象的编程语言,它是微软公司推出的一种高级编程语言,主要运行于.NET框架之上。C#具备了现代编程语言所需的...

    HarmonyOS鸿蒙快速入门应用开发基础+进阶视频.zip

    01.3 应用编译_安装_运行 01.4 HarmonyOS应用系列课第1期答疑环节 02.1 HUAWEI_DevEco_简介 02.2 HarmonyOS_应用开发平台介绍 02.3 HarmonyOS设备开发平台介绍 02.4 分布式应用开发实例演示 02.5 第2期答疑环节 03.1...

    应用程序服务器开发入门教程

    本教程“应用程序服务器开发入门教程”旨在帮助初学者从零开始掌握应用程序服务器的搭建和管理,特别关注tamcat和servlet的使用,以及相关的环境配置。以下是对这些主题的详细解释: 一、服务器开发入门 服务器...

    HarmonyOS鸿蒙快速入门应用开发基础视频.rar

    013应用编译安装运行zp 014 HarmonyOS应用系列课第1期答疑环节zip 021 HUAWEI DevEco简介,zip 022 HarmonyoS应用开发平台介绍zip 023 HarmonyOS设备开发平台介绍zip 024分布式应用开发实例演示,zip 025第2期答疑...

    restful入门实例(可运行)

    本入门实例是一个集成了REST、Struts2.0、Hibernate和Spring的可运行项目,旨在帮助初学者快速理解RESTful API的开发与应用。 1. REST概念: REST代表表述性状态转移(Representational State Transfer),它强调...

    OPC应用程序入门 pdf版本

    pdf版本,日本OPC协会编制,OPC中国促进会后援,涉及OPC基础知识、使用VB开发OPC应用程序、使用VB开发OPC ActiveX控件、使用Execl开发OPC应用程序、运行环境设计等等

    opc应用程序入门(中文)

    opc应用程序开发指南,日本人原著,翻译版,VB语言版本,但是其他语言开发(我自己用C#)都可以参考。讲解注释很详细,适合刚刚入门工业自动化的软件开发工程师。原理阐释的由浅入深,特别适合快速上手开发自己的opc...

    Android 应用开发入门教程(经典版)

    【Android 应用开发入门教程】是一份详细指导初学者入门Android应用开发的经典教程,涵盖了Android系统的结构、SDK的使用,以及应用程序的开发流程。在系统介绍中,讲解了Android作为一个开源移动操作系统的概述,...

    SDN Ryu应用开发入门

    SDN Ryu应用开发入门 1.1 Ryu的安装部署 2.1 Hub+Learing Switch应用开发(上) 2.2 Hub+Learing Switch应用开发(下) 3.1 流量监控+最短路径转发 4.1 流量监控+最短路径转发 5.1 Ryu RESTAPI使用教程 6.1 源码解析...

    springboot的官方入门例子,可以直接运行

    5. **运行应用** 要运行SpringBoot应用,只需在主程序类上添加`public static void main(String[] args)`方法,然后调用`SpringApplication.run(MyApplication.class, args)`。这将启动SpringApplication的生命周期...

    fullstack-starter:用于创建全栈应用程序的Monorepo,

    运行应用程序的说明 注意:样本说明 建于 nx.dev nestjs next.js tsdx 弄乱 承诺者 犯规 沙哑 更漂亮 埃斯林特 cz-ccgls 码头工人组成 特使(grpc代理) verdaccio(私有软件包存储库) 配套 库由5个程序包...

    initializer-chat-app:使用 react-router-initializer 构建的同构聊天应用程序

    初始化聊天应用程序使用react-router-initializer构建的同构聊天应用程序入门运行应用程序分叉并克隆 Repo npm install gulp start 在浏览器中导航到localhost:8000应用详情这是一个同构的聊天应用程序,使用react-...

    Kotlin 入门教程指南

    * 兼容性:Kotlin 与 JDK 6 完全兼容,保障了 Kotlin 应用程序可以在较旧的 Android 设备上运行而无任何问题。 * 性能:由于非常相似的字节码结构,Kotlin 应用程序的运行速度与 Java 类似。 * 互操作性:Kotlin 可...

    java 入门入门入门入门入门入门入门入门

    "Java 入门入门入门入门入门入门入门入门"这个标题暗示了我们将要探讨的是针对初学者的基础知识,包括如何开始学习Java,理解其基本概念,以及如何编写简单的程序。 Java的基础知识点主要包括以下几个部分: 1. **...

    流体机械基础和原理应用-入门级资料.zip

    流体机械概述、叶片式流体机械工作理论、流体机械的相似理论、叶片式流体机械的空化理论、叶片式流体机械的设计理论、离心式流体机械的设计计算、轴流式流体机械的设计计算、流体机械的特性曲线与运行调节、流体机械...

    android入门到精通.pdf

    《Android入门到精通》这本书是为想要学习和掌握Android应用开发的初学者量身打造的指南。Android作为全球最流行的移动操作系统,拥有庞大的用户群体,为开发者提供了广阔的应用市场和无限的创新空间。本书旨在帮助...

    FFmpeg 从入门到精通

    "FFmpeg 从入门到精通" FFmpeg 是一个开源的、跨平台的多媒体处理工具,能够处理音频、视频、流媒体等多种媒体格式。它具有强大的处理能力和灵活的配置选项,广泛应用于音视频开发、流媒体处理、音视频编辑等领域。...

    Kubernetes(K8s)入门文档.pdf

    可以在物理或虚拟机的 Kubernetes 集群上运行容器化应用,Kubernetes 能提供一个以“容器为中心的基础架构”,满足在生产环境中运行应用的一些常见需求,如: * 多个进程(作为容器运行)协同工作 * 存储系统挂载 *...

Global site tag (gtag.js) - Google Analytics