如题:对,你要相信自己的眼睛,你没看错确实是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下载框架的压缩包,地址如下:
高级版人家是自带数据库的。
进入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比较高明的一点。
剩下的,可能就没有什么太多可说的了。其中的文件,接下来的时间,我们一个一个来对应。