YII2的基本搭建流程

2 篇文章 0 订阅

一、YII2在windows系统中安装

  1. composer安装
    利用composer.setup来安装
  2. 设置github的token
composer config -g github-oauth.github.com 上github获取token

点击头像->settings->Developer settings->Personal access tokens->Generate new token或者点击已创建的token

  1. 伴随着下载项目把静态资源也下载下来
composer global require "fxp/composer-asset-plugin:~1.3"
如果报错就需要查找到最新版本,然后进行安装,地址是:https://github.com/fxpio/composer-asset-plugin/blob/master/Resources/doc/index.md
  1. yii2安装项目
// 适合新手练手
composer create-project --prefer-dist yiisoft/yii2-app-basic 项目名

// 分前后台两个部分,开发常用
composer create-project --prefer-dist yiisoft/yii2-app-advanced 项目名
  1. 问题解决
composer install

如果还不能解决,那么重新执行流程1-4。

二、需求分析

分析所需要的数据库,表的结构以及是否需要前后台搭建,或者多模块搭建。

三、创建数据库

Navicat创建一个数据库

四、初始化项目

切换到项目根目录

php init
0
yes

五、修改配置

在common->config->main-local.php修改数据库名,密码

六、构建api目录

如果有版本要求,就创建一个v1目录

// 直接复制一个backend的模板即可,controller的namespace记得修改
// 如果是有前后台的话,利用gii来创建前后台模块

七、建立数据库以及表结构

根据项目需求建立数据库以及表与表之间的关联,记得考虑加上软删除,插入时间和修改时间

八、创建模型

使用gii创建          // 不用创建controller,记得选上Generate Labels from DB Comments,namespace为common\models
// 修改尾缀r=site%2Flogin即可到达
把后面改成=>    ?r=gii

九、apache设置前后台域名

1.把"Include conf/extra/httpd-vhosts.conf"这一行,去掉前面的"#"

2.找到apache安装目录下,编辑conf/extra文件夹中的httpd-vhosts.conf文件(配置如下,乱用其他配置可能导致api接口无用)

<VirtualHost *:80>
    // 域名
    ServerName api.apitpl.com
    // 别名
    ServerAlias   api.apitpl.com
    // 文档根路径
    DocumentRoot "E:\wamp\wampServer\www\apitpl\api\web"
    // 路径
    <Directory "E:\wamp\wampServer\www\apitpl\api\web">
    # use mod_rewrite for pretty URL support
    RewriteEngine on
    # If a directory or a file exists, use the request directly
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    # Otherwise forward the request to index.php
    RewriteRule . index.php

    # use index.php as index file
    DirectoryIndex index.php

    # ...other settings...
    </Directory>
</VirtualHost>

3.重启apache(很重要)

十、修改配置

1.在config/main.php修改如下

'id' => 'app-api',
'controllerNamespace' => 'api\controllers',

'user' => [
'enableSession'=>false,         // 不允许用session
]

'urlManager' => [
    'enablePrettyUrl' => true,
    'enableStrictParsing' => true,                  // 严格解析,至少要附和一条rules设定的美化规则
    'showScriptName' => false,                      // 隐藏入口文件
    'rules' => [
        ['class'=>'yii\rest\UrlRule', 'controller'=>'article'],   // 调用框架已经定义好的URL规则,控制器选择
    ],
],

原理:这个yii\rest\UrlRule美化规则本质上是:“PUT,PATCH users/” => 'user/update’等等规则的结合

2.在config/main-local.php修改如下

'request' => [
    'parsers'=>[
        'application/json'=>'yii\web\JsonParser',           // 设置应用能接收json数据
    ],
]

3.在common/config/bootstrap添加别名

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

4.在common/config/main-local.php
修改数据库连接

十一、创建相关控制器

重写restful接口方法

只能直接去复制一个控制器,make不出来,要继承自ActiveController,例子如下:
namespace api\controllers;
use yii\rest\ActiveController;
class ArticleController extends ActiveController{
    // 指定关联模型
    public $modelClass = 'common\models\Article'  // 要用反斜杠不然会报错
}

解释:
这个控制器将会自带Restful风格的API

http://域名/articles                       // 接受get请求,会返回所有数据,执行的是index动作
http://域名/articles                       // 接受post请求,会上传新增数据,会返回id和传入的数据,执行的是create动作
http://域名/articles/1                     // 接受get请求,会返回第一条数据,执行的是view动作
http://域名/articles/1                     // 接受put请求,会更新第一条数据(这功能有点问题),执行的是update动作
http://域名/articles/1                     // 接受delete请求,会删除第一条数据,执行的是delete动作

Tip:访问时候记得带上复数形式

十二、分模块

1.创建模块
使用gii,如下是在api目录下的操作

Module Class:
api\modules\backend\Module     // 创建一个后端的模块
Module ID:
backend

api\modules\backend\Module     // 创建一个前端的模块,如法炮制

2.配置设置
在api/main.php中设置
(1) 添加该模块

return [
	    'modules' => [
	        'backend' => [
	            'class' => 'api\modules\backend\Module',
	        ],
    ],
]

(2) 路由配置

'urlManager' => [
	'rules' => [
		[
			'class' => 'yii\rest\UrlRule',
			'controller' => ['backend/控制器名'],
		]
	]
]

(3) 模块设置修改
修改创建的模块下的Module.php,修改参考

namespace api\modules\backend;
public $controllerNamespace = 'api\modules\backend\controllers';

3.创建restful控制器

// 先直接复制DefaultController
// 继承自ActiveController
// 注意namespace
namespace api\modules\backend\controllers;

4.访问测试
域名/backend/控制器名(复数)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值