Yii运行应用

运行应用

安装 Yii 后,就有了一个可运行的 Yii 应用, 根据配置的不同,可以通过
http://hostname/basic/web/index.phphttp://hostname/index.php 访问。
本章节将介绍应用的内建功能,如何组织代码, 以及一般情况下应用如何处理请求。
补充:为简单起见,在整个“入门”板块都假定你已经把 basic/web
设为 Web 服务器根目录并配置完毕, 你访问应用的地址会是http://lostname/index.php
或类似的。 请按需调整 URL。

Note that unlike framework itself, after project template is installed it's all yours. You're free to add or delete code and overall modify it as you need.

功能

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

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

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

Additionally to the web application, there is a console script called yii
, which is located in the applications base directory. This script can be used to run background and maintenance tasks for the application, which are described in the Console Application Section.

执行命令
php yii serve
监听localhost:8080
(如果端口8080被占用,可以使用命令:php yii serve --port='你要监听的端口号'监听端口)

现在可以使用浏览器通过如下 URL 访问刚安装完的 Yii 应用了:
http://localhost:8080/

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

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


静态结构.png

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

请求生命周期

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


请求生命周期

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,088评论 19 139
  • 一、入口文件 入口文件内容:一般格式如下: 二、主配置文件 保存位置:你的应用/protected/config/...
    layjoy阅读 4,898评论 4 14
  • yii处理http请求时,执行的流程是这样的: 1、服务器接收到来自客户端(比如浏览器)的请求,服务器(比如ngi...
    小羊羊爱吃饭阅读 4,073评论 0 0
  • 从三月份找实习到现在,面了一些公司,挂了不少,但最终还是拿到小米、百度、阿里、京东、新浪、CVTE、乐视家的研发岗...
    时芥蓝阅读 42,495评论 11 349
  • 22年12月更新:个人网站关停,如果仍旧对旧教程有兴趣参考 Github 的markdown内容[https://...
    tangyefei阅读 35,309评论 22 257

友情链接更多精彩内容