Yii怎么运行应用

发布时间 - 2019-11-23 00:00:00    点击率:

安装 Yii 后,就有了一个可运行的 Yii 应用, 根据配置的不同,可以通过 http://hostname/basic/web/index.php 或 http://hostname/index.php 访问。        (推荐学习:yii使用教程)

本章节将介绍应用的内建功能,如何组织代码, 以及一般情况下应用如何处理请求。

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

注意项目模板和框架完全不同,安装完之后全都归你了。你可以根据你的需要自由的添加或删除代码和 修改全部的。

功能

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

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

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

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

除了 web 应用程序,还有一个控制台脚本叫 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 元素。视图使用小部件 去创建复杂和动态的用户界面。

请求生命周期

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

用户向入口脚本 web/index.php 发起请求。

入口脚本加载应用配置并创建一个应用 实例去处理请求。

应用通过请求组件解析请求的路由。

应用创建一个控制器实例去处理请求。

控制器创建一个动作实例并针对操作执行过滤器。

如果任何一个过滤器返回失败,则动作取消。

如果所有过滤器都通过,动作将被执行。

动作会加载一个数据模型,或许是来自数据库。

动作会渲染一个视图,把数据模型提供给它。

渲染结果返回给响应组件。

响应组件发送渲染结果给用户浏览器。


# yii  # php  # mvc  # 数据库  # http 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: VIVO手机上del键无效OnKeyListener不响应的原因及解决方法  phpredis提高消息队列的实时性方法(推荐)  如何挑选最适合建站的高性能VPS主机?  高端网站建设与定制开发一站式解决方案 中企动力  如何在云主机上快速搭建多站点网站?  Laravel怎么处理异常_Laravel自定义异常处理与错误页面教程  创业网站制作流程,创业网站可靠吗?  网站制作公司哪里好做,成都网站制作公司哪家做得比较好,更正规?  油猴 教程,油猴搜脚本为什么会网页无法显示?  Laravel软删除怎么实现_Laravel Eloquent SoftDeletes功能使用教程  Windows10如何删除恢复分区_Win10 Diskpart命令强制删除分区  Laravel如何发送系统通知_Laravel Notifications实现多渠道消息通知  Laravel Docker环境搭建教程_Laravel Sail使用指南  html5的keygen标签为什么废弃_替代方案说明【解答】  Laravel如何实现数据库事务?(DB Facade示例)  Laravel队列由Redis驱动怎么配置_Laravel Redis队列使用教程  如何在宝塔面板中创建新站点?  如何在阿里云部署织梦网站?  制作企业网站建设方案,怎样建设一个公司网站?  Win11怎么设置默认图片查看器_Windows11照片应用关联设置  Midjourney怎样加参数调细节_Midjourney参数调整技巧【指南】  Laravel如何设置自定义的日志文件名_Laravel根据日期或用户ID生成动态日志【技巧】  桂林网站制作公司有哪些,桂林马拉松怎么报名?  邀请函制作网站有哪些,有没有做年会邀请函的网站啊?在线制作,模板很多的那种?  如何用手机制作网站和网页,手机移动端的网站能制作成中英双语的吗?  php json中文编码为null的解决办法  轻松掌握MySQL函数中的last_insert_id()  Java Adapter 适配器模式(类适配器,对象适配器)优缺点对比  Android滚轮选择时间控件使用详解  如何获取PHP WAP自助建站系统源码?  Win11应用商店下载慢怎么办 Win11更改DNS提速下载【修复】  如何快速选择适合个人网站的云服务器配置?  HTML5空格和margin有啥区别_空格与外边距的使用场景【说明】  Laravel用户密码怎么加密_Laravel Hash门面使用教程  html文件怎么打开证书错误_https协议的html打开提示不安全【指南】  Android中AutoCompleteTextView自动提示  如何在IIS中新建站点并配置端口与物理路径?  Laravel项目怎么部署到Linux_Laravel Nginx配置详解  Laravel项目如何进行性能优化_Laravel应用性能分析与优化技巧大全  详解MySQL数据库的安装与密码配置  Laravel怎么导出Excel文件_Laravel Excel插件使用教程  Laravel观察者模式如何使用_Laravel Model Observer配置  Laravel任务队列怎么用_Laravel Queues异步处理任务提升应用性能  今日头条AI怎样推荐抢票工具_今日头条AI抢票工具推荐算法与筛选【技巧】  如何在搬瓦工VPS快速搭建网站?  Python3.6正式版新特性预览  如何用PHP工具快速搭建高效网站?  如何在腾讯云服务器上快速搭建个人网站?  百度输入法全感官ai怎么关 百度输入法全感官皮肤关闭  Laravel如何实现本地化和多语言支持?(i18n教程)