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

2023-11-20

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

现在都2020年了,刚刚开始折腾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下载框架的压缩包,地址如下:

https://github.com/yiisoft/yii2-app-advanced

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

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

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

有好的建议,请在下方输入你的评论。

欢迎访问个人博客
https://guanchao.site

欢迎访问小程序:
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Yii2框架(一)安装及目录结构 的相关文章

随机推荐

  • c++使用继承类实现异常处理

    sales h pragma once include
  • Linux Container(lxc)分析和配置使用

    前提 本文翻译 有道翻译 自linux container lxc 根据重点摘录学习 介绍 最好将容器化定义为 通过操作系统中的特性启用的进程隔离机制 容器是与系统其他部分隔离的一个或多个进程的集合 Containers VMs lxc通过
  • Node.js的基本模块,global、process详解

    基本模块 因为Node js是运行在服务区端的JavaScript环境 服务器程序和浏览器程序相比 最大的特点是没有浏览器的安全限制了 而且 服务器程序必须能接收网络请求 读写文件 处理二进制内容 所以 Node js内置的常用模块就是为了
  • 2023 华子(华为)硬件岗位面试2

    写在前面 本内容仅作参考 如有侵权或者其他问题 立马删除 也仅作为笔者个人经历或者回忆 不一定完全准确 一切都在改变 也祝愿大家面试顺利 顺利取得自己心仪的offer 编辑切换为居中 添加图片注释 不超过 140 字 可选 本次是业务主管面
  • 代码随想录算法训练营19期第42天

    01背包问题 二维 代码随想录 视频讲解 带你学透0 1背包问题 关于背包问题 你不清楚的地方 这里都讲了 动态规划经典问题 数据结构与算法 哔哩哔哩 bilibili 初步思路 动态规划 背包问题 总结 dp i j 表示从下标为 0 i
  • Spring Boot(十):Druid的监控统计和多数据源配置

    Druid的监控统计 Druid内置提供一个StatFilter 用于统计监控信息 下面我们就来做一些配置 启动Druid的监控 1 配置pom xml
  • JS阻止事件冒泡的几种方式

    JS阻止事件冒泡的几种方式 事件委托 将元素的绑定事件写起其父元素上 防止事件冒泡 example div div div div 将事件绑定在父元素上 不管子元素是不是动态生成的 将第一种绑定事件写成第二种方式 son click fun
  • Tomcat启动乱码

    修改tomcat的conf下的logging properties中的参数 java util logging ConsoleHandler encoding GBK 将UTF 8改到GBK就行了保存后重启tomcat就正常了
  • 如何调整oracle参数,使它支持更多的用户连接

    在参数文件中有三个参数 processes license max sessions license max users 这三个参数相互作用影响着用户连接数 license max sessions 同时连接数据库的会话数 license
  • 手把手教你通过端口映射,轻松搭建Windows远程桌面

    市面上有很多的远程桌面软件 如TeamViewer 向日葵等 但无一例外 它们提供的免费服务连接质量普遍不高 而付费服务价格又偏高 并不能使人满意 但众所周知 微软自带的Windows远程桌面其实在连接质量和稳定性方面一点都不输给第三方软件
  • jquery中$()的使用

    在jquery中最常使用的就是 这个符号了 在我没有系统的学习jquery之前 我用到的 都是用于对元素的选择 而这只是 的很简单的用法 在jquery 函数一共有三种用法 selector context 在这个方法中selector是选
  • error: GLES2/gl2.h: No such file or directory

    最近一个朋友让帮忙编译android程序 中间遇到了很多问题 大概都解决了 最后又遇到了一个问题 GLES2 gl2 h No such file or directory 这个问题 我大概知道是怎么回事 关键是没有指定ndk的编译版本号
  • 公司刚上市就来了个从字节拿28K的人,让我见识到了什么才是测试天花板···

    5年测试 应该是能达到资深测试的水准 即不仅能熟练地开发业务 而且还能熟悉项目开发 测试 调试和发布的流程 而且还应该能全面掌握数据库等方面的技能 如果技能再高些的话 甚至熟悉分布式组件等高级技能 或者说 做个项目小组长 管个3 4号人 应
  • router-link 和 router-view 的 关系

  • vue整合ueditor

    一 前端代码 Ueditor官网地址为 http ueditor baidu com website download html ueditor 下载好之后 将Jsp版本解压 解压后文件夹改名为ueditor 将文件夹中的jsp目录删掉 之
  • Elasticsearch7 清空指定Index 相关数据

    注意 Elasticsearch7 起 Index索引已经不支持创建指定Type 类型 默认取值为 doc Elasticsearch7 清空指定Index 语法 POST 请求 http es 服务器地址 索引名称 delete by q
  • go 进阶 gin实战相关: 五. gin_scaffold 企业脚手架

    目录 一 gin scaffold 企业级脚手架 二 gin scaffold 脚手架安装及使用演示 文件分层解释 开始使用 1 配置开启go mod 功能 2 下载 安装 gin scaffold 3 整合 golang common 4
  • 原生js php ajax,原生Ajax怎么写

    写原生Ajax的方法 首先创建XMLHttpRequest对象 然后编写回调函数onreadystatechange 接着配置请求信息 最后发送请求即可 Ajax Asynchronous JavaScript and XML的缩写 是一种
  • C#使用NuGet包播放视频之二————读取RTSP流

    RTSP流的读取 上篇文章做到读取本地摄像头 基本事都做完了 这篇文章将RTSP流加进去 双击窗体中ToolStrip的RTSP 为之添加事件 事件中编写代码如下
  • Yii2框架(一)安装及目录结构

    如题 对 你要相信自己的眼睛 你没看错确实是Yii2框架 现在都2020年了 刚刚开始折腾Yii2框架难免有些过时 但是没办法 公司目前的项目是基于Yii2开发的 嘿 你说怎么这么巧 我还没用过Yii2框架 没办法 看手册呗 这玩意 万变不