laravel 常用插件記錄


記錄一些常用插件


livewire/livewire

Livewire 是 Laravel 的全棧框架,可簡化構建動態接口的過程,且不會為 Laravel 帶來不必要的麻煩。
一個開發利器,見文檔
https://github.com/livewire/livewire


Eloquent 條件查詢 ——tucker-eric/eloquentfilter

  • 搜索是每個項目中必不可少的功能,我們需要通過不同的請求數據,篩選出想要的數據,有時候你會發現查詢條件很多的時候,Controller 中的代碼會越來越多,你可能會想優化一下這部分邏輯,tucker-eric/eloquentfilter 就是這樣一個擴展包,幫助我們優化搜索這部分邏輯。
    https://github.com/Tucker-Eric/EloquentFilter

逆向 Seed 生成器 ——orangehill/iseed#

  • 這一節我們來了解一下 orangehill/iseed 這個擴展包,單看描述可能不太理解這個包的作用,它是一個逆向的 Seed 文件生成器,也就是根據數據庫中已存在的數據,幫助我們生成 Seed 文件。
  • 這個擴展包的作用是將數據庫中的數據通過 Seed 文件導出,方便我們再次將數據導回數據庫。比起我們直接從數據庫導出 sql 文件,orangehill/iseed 幫助我們生成了 Seed 文件,這樣我們可以進行修改,並提交到代碼倉庫中,維護性得到了大大的提高。
    https://github.com/orangehill/iseed

為你的項目增加漂亮的 Markdown 文檔 ——binarytorch/larecipe


角色權限控制組件 —— spatie/laravel-permission

我們常說的 RBAC 就是基於角色的權限訪問控制(Role-Based Access Control),我們會利用用戶,角色和權限的關系,決定用戶能做什么事,不能做什么事。在 RBAC 我們首先需要了解:

  1. 用戶(User)—— 擁有角色的主體;
  2. 角色(Role)—— 一定數量的權限的集合;
  3. 權限 (Permission)—— 是否可以做具體的某個操作。

具體的權限是判斷是否能做某件事的決定因素,一個角色可以擁有多個權限,角色和權限之間是多對多的關系。給用戶賦予某個角色,用戶就可以得到角色擁有的所有權限,用戶就可以干某件事,同樣用戶與角色也是多對多的關系。總結一下就是用戶可以有多個角色,角色可以有多個權限,用戶的任意一個角色中擁有某個權限,他就可以做這個權限對應的事。
https://github.com/spatie/laravel-permission


應用自我診斷測試 —— beyondcode/laravel-self-diagnosis

當我們搭建或者部署一個新項目的時候,比如

  • 新同事加入進來進行開發;
  • 搭建一個測試環境;
  • 項目上線進行環境部署。

無論我們通過何種方式搭建一個新的項目,都需要進行一些測試,確保環境是正確的,包括數據庫是否配置正確,Redis 是否鏈接正確,目錄權限是否正確,PHP 擴展是否都已經安裝等等。憑借經驗以及必要的測試,保證項目的環境正確可用。
https://github.com/beyondcode/laravel-self-diagnosis


Excel 處理工具 ——maatwebsite/excel (3.0 版本)


嵌套集合模型 ——kalnoy/nestedset


數據查詢緩存 ——watson/rememberable

  • 數據是每個系統中都十分必要的,適當的增加緩存可以緩解數據庫查詢的壓力,watson/rememberable 就是這樣一個可以方便 Eloquent 模型緩存的擴展包。
    https://github.com/dwightwatson/rememberable

數據庫管理工具 ——protoqol/prequel

github.com/Protoqol/Prequel 是一個 數據庫管理工具,可以用來替代 phpMyAdmin,界面非常的簡潔,設計是基於 Laravel Telescope 。

http://github.com/Protoqol/Prequel


代碼生成工具 ——codedungeon/laravel-craftsman

Laravel Craftsman 是一個命令行工具,幫助我們快速生成基礎的項目代碼。
https://github.com/mikeerickson/laravel-craftsman


解析項目中的 Composer 依賴 ——lubusin/laravel-decomposer

擴展包 lubusin/laravel-decomposer 可以解析已安裝的軟件包及其相關的依賴,功能非常簡單,但是很實用。
https://github.com/lubusIN/laravel-decomposer


翻譯輔助工具 ——barryvdh/laravel-translation-manager

如果你的項目是一個國際化的項目,需要切換不同的語言環境,那么翻譯就是十分重要的一個功能了。翻譯一直是一件麻煩的事情,需要編輯不同的語言文件,准備好對應的翻譯,今天要介紹的擴展包 barryvdh/laravel-translation-manager 或許能讓你的翻譯工作變得更加輕松。
https://github.com/barryvdh/laravel-translation-manager


Laravel 本地化功能增強,切換項目語言 ——mcamara/laravel-localization

對於一個多國語言的項目,切換語言是一個很重要的功能
https://github.com/mcamara/laravel-localization


獲取國家詳細信息 —— rinvex/countries

rinvex/countries 是一個獲取國家詳細信息的擴展包,包括了國家名稱,國家代碼,國際撥號代碼,貨幣,語言,國家邊界等等信息。如果正在做一個國際化的項目,如果沒有這個擴展包,很可能需要自己維護一個國家信息的數據庫,涉及到各種 ISO 標准,以及數據的更新,其實是很麻煩的。
這個擴展包十分的輕量,不依賴任何的其他的擴展包,只是要求 PHP 版本大於 7,數據都是通過 Json 保存在本地,查看一下擴展包的介紹 github.com/rinvex/countries#data-s... ,它的數據也是來自於一些開源的項目,還是提供了非常多的方法獲取我們需要的信息
https://github.com/rinvex/countries


定時任務 Web 控制台 —— studio/laravel-totem

在 Laravel 配置定時任務其實是很簡單的,只需要將任務配置在 app/Console/Kernel.php 中就可以了。今天的這個擴展包 studio/laravel-totem 會讓定時任務的管理和使用變得更加的方便,它提供了一個定時任務的 Web 控制台:

  1. 可以查看項目中有哪些計划任務;
  2. 獲取任務下次執行的時間;
  3. 可以手動執行計划任務;
  4. 能夠快速的通過 Web 界面 添加 / 修改 / 刪除定時任務;
  5. 統計記錄定時任務的執行情況。
    https://github.com/codestudiohq/laravel-totem

API 動態查詢參數 —— spatie/laravel-query-builder

我們都會希望自己的接口足夠靈活,以滿足客戶端不同的需求,所以一般都會實現這么幾個功能:
讓接口嵌套返回額外的資源,需要提供 include 參數,如果你學過第三本教程一定比較熟悉;為了對數據進行過濾,會提供 filter 參數;滿足排序的需求,會提供 sort 參數;只返回客戶端需要的字段,可以提供 fields 參數等等。
spatie/laravel-query-builder 這個擴展包依然是來自我們熟悉的組織 spatie,主要的作用就是為接口提供上面的這幾個功能。
https://github.com/spatie/laravel-query-builder


Markdown 解析器 ——graham-campbell/markdown

將 Markdown 渲染成 HTML 是很常見的需求,解析器也很多,今天介紹的這個是一個下載量比較高的擴展包 graham-campbell/markdown,看它的說明知道它是一個 CommonMark 的封裝,CommonMark 是一個 Markdown 的規范,依賴了擴展包 league/commonmark
在 Laravel 中使用這個擴展包非常的方便
https://github.com/GrahamCampbell/Laravel-Markdown


項目代碼統計 ——wnx/laravel-stats

今天介紹的這個擴展包 github.com/stefanzweifel/laravel-stats 是用來做代碼統計的,它可以幫助我們分析整個項目的每個功能使用了多少個類,方法,寫了多少行等等,擴展包能直觀的展示出代碼的統計結果,方便我們發現問題,做接下來的代碼優化。
https://github.com/stefanzweifel/laravel-stats


模塊化管理工具 ——nwidart/Laravel-modules

當我們開發大型項目的時候,經常需要進行一些模塊化的功能划分,這樣能讓代碼更加的清晰,也方便維護。那么模塊化開發比較好用的工具就是今天這個擴展包 github.com/nWidart/laravel-modules
https://github.com/nWidart/laravel-modules


快速創建 enum 枚舉類 —— bensampo/laravel-enum

對於模型中的各種狀態,類型等數據,需要提前進行定義,方便之后的邏輯判斷。你可能會直接使用 mysql 的 enum 枚舉字段,或者是在模型中定義 STATUS_PAID 這樣的常量來定義各種狀態,然后再定義一個 map 屬性,給常量添加對應的描述。
https://github.com/BenSampo/laravel-enum


利用隱藏輸入框誘捕灌水機 ——spatie/laravel-honeypot

有時候會有一些灌水機在項目中提交一些垃圾信息以及廣告,大部分的灌水機其實並不智能,只是識別頁面中的表單,然后填充,並嘗試提交,所以添加一個隱藏的輸入框,讓灌水機填充,只要填充了內容,我們就認為這不是一個正常的操作,做一些過濾就可以了。
利用今天的這個擴展包,github.com/spatie/laravel-honeypot 實現起來其實非常簡單,這個擴展包也是來自我們熟悉的組織 spatie。
https://github.com/spatie/laravel-honeypot


讓驗證規則可以復用 —— illuminatech/validation-composite

illuminatech/validation-composite 是一個可以讓驗證規則可以復用的擴展包。
https://github.com/illuminatech/validation-composite


在 Blade 模板中使用過濾器 Filters —— thepinecode/blade-filters

也許你使用過其他語言的模板引擎,會有過濾器這樣的功能,那在 Laravel 的 Blade 中想要使用類似的功能,可以使用這個擴展包。
github.com/thepinecode/blade-filters


管理營業時間 ——spatie/opening-hours#

如果你的項目中有關於營業時間相關的業務,一般需要記錄分兩個時間,開始營業以及結束營業,但是工作日,周末,以及節假日的工作時間都有可能不同,想要很好的管理其實還有些工作要做,今天介紹的這個擴展包 github.com/spatie/opening-hours 應該非常有幫助。
這是一個 PHP 的擴展包,並不依賴 Laravel。
https://github.com/spatie/opening-hours


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM