這篇文章將為大家詳細講解有關Laravel7擴展開發的示例分析,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
網站建設哪家好,找創新互聯公司!專注于網頁設計、網站建設、微信開發、小程序定制開發、集團企業網站建設等服務項目。為回饋新老客戶創新互聯還提供了隴南免費建站歡迎大家使用!
步驟 1. 創建一個新項目
我更喜歡使用 Laravel 安裝程序。
laravel new lara-dg
我更喜歡使用 SQLite 進行測試和軟件包開發。修改你的.env 文件:
DB_CONNECTION=sqlite DB_DATABASE=/Users/ivan/code/packages/test-project/database/database.sqlite
接著讓我們來創建包骨架。我們將使用 CLI tool. 它會生成所有必需的文件:
composer require jeroen-g/laravel-packager
然后你可以運行生成命令。Webkid 代表供應商名稱(你的命名空間), LaravelDiagnostic 代表你的項目名稱:
php artisan packager:new Webkid LaravelDiagnostic --i
然后輸入有關你和你的包的信息。現在看起來應該是這樣:
控制臺輸出
現在你的項目中有了 packages 文件夾,其中有 Webkid 目錄以及所有必需的文件。
該軟件包通過 composer 自動加載。我更喜歡使用相對路徑:
"repositories": { "webkid/laraveldiagnostic": { "type": "path", "url": "../../packages/lara-dg/packages/Webkid/LaravelDiagnostic" } }
另外,如果你的 require 部分沒有自動更新,請手動更新一下。它將在你的 vendor 目錄中創建到軟件包目錄的符號鏈接。
"require": { "webkid/laraveldiagnostic": "*" },
現在你可以在 src 文件夾中創建類,但是它們應當具有適當的命名空間 Webkid\LaravelDiagnostic.
例如,我有一個 Commands 目錄,其中有一個 RunDiagnostic.php 類文件。所以它應該有這樣的命名空間:
namespace Webkid\LaravelDiagnostic\Commands;
如果要使用遷移、路由、配置文件、視圖甚至資源文件(js,CSS,images),你需要在服務提供者中加載它們。你可以在 官方文檔 中了解相關信息。在這個示例中我只使用了命令。看一下我的 LaravelDiagnosticServiceProvider 中的 bootForConsole() 方法:
public function bootForConsole() { if ($this->app->runningInConsole()) { $this->commands([ RunDiagnostic::class ]); } }
我在第一次嘗試構造我的包時遇到了麻煩,因此,我想跟你分享一下我的個人心得。我更喜歡將所有 PHP 類放入 src 文件夾中,并將所有其他文件放在外面。例如:
assets— 用于存放所有 CSS, js, images 文件
config — 用于存放所有配置文件
migrations — 用于存放所有遷移文件
resources — 用于存放所有視圖文件、lang 文件等
src — 用于存放所有 PHP 類,包括服務提供者
如果你需要引用其他軟件包,則必須編輯軟件包里的 composer.json 文件來添加。
"require": { "cviebrock/eloquent-sluggable": "^4.3" }
一個更有用的技巧:當你需要同時測試更改資源時,可以使用符號鏈接來避免始終重復 vendor 發布。它將創建符號鏈接,而不是復制文件。這個技巧為我節省了很多時間
ln -s /path/to/your/project/webkid-cms/packages/webkid/cms/assets /path/to/your/project/webkid-cms/public/vendor/cms
然后更新 Composer 的自動加載以添加新文件:
composer dump-autoload
步驟 2. 把你的項目放到 GitHub 上
當你的代碼庫準備就緒后,可以到包目錄下初始化一個 Git 倉庫。
cd packages/Webkid/LaravelDiagnostic git init git add . git commit -m "first commit"
創建一個 新 GitHub 倉庫 并且添加 origin.
git remote add origin git@github.com:yourusername/yourrepository.git git push -u origin master git tag -a 1.0.0 -m "release: First version" git push --tags
步驟 3. 把你的項目放到 Packagist 上
首先,在 Packagist.org 網站注冊。我更喜歡使用我的 GitHub 帳戶進行注冊。
然后使用此 URL 提交新軟件包。輸入你的包的 GitHub URL,然后單擊 Check. 如果發生任何錯誤,請按照屏幕上的說明進行操作。
完成上一步后,你將跳轉到你的包的 packagist 頁面,在該頁面上你可能會收到如下通知:
此軟件包不會自動更新。請為 Packagist 設置 GitHub Service Hook 以便在你每次推送時更新它!
讓我們來設置一下。在此 頁面 上獲取 API 令牌,然后訪問你的包的 GitHub 頁面,找到 設置 / 網絡鉤子和服務 / 添加新服務 界面。搜索 Packagist,輸入你的名字和令牌,然后點擊提交。在 Packagist 頁面上顯示的錯誤應該會在 5–10 分鐘內消失。
恭喜,你有一個有效的軟件包在線,現在你可以通過 composer 引用它了。
步驟 5. 在 packages 文件夾繼續進行操作
如果你開發這個軟件包的唯一目的是幫助你開發軟件包,那么這個包的開發就完成了。
但是,如果你在一個更大的項目中開發了該軟件包,而現在又需要它,你可以將代碼保留在 packages 文件夾中并使用它。
每當你完成工作時,可以從 composer.json 文件中刪除此代碼
"repositories": { "webkid/laraveldiagnostic": { "type": "path", "url": "../../packages/lara-dg/packages/Webkid/LaravelDiagnostic" } }
然后從 packagist 拉取你的包。
關于“Laravel7擴展開發的示例分析”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。
網站欄目:Laravel7擴展開發的示例分析
標題URL:http://vcdvsql.cn/article4/gjghie.html
成都網站建設公司_創新互聯,為您提供服務器托管、企業網站制作、自適應網站、定制開發、品牌網站設計、域名注冊
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯