Yii2-advanced与yii2basic的区别
- basic 更适合新手,特别是刚刚接触 yii 的入门开发人员。
- adavanced 随包自带两个应用:前台应用 frontend 和后台应用 backend,basic 中只有一个应用 web。advanced 将前台和后台分开,方便开发者直接基于这两个应用搭建有前后台的完整网站,并且可以为前后台分别绑定不同域名。所以,advanced 比 basic 稍微复杂一点,不适合新手,适合学过yii的
yii2-advanced
文档:
https://www.yiichina.com/doc/guide/2.0/security-passwords
看云
https://www.kancloud.cn/curder/yii/247756
官网
https://www.yiiframework.com/doc/guide/2.0/zh-cn/start-installation
安装yii2
1 | docker-compose pull php-uc |
1 | 引入阿里云镜像 |
创建项目(下载框架)
1 | composer create-project --prefer-dist yiisoft/yii2-app-advanced yii2-application(项目名称) |
初始化
cd 到项目目录,执行git init
(目录初始化)和init.bat
或者init
(项目初始化)初始化脚本php init
设置安装的环境,开发环境or生产环境(0-1)。//选择0->yes
开发:debug默认开启,生产(线上):debug默认关闭
RBAC初始化:
使用数据迁移命令,初始化RBAC数据库RBAC初始化:
1 | 打开 common\config\main.php 文件,在 components 数组中加入 authManager 组件,注意authManager的配置不要写错哦。 |
composer require mdmsoft/yii2-admin “~2.0”
docker配置
nginx
1 | server { |
docker-compose.yml
1 | php-yii2: |
创建对应的yii2的php.ini
本地host添加域名yii2-application:C:\Windows\System32\drivers\etc\host
1 | 访问 http://siteroot/admin/user/signup 添加用户 注意r=user/signup |
yii2.0框架结构
基于mvc模式开发,不需要模板引擎的
laravel框架有反向追踪的插件,yii框架没有
1 | 1、在phpstorm--- file--- settings --- plugins -- 搜索Laravel Plugin --- 安装 |
框架目录
1 | ├── backend 后台 |
common公共目录, 对于本高级应用的任一独立的应用而言,都是可见、可用的
1 | ├── config 通用的配置,这些配置将作用于前后台和命令行 |
frontend前台目录结构
1 | ├── assets 存放前端资源包PHP类,用于管理CSS、js等前端资源 |
config:包括主配置文件 main.php 和全局参数配置文件 params.php
tests: 用于存放测试类
web: 对于Web服务器可以访问的目录。 除了这一目录,其他所有的目录不应对Web用户暴露出来,这是安全的需要。
runtime : 这个目录是要求权限为 chmod 777
,即允许Web服务器具有完全的权限, 因为可能会涉及到写入临时文件等。 但是一个目录并未对Web用户可见。也就是说,权限给了,但是并不是Web用户可以访问到的
命令行应用的入口脚本是 path/to/digpage.com/yii
文件。这个文件被 init
脚本设为可执行的
控制器与视图模板
路由规则设置(rewrite)
http://www.digpage.com/index.php?r=post/view&id=100
r表示router,PostController下的 actionView 方法
可简化为http://www.digpage.com/post/view/100
,需依赖于应用组件urlManager,
urlManger功能 :
1具有解析请求以便确定指派谁来处理请求
2根据路由规则生成URL
url美化:
把 URL http://www.digpage.com/index.php?r=post/view&id=100
变成 http://www.digpage.com/post/view/Route.html
- 隐藏入口脚本可以通过
yii\web\UrlManager::showScriptName = false
来实现 - 路由的路径化可以通过
yii\web\UrlManager::enablePrettyUrl = true
来实现 - 参数的路径化可以通过路由规则来实现
- 假后缀(fake suffix)
.html
可以通过yii\web\UrlManager::suffix = '.html'
来实现
参考链接: https://blog.csdn.net/DingJingMaster/article/details/89090569