模組化 開發自己的package 進階版
模組化 確實可以將一些常用的功能整理成一包,方便以後拿出來重複利用,如果你還沒看過上篇請先閱讀
接著這邊將紀錄比較進階的用法
參考網址 :【Laravel 5】撰寫你的package
我們在上一篇介紹過了用一個很簡單的方式,網址上加個hello,就可以執行已經在套件中寫好的程式碼內容
接下來的做法比較貼近套件該有的使用方式
Part 1 : 建立Controller
前半段與上次相同就不再多提,根據上篇文章的說明應該可以很容易做到建立Controller之前的步驟,接著我們來建立這次範例要用的PlusConttoller
完成後會像這樣子的結構
ps. 本次是有建立ServiceProvider,目前還沒用上,後續會有說明
接著我們來修改一下routs/web.php 多增加一個路徑來執行Plus->result();
1 2 3 4 5 6 |
use Virtualorz\Plus\Plus; Route::get('plus', function () { $p = new Plus(111, 22); return $p->result(); }); |
接著打開瀏覽器就會看到畫面上印出133,也就是正確執行無誤了!
Part 2 : 如果套件有修改更新怎麼辦?
因為Packagist是抓Github上面的tag資料來判斷目前是哪個版本,所以套件更新了內容就需要做兩個步驟
- Commit push上Github後記得加上tag資訊 :git tag -a X.X.X -m “version content”
- 到packagist上按下”Update”,強制去GitHub取得目前最新的版本
Part 3 : 如何在套件中加入Migration
如果有用過Composer的部分套件可能都會遇過,作者在install區塊文件都會寫需要下Migrate指令來讓系統建立資料表
Migration 基礎教學文件 :https://kejyuntw.gitbooks.io/laravel-5-learning-notes/database/migration/database-migration-README.html
重點概念 :
- 每次定義好的migration不可再修改,不然會造成已經完成的migration沒動作
- 要修改資料須建立新的migration去調整
- 在套件的ServiceProvider:boot()中可以定義從哪個位置Loading Migration檔案
1 |
$this->loadMigrationsFrom(__DIR__.'/database/migrations'); |
首頁 » 技術文章 » Laravel » 模組化 開發自己的package 進階版