成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

如何開發(fā)、本地測試、發(fā)布 Laravel 擴展包?

nanchen2251 / 2910人閱讀

摘要:現(xiàn)在已經(jīng)有了很多,關(guān)于如何開發(fā)擴展包的文章。提交代碼到首先,需要把擴展包的代碼提交到上,記錄下版本庫的地址,注意是。填寫完畢,提交后,記得測試一次,完成首次同步,成功會提示信息。

現(xiàn)在已經(jīng)有了很多,關(guān)于如何開發(fā) Laravel 擴展包的文章。但是大多文章寫的太過片面,不夠完整,而且我在實際進行開發(fā)擴展包的時候,還是遇到了很多的問題,我把自己的開發(fā)經(jīng)驗,以及遇到的問題記錄下來,分享給大家。

擴展包開發(fā) 1. 創(chuàng)建新項目,初始化擴展包配置

首先創(chuàng)建一個新的 Laravel 項目:

composer create-project laravel/laravel laradmin -vvv

接下來在此項目中,創(chuàng)建目錄 packages/{your_name}/{your_package_name}

mkdir -p packages/angkee/laradmin

進入擴展包目錄,初始化 composer 配置

cd packages/angkee/laradmin   
composer init

執(zhí)行之后,項目下生成一個 composer.json 文件:

{
    "name": "angkee/laradmin",
    "description": "Laradmin is a laravel package for can be generated fast backend management panel",
    "license": "MIT",
    "authors": [
        {
            "name": "angkee",
            "email": "[email protected]"
        }
    ],
    "require": {}
}
2. 創(chuàng)建擴展包基本目錄、文件

一般情況下,我們會創(chuàng)建以下文件和目錄:

angkee/laradmin
├── src  #存放擴展包所有的邏輯代碼
├── tests # 存放測試用例
├── README.md
├── composer.json
└── LICENSE
3. 修改擴展包 composer 配置

然后,修改此擴展包中的 composer.json 文件,設(shè)置一下 composer 的自動加載配置、以及擴展包的命名空間。

{
    ...,
    "autoload": {
        "psr-4": {
            "AngkeeLaradmin": "src/"
        }
    },
    "autoload-dev": {
        "psr-4": {
            "AngkeeLaradminTests": "tests/"
        }
    },
    ...
}
4. 編寫擴展包邏輯代碼

接下來,我們來創(chuàng)建 AdminServiceProvider.php、Admin.php 文件。

app->singleton("admin", function () {
            return new Admin;
        });
    }
}

此時,這個擴展包算是開發(fā)好了,接下來我們開始進行本地安裝、測試。

擴展包本地測試

AdminServiceProvider 添加到項目的 config/app.php providers 數(shù)組中

"providers" => [
    ...,
    AngkeeAdminAdminServiceProvider::class,
],

再修改項目下的 composer.json 文件

{
    "require": {
        ...,
        "angkee/laradmin": "dev-master"
    },
    ...,
    "autoload": {
        ...,
        "psr-4": {
            ...,
            "AngkeeAdmin": "packages/laradmin/src/"
        }
    },
    ...
}

運行命令:

composer dump-autoload  
composer update

最后,修改一下 routes/web.php 文件:

Route::get("/", function () {
    app("admin")->printRunning();
});

此時,我們打開瀏覽器訪問此項目,顯示 running,恭喜你,成功了!

擴展包發(fā)布

擴展包開發(fā)、測試完成之后,這個時候就可以發(fā)布到 Packagist。

1. 提交代碼到 GitHub

首先,需要把擴展包的代碼提交到 GitHub 上,記錄下 GitHub 版本庫的地址,注意是 HTTPS

2. 把擴展包發(fā)布到 Packagist

然后,訪問 Packagist 官網(wǎng),登錄后,點擊右上角Submit按鈕,進入發(fā)布向?qū)?

此時,將 GitHub 版本庫的地址填寫至 Repository URL 輸入框中,然后點擊 Submit 提交按鈕,一切順利,可以看到發(fā)布成功。

3. 設(shè)置代碼同步

一旦在 Pakagist上發(fā)布了包,之后的版本更新和代碼同步,有一個機制來保證,就是 GitHub 中的事件通知服務(wù),用于代碼遞交時觸發(fā)一個事件,將代碼同步到其他環(huán)境中。

添加服務(wù),服務(wù)列表中選擇 Packagist,主要填寫兩項 Packagist 配置信息:

用戶名: 注意是 Packagist 上的用戶名
Token: 通訊令牌
Domain: 可不用填寫

其中 Token 需要到 Packagist 的個人設(shè)置里面去獲取。

填寫完畢,提交后,記得測試一次,完成首次同步,成功會提示信息。

Okay, the test payload is on its way.

回到Packagist,刷新,應(yīng)該沒有再出現(xiàn) (Not Auto-Updated) 的提示,說明同步機制已經(jīng)生效,之后每次 GitHub 變化,會自動通知并同步。

4. 設(shè)置版本信息

版本默認是 dev-master,Composer 包的版本號會從 Git 的 tag 中同步過來。

git tag 1.0.0  
git push --tag

擴展包剛發(fā)布,此時安裝,可能會報找不到安裝包的錯誤,需要稍等一下服務(wù)器同步,一般不過超過 3-5 分鐘,如果一切正常,會看到版本提示,安裝成功!

參考文獻

Laravel 的擴展插件開發(fā)指南

人人為我,我為人人!向社區(qū)發(fā)布自己的 Composer 包

Composer & Laravel 包本地開發(fā)

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/26317.html

相關(guān)文章

  • PHP / Laravel API 開發(fā)推薦閱讀清單

    showImg(https://segmentfault.com/img/bV6aHV?w=1280&h=800); 社區(qū)優(yōu)秀文章 Laravel 5.5+passport 放棄 dingo 開發(fā) API 實戰(zhàn),讓 API 開發(fā)更省心 - 自造車輪。 API 文檔神器 Swagger 介紹及在 PHP 項目中使用 - API 文檔撰寫方案 推薦 Laravel API 項目必須使用的 8 個...

    shmily 評論0 收藏0
  • 剛接觸一個 Laravel 項目,你可以從這些地方入手

    摘要:在每一個的項目主頁上,展示了擴展包的介紹版本號倉庫地址如完整的文件,以及其他一些有用的信息。官方文檔給出了總結(jié)服務(wù)提供者是所有應(yīng)用程序引導(dǎo)中心。你可以瀏覽位于目錄下的所有應(yīng)用程序服務(wù)提供者。 當你接手一個新項目的時候,可能會感到無從下手,如果不熟悉編程,則更是如此。那么,我們該從哪兒入手呢?項目代碼的哪些部分我們需要著重了解?下面我們看看 Laravel 項目的幾個通用的部分。 項目文...

    ranwu 評論0 收藏0
  • 如何Laravel 數(shù)據(jù)表里的數(shù)據(jù)導(dǎo)出成 Seeder 文件

    摘要:本文經(jīng)授權(quán)轉(zhuǎn)自社區(qū)說明開發(fā)者使用部署一個新項目的時候通常會使用快速填充本地數(shù)據(jù)以方便開發(fā)調(diào)試擴展包提供了可將數(shù)據(jù)表里的數(shù)據(jù)直接轉(zhuǎn)換為文件的功能本項目由團隊成員整理發(fā)布首發(fā)地為社區(qū)使用場景通常情況下我們會希望本地開發(fā)環(huán)境數(shù)據(jù)與生產(chǎn)完全一致這樣 本文經(jīng)授權(quán)轉(zhuǎn)自 PHPHub 社區(qū) 說明 開發(fā)者使用 Laravel 部署一個新項目的時候, 通常會使用 seeder 快速填充本地數(shù)據(jù)以方便開發(fā)...

    BigTomato 評論0 收藏0
  • 剛接觸一個 Laravel 項目,你可以從這些地方入手

    摘要:在每一個的項目主頁上,展示了擴展包的介紹版本號倉庫地址如完整的文件,以及其他一些有用的信息。官方文檔給出了總結(jié)服務(wù)提供者是所有應(yīng)用程序引導(dǎo)中心。你可以瀏覽位于目錄下的所有應(yīng)用程序服務(wù)提供者。 showImg(https://segmentfault.com/img/bV6vPF?w=1200&h=500); 當你接手一個新項目的時候,可能會感到無從下手,如果不熟悉編程,則更是如此。那么...

    RyanQ 評論0 收藏0
  • 無頭瀏覽器測試可視化:Laravel Dusk 控制臺入門指南

    摘要:通過添加此功能,該程序包將啟用記錄請求和響應(yīng)信息所需的功能。是一條普通控制器路由,用于輸出控制臺的視圖。收集瀏覽器行為這是整個擴展包最乏味的部分。 Laravel Dusk 控制臺是一款 Laravel 擴展包,能夠為你的 Dusk 測試套件提供漂亮的可視面板。通過它,你可以可視化運行 Dusk 測試時涉及的各個步驟,以及查看每個步驟的 DOM 快照。這對于調(diào)試瀏覽器測試、并搞清楚后臺...

    levius 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<