↓ 快轉到主要內容
模組化 開發自己的package 進階版
技術文章Laravel

模組化 開發自己的package 進階版

Posted by Alvin Chen on

模組化 開發自己的package 進階版

·890 字·2 分鐘
作者
Alvin Chen
相信寫 Code 可以改變世界

模組化 確實可以將一些常用的功能整理成一包,方便以後拿出來重複利用,如果你還沒看過上篇請先閱讀

模組化 套件 開發自己的Package

接著這邊將紀錄比較進階的用法

參考網址 :【Laravel 5】撰寫你的package

我們在上一篇介紹過了用一個很簡單的方式,網址上加個hello,就可以執行已經在套件中寫好的程式碼內容

接下來的做法比較貼近套件該有的使用方式

Part 1 : 建立Controller
#

前半段與上次相同就不再多提,根據上篇文章的說明應該可以很容易做到建立Controller之前的步驟,接著我們來建立這次範例要用的PlusConttoller

完成後會像這樣子的結構

模組化

ps. 本次是有建立ServiceProvider,目前還沒用上,後續會有說明

接著我們來修改一下routs/web.php 多增加一個路徑來執行Plus->result();

use Virtualorz\Plus\Plus;

Route::get('plus', function () {
    $p = new Plus(111, 22);
    return $p->result();
});

接著打開瀏覽器就會看到畫面上印出133,也就是正確執行無誤了!

模組化

Part 2 : 如果套件有修改更新怎麼辦?
#

因為Packagist是抓Github上面的tag資料來判斷目前是哪個版本,所以套件更新了內容就需要做兩個步驟

  1. Commit push上Github後記得加上tag資訊 :git tag -a X.X.X -m “version content”
  2. 到packagist上按下"Update”,強制去GitHub取得目前最新的版本
packagist

Part 3 : 如何在套件中加入Migration
#

如果有用過Composer的部分套件可能都會遇過,作者在install區塊文件都會寫需要下Migrate指令來讓系統建立資料表

Migration 基礎教學文件 :https://kejyuntw.gitbooks.io/laravel-5-learning-notes/database/migration/database-migration-README.html

重點概念 :

  1. 每次定義好的migration不可再修改,不然會造成已經完成的migration沒動作
  2. 要修改資料須建立新的migration去調整
  3. 在套件的ServiceProvider:boot()中可以定義從哪個位置Loading Migration檔案
$this->loadMigrationsFrom(__DIR__.'/database/migrations');