這篇文章主要介紹了關於 Laravel5.5+Homestead環境+搭建基礎架構,有著一定的參考價值,現在分享給大家,有需要的朋友可以參考一下
一、搭建項目基礎架構:(前後端分離寫api介面)
1、下載安裝laravel5;
命令列:composer create-project laravel/laravel 項目名稱 --prefer-dist "5.5.*"
2、安裝應用密鑰;
2.1、將.env.example 檔案重新命名為 .env,配置好資料庫等;
2.2、安裝密鑰:運行artisan命令 php artisan key:generate ,會產生APP_KEY值,.env檔案中。
APP_KEY=base64:yl52j20RBBhfs2LUB47126/9geAQ+l6A6Y9HgdHjb3M=
3、安裝DingoAPI;
命令列:composer require dingo/api:2.0.0-alpha1
報錯解決方式:開啟根目錄下的composer.json檔案,手動添加 "dingo/api": "2.0.0-alpha1"
然後執行 composer update
dingo/api已經成功安裝了
3.1、配置
先將 dingo 的設定檔 publish 出來,命令列:php artisan vendor:publish
執行成功後,我們會在 config 目錄先看到 api.php 檔案,開啟檔案我們可以看到所有的配置都是可以再 .env 中修改:
Accept: application/<API_STANDARDS_TREE>.<API_SUBTYPE>.v1+json
API_STANDARDS_TREE=prsAPI_SUBTYPE=changanAPI_PREFIX=apiAPI_VERSION=v1API_STRICT=trueAPI_DEBUG=true
(1)、訪問 v1 版本
Accept: application/prs.changan.v1+json
(2)、訪問 v2 版本
Accept: application/prs.changan.v2+json
(3) 、在.env.example 檔案中,提交到版本庫
# dingo configAPI_STANDARDS_TREE=API_SUBTYPE=API_PREFIX=API_VERSION=API_STRICT=API_DEBUG=
4、安裝jwt-auth令牌
命令列:composer require tymon/jwt-auth:1.0.0-rc.1
(1)、安裝完成後,我們需要設定一下 JWT 的 secret,這個 secret 很重要,用於最後的簽名,更換這個secret 會導致之前產生的所有 token 無效。
命令列:php artisan jwt:secret
(2) 、可以看到在 .env 檔案中,增加了一行 JWT_SECRET;
JWT_SECRET=xFWZJRNeK9S6R2TtVaASvqCnTtC7vvQv
(3)、修改 config/auth.php,將 api guard 的 driver 改為 jwt。
'guards' => [ 'web' => [ 'driver' => 'session', 'provider' => 'users', ], 'api' => [ 'driver' => 'jwt', 'provider' => 'admin_users',//admin_users是使用者表 ],],
(3)、修改 config/api.php,auth 中增加 JWT 相關的配置
'auth' => [ 'jwt' => 'Dingo\Api\Auth\Provider\JWT',],
(4)、在config/app.php中添加
'aliases' => [ 'App' => Illuminate\Support\Facades\App::class, 'Artisan' => Illuminate\Support\Facades\Artisan::class, .......... 'JWTAuth' => Tymon\JWTAuth\Facades\JWTAuth::class, //添加此行],
5、安裝Arrayserializer響應資料結構統一擴充包
命令列:composer require liyu/dingo-serializer-switch
安裝成功後,在路由檔案裡routes/api.php修改:
<?php$api = app('Dingo\Api\Routing\Router');$api->version('v1', [ 'namespace' => 'App\Http\Controllers\Api', 'middleware' => ['serializer:array', 'bindings']], function ($api) { $api->group([ 'namespace' => 'Admin', 'prefix' => 'admin', 'middleware' => 'api.throttle' ], function ($api) { //寫路由(可根據命名空間分組) });$api->version('v2', function ($api) { $api->get('version', function () { return response('this is version v2'); });});
6、添加語言套件使用 Composer 來安裝 laravel-lang
命令列:composer require "overtrue/laravel-lang:~3.0"
6.1、將項目語言設定為中文config/app.php
'locale' => 'zh-CN',
'timezone' => 'PRC',
備忘:語言套件在vendor->caouecs->laravel-lang->src檔案夾下,使用時直接將需要的語言套件複製到resources->lang檔案夾下即可使用。
基礎架構搭建到此結束