阅读 232

Yii2框架(一)安装及目录结构

如题:对,你要相信自己的眼睛,你没看错确实是Yii2框架。

现在都2021年了,刚刚开始折腾Yii2框架难免有些过时,但是没办法,公司目前的项目是基于Yii2开发的,嘿,你说怎么这么巧,我还没用过Yii2框架。

没办法,看手册呗。这玩意,万变不离其宗,总归还是PHP。

之前用的多的大概就是thinkphp,从3到5再到目前的6,也是这样一步步过来的。

Yii与thinkphp相比一定是有其独到的地方的。

稍老的框架的好处就是,官方文档的bug可能是少一点,开发过程中遇到的问题,面向百度的时候可能答案更多一点。

不说那么多废话了,这个算是我在看yii2手册及实践过程中的一个笔记吧,可能不会太详细,也可能不会有太多的篇幅去介绍整个yii框架,我这里也许只能记录我觉得有用的东西。当然,每个人的视角是不一样的,有遗漏或者不足的地方,还请各位大神补充,谢谢。

一:获取框架源码

首先我们先获取yii2框架的源码,根据官方文档给出的方法,使用composer,关于composer的使用方法,如果不了解,请移步《windows安装及使用composer》《linux安装及使用composer》

这里需要注意一下,Yii2.0分为两个版本,basic(基础版)和advanced(高级版)这个官方手册中我是没有找到的。

1:Basic基础版本composer下载Yii2命令为:

composer create-project --prefer-dist yiisoft/yii2-app-basic basic 复制代码

2:advanced高级版本composer下载yii2命令为:

composer create-project --prefer-dist yiisoft/yii2-app-advanced advanced 复制代码

这个过程中如果网不好可能会出现报错,做这个动作的时候一定要选择网好的时候,我都被坑惨了。

当然,如果你不喜欢用composer,也无所谓,可以去github下载框架的压缩包,地址如下:

github.com/yiisoft/yii…

高级版人家是自带数据库的。

进入advanced目录,在当前目录下打开cmd,执行:

php init 复制代码

输入0

再输入yes

在这里插入图片描述

安装数据库:

Yii2.0框架是不会帮你创建数据库的,因此,你需要自己创建一个数据库,配置到框架的配置文件中,数据库配置文件在框架根目录下\common\config\main-local.php中。

在这里插入图片描述

执行命令:

yii migrate 复制代码

在这里插入图片描述

部署我这里就不写了,本地我使用的是windows宝塔,服务器是lnmp,正常配置就可以了

唯一需要说的,他的入口是yii2\web\index.php,配置访问的时候可能需要注意一下。

二:目录结构

这个也是分两个部分来说basic基本版和basic高级版

1: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 控制台命令执行脚本 复制代码

这个是单应用的框架,上边各个目录的介绍已经很清晰,这里不再赘述。

我这里对这款单应用的基本Yii2.0框架,不做深研究,目前公司用的advancsd版本。

但是万变不离其宗。

2:advanced版本

在这里插入图片描述

Advanced高级版本的Yii2.0框架目录看起来要简洁很多,官方给出的目录机构为:

Common                     公共文件模块(配置,类)     config/              包含共享配置     mail/                包含电子邮件的视图文件     models/              包含后端和前端中使用的模型类     tests/               包含公共类的测试    console                控制台文件模块 config/              包含控制台配置 controllers/        包含控制台控制器(命令) migrations/         包含数据库迁移 models/              包含控制台特定的模型类 runtime/             包含运行时生成的文件 runtime                缓存文件模块(linux部署需要这个模块可写) backend               后端独立应用模块     assets/              包含应用程序资产,如JavaScript和CSS JavaScript and CSS     config/              包含后端配置     controllers/        包含Web控制器类     models/              包含后端特定的模型类 classes     runtime/             包含运行时生成的文件     tests/               包含后端应用程序的测试        views/               包含Web应用程序的视图文件     web/                 包含条目脚本和web资源 frontend               前端独立应用模块 assets/              包含应用程序资产,如JavaScript和CSS    config/              包含前端配置     controllers/          包含Web控制器类     models/              包含前端特定的模型类     runtime/             包含运行时生成的文件 tests/               包含前端应用程序的测试 views/               包含Web应用程序的视图文件 web/                 包含条目脚本和web资源 widgets/         包含前端小部件 vendor/          包含依赖第三方软件包 environments/    包含基于环境的覆盖 复制代码

以上就是官方给出的官方觉得重要的各个目录对应存放文件的类型。

这个高级版的项目中有两个独立的应用,怎么说呢,就是可以独立配置域名的两个应用,这个要区别于thinkphp,thinkphp在applocation中对应的应用可以建立多个,入口文件也可以根据你的需求为每个应用独立出一个入口文件,但是,其只能配置一个域名,后边来对应不同的入口文件,访问对应的应用模块,我觉得这个可能是Yii-advanced比较高明的一点。


作者:camellia
链接:https://juejin.cn/post/7031332466665209887


文章分类
代码人生
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐