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

简介: Yii2.0分为两个版本,basic(基础版)和advanced(高级版)。

QQ图片20220425175713.jpg

如题:对,你要相信自己的眼睛,你没看错确实是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


QQ图片20220425175716.png


安装数据库:


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


QQ图片20220425175718.png


执行命令:



yii migrate


QQ图片20220425175721.png


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


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


二:目录结构


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


1:basic版本


QQ图片20220425175723.jpg


有用的基本上就是上边的目录,下边那些乱七八糟的文件,理论上在开发中是没有用的,问题不大。


官方给出的目录结构:应用中最重要的目录和文件


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版本


QQ图片20220425175726.png


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比较高明的一点。


剩下的,可能就没有什么太多可说的了。其中的文件,接下来的时间,我们一个一个来对应。



目录
相关文章
|
6月前
|
前端开发 JavaScript API
uniapp 目录结构
uniapp 目录结构
|
1月前
|
XML 存储 JSON
framework 的配置文件在.netcore里面不能用怎么处理?在.netcore中创建.xml配置文件
framework 的配置文件在.netcore里面不能用怎么处理?在.netcore中创建.xml配置文件
26 0
|
3月前
|
缓存 前端开发 PHP
|
Kubernetes 前端开发 Cloud Native
如何设计一个优秀的 Go Web 项目目录结构
如何设计一个优秀的 Go Web 项目目录结构
831 0
|
设计模式 前端开发
Yii2.0的主要目录结构是什么?底层原理是什么?
Yii2.0的主要目录结构是什么?底层原理是什么?
150 0
Yii2.0的主要目录结构是什么?底层原理是什么?
|
前端开发 PHP
laravel6.*实现html转PDF导出下载(barryvdh/laravel-dompdf)
laravel6.*实现html转PDF导出下载(barryvdh/laravel-dompdf)
432 0
laravel6.*实现html转PDF导出下载(barryvdh/laravel-dompdf)
|
测试技术 PHP
Yii2的目录结构是怎样的?
Yii2的目录结构是怎样的?
228 0
|
前端开发 PHP
Yii2如何开发插件?底层原理是什么?
Yii2如何开发插件?底层原理是什么?
232 0
|
存储 缓存 前端开发
Laravel 目录结构介绍
Laravel 8 通过引入 Laravel Jetstream,模型工厂类,迁移压缩,队列批处理,改善速率限制,队列改进,动态 Blade 组件,Tailwind 分页视图, 时间测试助手,artisan serve 的改进,事件监听器的改进,以及各种其他错误修复和可用性改进,对 Laravel 7.x 继续进行了改善。
182 0
|
测试技术 开发者 Python
Django 工程目录结构设计
Django 工程目录结构
8546 0