中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何使用Yii2.0創建微服務

發布時間:2021-01-13 13:40:21 來源:億速云 閱讀:337 作者:小新 欄目:編程語言

這篇文章主要介紹了如何使用Yii2.0創建微服務,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

概念


把一個大型的單個應用程序和服務拆分為數個甚至數十個的支持微服務,它可擴展單個組件而不是整個的應用程序堆棧,從而滿足服務等級協議。

傳統的開發模式就是把所有功能都放在一個包里,基本不存在依賴,這樣的優勢在于開發簡單,集中式管理,功能都在本地,不存在分布式的管理和調度消耗。但缺點也很明顯:效率低,開發都在同一個項目改代碼,相互等待,沖突不斷。穩定性差,一個微小的問題,都可能導致整個應用掛掉。另外在資源利用上表現出明顯的劣勢,比如電商雙11大促場景,下單壓力非常大,評價的壓力相對較少,那么我們希望臨時增配應對雙11的大流程,只能全部增配,而不能定點只對訂單服務增配。所以微服務的架構開始慢慢流行并應用于大型的網站平臺。

那么引入今天的主題,Yii 如何做微服務?Yii 可以輕松使用,而不需要基本和高級模板中包含的功能。換句話說,Yii 已經是一個微框架。不需要由模板提供的目錄結構與 Yii 一起工作。

安裝 Yii


為您的項目創建一個目錄并將工作目錄更改為該路徑。示例中使用的命令是基于 Unix 的,但在 Windows 中也存在類似的命令。

mkdir micro-app
cd micro-app

Note:需要一些 Composer 的知識才能繼續。如果您還不知道如何使用 composer,請花些時間閱讀 Composer 指南。

使用您最喜愛的編輯器在 micro-app 目錄下創建 composer.json 文件并添加以下內容:

{
    "require": {
        "yiisoft/yii2": "~2.0.0"
    },
    "repositories": [
        {
            "type": "composer",
            "url": "https://asset-packagist.org"
        }
    ]
}

保存文件并運行 composer install 命令。這將安裝框架及其所有依賴項。

創建項目結構


安裝框架之后,需要為此應用程序創建一個入口點。入口點是您嘗試打開應用程序時將執行的第一個文件。出于安全原因,建議將入口點文件放在一個單獨的目錄中,并將其設置為Web根目錄。

創建一個 web 目錄并將 index.php 放入其中,內容如下:

<?php

// comment out the following two lines when deployed to production
defined('YII_DEBUG') or define('YII_DEBUG', true);
defined('YII_ENV') or define('YII_ENV', 'dev');

require(__DIR__ . '/../vendor/autoload.php');
require(__DIR__ . '/../vendor/yiisoft/yii2/Yii.php');

$config = require __DIR__ . '/../config.php';
(new yii\web\Application($config))->run();

還要創建一個名為 config.php 的文件,它將包含所有的應用程序配置:

<?php
return [
    'id' => 'micro-app',

    //設置`micro-app`的根目錄
    'basePath' => __DIR__,

    // 控制器所在目錄。
    'controllerNamespace' => 'micro\controllers',

    // 設置命名空間為 micro
    'aliases' => [
        '@micro' => __DIR__,
    ],

    //默認訪問地址
    'defaultRoute' => 'home/index',

    'components' => [
        //請求配置
        'request' => [
            'cookieValidationKey' => 'test&123456',
            'parsers' => [
                'application/json' => 'yii\web\JsonParser',
            ]
        ],

        //Url 美化
        'urlManager' => [
            'enablePrettyUrl' => true,
            'showScriptName' => false,
            'enableStrictParsing' => false,
            'rules' => [
                '<controller:\w+>/<action:\w+>/<id:\w+>'   => '<controller>/<action>',
            ],
        ],

        //數據庫配置
        'db' => [
            'class' => 'yii\db\Connection',
            'dsn' => 'mysql:host=localhost;dbname=micro',
            'username' => 'root',
            'password' => '數據庫密碼',
            'charset' => 'utf8',
        ],
    ],

];

Info:盡管配置可以保存在 index.php 文件中,建議單獨使用它。 這樣它也可以用于控制臺應用程序,如下所示。

您的項目現在已經準備進行編碼了。盡管由您決定項目目錄結構,只要您遵守命名空間即可。

創建第一個控制器


在創建控制器之前,創建一個 controllers/base 目錄并創建一個基礎控制器 BaseController。

<?php
namespace micro\controllers\base;

use yii\web\Controller;

class BaseController extends Controller
{
    //關閉 csrf 驗證
    public $enableCsrfValidation = false;
}

然后在 controller 文件夾下面 新建一個 SiteController.php,這是默認的 控制器將處理沒有路徑信息的請求。

<?php

namespace micro\controllers;

use yii\web\Controller;

class HomeController extends BaseController
{
    public function actionIndex()
    {
        return '歡迎來到 Yii2.0 微服務!';
    }
}

如果您想為此控制器使用不同的名稱,則可以配置 yii\base\Application::$defaultRoute 進行更改。 例如,對于 HomeController 將會是 'defaultRoute' => 'home/index'。

在這一點上,項目結構應該如下所示:

micro-app/
├── composer.json
├── config.php
├── web/
    └── index.php
└── controllers/
    └── base
        └── BaseController.php
    └── HomeController.php
└── vendor

如果您尚未設置 Web 服務器,則可能需要查看Web服務器配置文件示例。 另一種選擇是使用 yii serve 命令,它將使用 PHP 內置 web 服務器。 您可以通過以下方式從 micro-app / 目錄運行它:

vendor/bin/yii serve --docroot=./web

在瀏覽器中打開應用程序URL現在應該打印出“歡迎來到 Yii2.0 微服務!”,它已經在 HomeController::actionIndex()中返回。

Info:在我們的示例中,我們已將默認應用程序名稱空間 app 更改為 micro, 以表明您不受此名稱的限制(如果您是這樣認為), 然后調整 controllers namespace 并設置正確的別名。

感謝你能夠認真閱讀完這篇文章,希望小編分享的“如何使用Yii2.0創建微服務”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

东丰县| 同江市| 芷江| 苍南县| 三门县| 武定县| 湖北省| 南投市| 神池县| 乳山市| 乐陵市| 宝清县| 南乐县| 阿勒泰市| 丰都县| 广灵县| 建宁县| 玛曲县| 乐安县| 桃源县| 黑水县| 昌吉市| 久治县| 东乡族自治县| 宝应县| 吉安县| 连云港市| 南汇区| 绥中县| 西乌珠穆沁旗| 永川市| 三门峡市| 嘉兴市| 五家渠市| 九寨沟县| 贺州市| 土默特左旗| 澜沧| 开平市| 怀安县| 津市市|