Yii2开发笔记系列一:advanced版,增加一个纯接口的子项目 api

简介

Yii 是一个快速、安全、高效、高性能且基于组件(component)的 PHP 框架,用于快速开发现代 Web 应用程序。
Yii2 (最新版为:Latest Stable Version )是当前此框架主流的版本,兼容 PHP 5.4.0 ~ 8.0.x ,官方提供了basic 和 advanced 两个应用程序模板,本系列文章主要针对 advanced 模板
advanced 模板自带 frontend(前台网页) 和 backend(后台管理系统) 两个子项目,很遗憾都是针对传统php与前端混合开发模式的,但是,面对前后端分离的大趋势,如果想要写一个 纯 api 的项目,比如要使用 restful、jwt、swagger 等,就需要自己来创建

composer安装

composer create-project yiisoft/yii2-app-advanced demo

相关命令

# 配置github开发者密钥
composer config --global --auth github-oauth.github.com {你的密钥}
# 查看当前全局配置地址
composer config -g -l repo.packagist
# 全局设置国内镜像仓库
composer config -g repo.packagist composer https://mirrors.cloud.tencent.com/composer/
composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/
composer config -g repo.packagist composer https://packagist.phpcomposer.com
# 取消全局设置仓库
composer config -g --unset repos.packagist
# composer自我更新到最新版
composer self-update
# 指定更新版本
composer self-update --1
composer self-update --2
# composer回滾版本
composer self-update --rollback
# 安装与更新依赖包
composer install
composer update
# 清除缓存
composer clearcache

新增 api 子项目

复制根目录下的backend项目文件夹,改名为 api

1、打开 /api/config/main.php

id 属性改为 app-api
controllerNamespace 属性改为 api\controllers
组件 request 下的 csrfParam 属性改为 _csrf-api
组件 user 下的 identityCookie 下的 name 属性修改为 _identity-api
组件 session 下的 name 属性改为 advanced-api

2、打开 /api/assets/AppAsset.php

namespace 改为 api\assets

3、打开 /common/config/bootstrap.php 新增

Yii::setAlias('@api', dirname(dirname(__DIR__)) . '/api');

环境文件

/environments/dev/与/environments/prod/下分别复制一份backend文件夹 改名为 api
打开/environments/index.php文件,分别找到Development 和Production 下的
1、setWritable 下新增

'api/runtime',
'api/web/assets',

2、setCookieValidationKey 下新增

'api/config/main-local.php',

Git忽略设置

打开 /.gitignore 新增

/api/web/index.php
/api/web/index-test.php
/api/web/robots.txt
/api/web/.htaccess

初始化项目

在项目根目录下执行

php init

开发环境选 0,然后yes,最后 all

总结

至此,一个api的子项目就基本完成了

本作品采用《CC 协议》,转载必须注明作者和本文链接
Trevor(舍得一身剐 敢把皇帝拉下马 zhuzixian520@126.com)
本帖由系统于 2年前 自动加精
zhuzixian520
讨论数量: 4

yii淘汰了

2年前 评论
M19191 2年前
zhuzixian520 (楼主) 2年前
zhuzixian520 (楼主) 2年前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!