Fork me on GitHub

Yii2 RESTful API开发

前言

Yii 是一个适用于开发 Web2.0 应用程序的高性能 PHP 框架,帮助Web开发人员建立复杂的应用程序,可以减少开发时间

准备工作

  • 安装 Composer管理依赖关系工具
1
2
3
4
5
6
7
安装完Composer,修改 composer 的全局配置文件(使用中国镜像)
composer config -g repo.packagist composer https://packagist.phpcomposer.com
运行下面的命令来安装Composer Asset插件:
composer global require "fxp/composer-asset-plugin:^1.2.0"

安装Yii2.0

通过 Composer 安装

1
2
安装最新的高级的应用程序模板(命名为advanced目录):
composer create-project yiisoft/yii2-app-advanced advanced

从归档文件安装


  • 先去Yii官网下载一份Yii的高级模版

image

配置环境变量

1
2
3
4
5
6
7
8
9
10
11
1. 把php.exe加入系统环境变量
2. 右击我的电脑-属性-高级-环境变量
3. 找到 Path 这一项(可能需要向下滚动才能找到),鼠标双击 Path 这一项,在最后加入你的 PHP 目录和类库所在的路径,包括前面的“;”(例如 :D:\phpStudy\php\php-5.6.27-nts)
4. 点击“新建”按钮并在“变量名”中输入“PHPRC”,在“变量值”中输入 php.ini 文件所在的目录(例如:D:\phpStudy\php\php-5.6.27-nts) ,这个步骤是为了让windows找到php.ini
5. 运行CMD 进入安装目录中,执行init或在安装目录中运行init.bat,选择 0 开发模式进行安装
【注:yii2执行init提示openssl问题,php没加载openssl.dll,在php配置文件里,将默认的注释去掉。】
  • 新建数据库 advanced,然后新建 user 用户表
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    CREATE TABLE `user` (
    `id` int(11) NOT NULL AUTO_INCREMENT COMMENT "自增ID",
    `username` varchar(255) NOT NULL COMMENT "用户名",
    `auth_key` varchar(32) NOT NULL COMMENT "自动登录key",
    `password_hash` varchar(255) NOT NULL COMMENT "加密密码",
    `password_reset_token` varchar(255) DEFAULT NULL COMMENT "重置密码token",
    `email` varchar(255) NOT NULL COMMENT "邮箱",
    `role` smallint(6) NOT NULL DEFAULT "10" COMMENT "角色等级",
    `status` smallint(6) NOT NULL DEFAULT "10" COMMENT "状态",
    `created_at` int(11) NOT NULL COMMENT "创建时间",
    `updated_at` int(11) NOT NULL COMMENT "更新时间",
    PRIMARY KEY (`id`)
    ) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8 COMMENT="用户表";
    配置数据库文件 advanced/common/main-local.php,输入数据库账号和密码

目录结构

  • 将文件放到web可访问目录,文件名advanced,打开得到如下图所示的目录
    image
1
2
3
目录结构的介绍就不在这里详细说明了,我们主要认识的是三个目录 ==backend==(后台)、==common==(公用)、 ==frontend==(前台)。
【注:通过composer安装倘若目录结构没有vendor核心文件,进入目录文件使用composer update 命令更新核心文件】

演示

安装 AdminLTE 渲染后台

利用 AdminLTE 渲染后台模板

  • [x] 进入 cmd,切换到 advanced 目录,输入

    1
    2
    3
    composer require dmstr/yii2-adminlte-asset "2.*"
    注:phpstorm集成开发工具按快捷键Ctrl + Shift + X 运行命令行
  • [x] 安装过程如提示输入 Token,解决办法为进入github,设置个人令牌

    1
    点击 「Generate new token」 新建一个 Token,选择默认新建就行,然后就会得到一个 Token,然后输入这个值就 OK 了。
  • [x] 输入Token报如下错误

    1
    2
    3
    4
    5
    Installation failed, reverting ./composer.json to its original content.
    [Composer\Repository\InvalidRepositoryException]
    No valid bower.json was found in any branch or tag of https://github.com/DmitryBaranovskiy/eve.git, could not load
    a package from it.
  • [x] 解决办法为直接编辑advanced文件夹composer.json文件,然后添加github的授权,将

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    "config": {
    "process-timeout": 1800
    },
    改为
    "config": {
    "process-timeout": 1800,
    "github-oauth": {
    "github.com": "此处输入您的github授权码"
    }
    },

url 美化

  • [x] 配置:backend/config/main.php 文件的 compontents

    1
    2
    3
    4
    "urlManager" => [
    "enablePrettyUrl" => true,//用于表明 urlManager 是否启用URL美化功能
    "showScriptName" => false,// 是否在URL中显示入口脚本
    ],
  • [x] 下载 .htaccess 文件,放在 backend/web 目录下(这是为了隐藏 Index.php,apache必须要开启rewrite模块)

安装 yii2-admin 集成 rbac

  • [x] 进入 cmd,切换到 advanced 目录,输入

    1
    composer require mdmsoft/yii2-admin "2.x-dev"
  • [x] 配置 backend/config/main.php 文件

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    "modules" => [
    "admin" => [
    "class" => "mdm\admin\Module",
    ],
    ],
    "aliases" => [
    "@mdm/admin" => "@vendor/mdmsoft/yii2-admin",
    ],
    'as access' => [
    'class' => 'mdm\admin\components\AccessControl',
    'allowActions' => [
    //这里是允许访问的action
    //controller/action
    // * 表示允许所有,后期会介绍这个
    '*'
    ]
    ],
    'components' => [
    "authManager" => [
    "class" => 'yii\rbac\DbManager',
    "defaultRoles" => ["guest"],
    ],
    ],
  • [x] 导入 rbac 表格

    1
    执行.sql 文件:vendor/yiisoft/yii2/rbac/migrations/schema-mysql.sql
-------------本文结束感谢您的阅读-------------
Title - Artist
0:00