摘要:值得一提的是擴(kuò)展包不免費(fèi)用于商業(yè)用途,作者用一種人類(lèi)友好的方式說(shuō)你使用這個(gè)擴(kuò)展包就是應(yīng)該去掙錢(qián)的,而不是免費(fèi)的去工作這個(gè)擴(kuò)展包收費(fèi)美元。除了這些,還有五個(gè)沒(méi)有全面的審查的擴(kuò)展包。最后,還有三個(gè)優(yōu)質(zhì)的包選擇于。
開(kāi)發(fā)者們都是懶惰的,不,我不是在開(kāi)玩笑,他們努力創(chuàng)建系統(tǒng),幫助他們?cè)谖磥?lái)避免更多的、尤其是重復(fù)性的工作?,F(xiàn)在有一些相當(dāng)優(yōu)秀的例子,我們不需要在編寫(xiě)重復(fù)的代碼,它將直接為我們生成。今天我們將會(huì)看到 Laravel 框架中的各式各樣的后臺(tái)管理面板、后端開(kāi)發(fā)者創(chuàng)建的例子,它們可以節(jié)省我們多少時(shí)間呢?
Disclaimer: 我是 quickadminpanel 的創(chuàng)始人,一位創(chuàng)造者。回顧這個(gè)市場(chǎng),這里確實(shí)有偉大的競(jìng)爭(zhēng)對(duì)手,我盡可能做人要誠(chéng)實(shí)和公正,他們應(yīng)該得到友善的話語(yǔ)和尊重。
有兩大類(lèi)后臺(tái)管理面板生成器:可視化構(gòu)建器和基于命令行的。選擇取決于您的偏好,是否喜歡使用 GUI 視圖面板的,還是有參數(shù)的 Artisan 命令行的。
另外,這里一個(gè)重要的術(shù)語(yǔ),知道 CRUD 這個(gè)縮寫(xiě)代表“創(chuàng)建、讀取、更新、刪除”這些操作基于所有的管理面板。一個(gè) CRUD 通常代表一個(gè)菜單項(xiàng)的模型來(lái)管理數(shù)據(jù)。
重要通知:此文章寫(xiě)于 寫(xiě)于 2017 年 4 月 1號(hào),下面所有的擴(kuò)展包都是在 laravel 5.3 中測(cè)試的。在撰寫(xiě)本文的時(shí)候,要求他們提供官方的 5.4 版本支持還為時(shí)尚早。(半年時(shí)間,Laravel 5.5 都已經(jīng)發(fā)布了)
可視化的后臺(tái)管理面板這個(gè)產(chǎn)品雖然很新,但給我留下了深刻的印象。它已經(jīng)有一個(gè)大的粉絲團(tuán),在之前的 laravel 資訊中有提到過(guò)它,和它的 YouTube 開(kāi)發(fā)視頻系列。
Voyager 擁有一個(gè)專(zhuān)業(yè)并且完美的界面,但主要的一點(diǎn)是,它只是工作。清晰的使用說(shuō)明,友好的前端主題,沒(méi)有明顯的 bug 或未完成的部分。 Voyager 還擁有像船長(zhǎng)的圖片或船輪圖標(biāo),使它看起來(lái)不錯(cuò)的整體。
另一個(gè)明智的決定是有一個(gè)參數(shù)“虛擬數(shù)據(jù)”在安裝過(guò)程中,你可以有你的管理面板預(yù)填充數(shù)據(jù)使用。
Voyager 還用有一個(gè)媒體文件管理器,來(lái)處理你上傳的文件,這非常的方便,并幫助它在其他的后臺(tái)管理創(chuàng)建者中脫穎而出。
最后,在 Voyager 的幫助下,你也可以通過(guò)一個(gè)在你的后端應(yīng)用程序中的 mini-phpMyAdmin 改變數(shù)據(jù)庫(kù)表,從而直接改變你的后臺(tái)管理面板。
總之,Voyager 似乎是市場(chǎng)上最優(yōu)雅的解決方案,但如果不支持或更新一段時(shí)間,這種情況很容易發(fā)生變化,這種情況經(jīng)常發(fā)生在開(kāi)源的擴(kuò)展包中。
LaraAdmin: Admin Panel + CRM這是另一個(gè)讓我印象深刻的項(xiàng)目。安裝并登錄到你的管理面板后,你可以直觀地創(chuàng)建 CURDs 模塊。據(jù)作者來(lái)講,這個(gè)模塊化的系統(tǒng),是受到了 SugarCRM 的啟發(fā)。
僅僅通過(guò)幾次點(diǎn)擊,你可以生成你的數(shù)據(jù)庫(kù)模型的遷移文件。如果你喜歡,你也可以同時(shí)或者分開(kāi)生成 CURD 模塊。
LaraAdmin 帶有相當(dāng)多的預(yù)定義模塊,他們幫助你了解這個(gè)系統(tǒng),但是,另一方面,如果我要?jiǎng)?chuàng)建我的項(xiàng)目從零開(kāi)始,這需要花些一些時(shí)間來(lái)對(duì) LaraAdmin 進(jìn)行默認(rèn)配置。
和 Voyager 一樣,LaraAdmin 也擁有上傳文件功能。可以說(shuō),她是你上傳文件的內(nèi)部瀏覽器。
對(duì)于前端視圖,LaraAdmin 采用了一種非常受歡迎的主題 adminLTE。它實(shí)際上是大多數(shù)管理面板構(gòu)建者使用的,它成為一種市場(chǎng)標(biāo)準(zhǔn)。
QuickAdmin: 在線生成器的擴(kuò)展包這個(gè)包是非常簡(jiǎn)單的,安裝之后,您可以創(chuàng)建 CRUD 模塊或非 CRUD 的菜單項(xiàng),指定字段、角色和權(quán)限。它可能是本文中所有擴(kuò)展包中描述最少的工具。
對(duì)于 QuickAdmin 有一個(gè)重要的里程碑,它是一個(gè)在線版本的管理面板的工具而不是作為一個(gè)現(xiàn)有項(xiàng)目 laravel 包,該生成器可以為你下載和使用整個(gè) Laravel 項(xiàng)目。因此,您沒(méi)有任何包依賴關(guān)系,也不需要學(xué)習(xí)這個(gè)特定包的語(yǔ)法。
非可視化的后臺(tái)管理面板 Z-song / Laravel-admin這個(gè)包介于可視化和非可視化工具兩者之間的,生成器的一部分實(shí)際上是可視化的,因此您可以在管理面板內(nèi)創(chuàng)建新的菜單項(xiàng),但對(duì)于大多數(shù)過(guò)程,您必須手動(dòng)編寫(xiě)代碼,比如:
php artisan admin:make UserController --model=AppUser $router->resource("users", UserController::class); use EncoreAdminGrid; use EncoreAdminFacadesAdmin; $grid = Admin::grid(Movie::class, function(Grid $grid){
這是視覺(jué)和基于代碼的生成器之間的根本區(qū)別,后者需要學(xué)習(xí)它們的語(yǔ)法、一些規(guī)則并堅(jiān)持它們。如果你想在包上創(chuàng)建一些定制的東西,那可能很麻煩。然而,z-song 開(kāi)發(fā)的擴(kuò)展包是一個(gè)很好的作品。
它還提供了額外的功能,如模型網(wǎng)格、模型表單、模型樹(shù),甚至是現(xiàn)成的小部件。
InfyOm Laravel Generator它有相當(dāng)令人印象深刻的生成器口號(hào):“讓你的 API 和管理面板在幾分鐘內(nèi)準(zhǔn)備好”,所以他們首先強(qiáng)調(diào) API,而不是管理面板。為此,他們有一個(gè)多帶帶的 API 生成器,它可以作為管理面板的一部分,或者作為獨(dú)立的一部分工作。不僅如此,他們還將為 API 生成詳細(xì)的注釋。
雖然 infyom 生成器不是可視化(infyom 聲稱(chēng)他們?cè)诠ぷ髟?GUI 頁(yè)面之上的),它提供了三種不同的選項(xiàng)指定的增刪改查參數(shù):控制臺(tái)、JSON 文件、或一個(gè)現(xiàn)有的數(shù)據(jù)庫(kù)表。是的,你可以為一個(gè)已經(jīng)存在的表生成增刪改查模塊,是不是很酷?
這個(gè)生成器的一個(gè)有趣功能,它使用存儲(chǔ)模式生成代碼,所以您的控制器看起來(lái)如下所示:
class BookController extends AppBaseController { /** @var BookRepository */ private $bookRepository; public function __construct(BookRepository $bookRepo) { $this->bookRepository = $bookRepo; } /** * Display a listing of the Book. * * @param Request $request * @return Response */ public function index(Request $request) { $this->bookRepository->pushCriteria(new RequestCriteria($request)); $books = $this->bookRepository->all(); return view("books.index") ->with("books", $books); } }
這可能是一件非常好的事情,或許你不想使用這種存儲(chǔ)庫(kù)模式,覺(jué)得它太復(fù)雜了。但是采用這種模式有一個(gè)最大好處,infyom 可以為你生成測(cè)試案例代碼!
對(duì)于前端視圖,infyom 提供四種模板可供選擇:AdminLTE、 Metronic、Bootstrap、以及 FlatLab.
使用 infyom 最大的問(wèn)題(與大多數(shù)非視覺(jué)生成器),是你必須嚴(yán)格遵守他們的規(guī)則語(yǔ)法。清楚他們的文檔:“仔細(xì)閱讀文檔指定的特定輸入,但是如果你使用了錯(cuò)誤的參數(shù),這個(gè)生成器會(huì)像魔術(shù)一樣工作。
AppzCoder: 增刪改查生成器 + 后臺(tái)管理面板這個(gè)包有兩個(gè)產(chǎn)品,一個(gè)獨(dú)立的增刪改查生成器,和一個(gè) laravel 后臺(tái)管理包。它的官方文檔說(shuō)的要求 laravel 5.1 和 5.3 版本之間工作。
安裝后,你可以通過(guò)一個(gè)一個(gè)的 Artisan 命令得到一個(gè) bootstrap 默認(rèn)主題,也可以手動(dòng)創(chuàng)建增刪改查模塊。
他們官方文件中的一個(gè)例子:
php artisan crud:generate Posts --fields="title#string; content#text; category#select#options=technology,tips,health" --view-path=admin --controller-namespace=Admin --route-group=admin
如果這對(duì)你來(lái)說(shuō)太難了,你可以在 JSON 文件中提供字段細(xì)節(jié),然后將其指定為命令的參數(shù)。
您也可以多帶帶生成不同的文件,如下所示:
php artisan crud:controller PostsController --crud-name=posts --model-name=Post --view-path="directory" --route-group=admin
php artisan crud:model Post --fillable="["title", "body"]"
生成增刪改查后,然后你指定的所有細(xì)節(jié),自己在代碼里把菜單項(xiàng),什么中間件、角色使用等等。所以,這個(gè)生成器會(huì)為你的管理面板做很多部分工作。
Backpack for Laravel這實(shí)際上是一個(gè)龐大的項(xiàng)目,它不僅僅是構(gòu)建于一個(gè)管理面板之上的,它還有一個(gè)方便的多帶帶包結(jié)構(gòu):基礎(chǔ),增刪改查 日志管理器,后臺(tái)管理器等。作者稱(chēng)這個(gè)擴(kuò)展包適用于創(chuàng)業(yè)者的各種演示網(wǎng)站,以及復(fù)雜的 Web 應(yīng)用程序。
提示:Backpack 使用案例已經(jīng)在之前的 laravel資訊文章中有提到。
除了增刪改查生成器,它已經(jīng)預(yù)先構(gòu)建的增刪改查模塊包含:權(quán)限管理、設(shè)置、頁(yè)面管理、新聞管理、菜單管理。另外,Backpack 中的一些包可以作為擴(kuò)展:日志、備份和其他一些功能可以很容易地添加到應(yīng)用程序中。
Backpack 的問(wèn)題是它的嚴(yán)格,其嚴(yán)格要描述這樣,所有在您的控制器代碼的增刪改查功能,它可能看起來(lái)像這樣:
class TagCrudController extends CrudController { public function setup() { $this->crud->setModel("AppModelsTag"); $this->crud->setRoute("admin/tag"); $this->crud->setEntityNameStrings("tag", "tags"); $this->crud->setColumns(["name"]); $this->crud->addField([ "name" => "name", "label" => "Tag name" ]); }
雖然在控制器方法中設(shè)置所有東西看起來(lái)很方便,但是如果您想在它上面構(gòu)建任何定制的東西,您將不得不自己“破解” Backpack 擴(kuò)展包。公平地說(shuō),這適用于本系列中的大多數(shù)包,您必須處理依賴項(xiàng),Backpack 擴(kuò)展包是這里擴(kuò)展包最嚴(yán)格的一個(gè)。
值得一提的是 Backpack 擴(kuò)展包不免費(fèi)用于商業(yè)用途,作者用一種人類(lèi)友好的方式說(shuō):“你使用這個(gè)擴(kuò)展包就是應(yīng)該去掙錢(qián)的,而不是免費(fèi)的去工作”(這個(gè)擴(kuò)展包收費(fèi)19美元)。
SleepingOwl Admin這可能是這篇文章中最古老的包之一,但這個(gè)包仍然積極在維護(hù),它是由一家俄羅斯公司創(chuàng)建的,您可以在文檔的某些部分看到俄羅斯語(yǔ)言,在這里和那里提交消息和其他文本。但這并不妨礙實(shí)際使用 sleepingowl 擴(kuò)展包,它是非常強(qiáng)大的。
同樣在其他情況下,這個(gè)擴(kuò)展包的使用語(yǔ)法相當(dāng)嚴(yán)謹(jǐn),這是如何在 sleepingowl 中添加一個(gè)菜單的例子:
Admin::menu()->url("/")->label("Start Page")->icon("fa-dashboard")->uses("AppHTTPControllersAdminController@getIndex"); Admin::menu(AppUser::class)->icon("fa-user"); Admin::menu()->label("Subitems")->icon("fa-book")->items(function () { Admin::menu(AcmeModelsBarUser::class)->icon("fa-user"); Admin::menu(AcmeModelsFoo::class)->label("my label"); });
這里的另一個(gè)缺點(diǎn)是包的文件似乎過(guò)時(shí)了一點(diǎn),而不是 類(lèi)似于 admin:install 這樣的 sleepingowl:install Artisan 命令行安裝。在這個(gè)擴(kuò)展包中,還可以找到更多關(guān)于這種不一致的例子。
你可以考慮用這八個(gè)擴(kuò)展包,來(lái)生成你的后臺(tái)管理面板。除了這些,還有五個(gè)沒(méi)有全面的審查的擴(kuò)展包。
我測(cè)試了兩個(gè)未能交付的包:
CrudBooster 它由一些手動(dòng)修復(fù)工作,但文件是難以理解(可能是用谷歌翻譯,作者是來(lái)自印度尼西亞),我也不喜歡作者的一些建議,如使用字段名稱(chēng) xxxx_id、id_xxxx 之類(lèi)的 。
Zofe / Rapyd-Laravel 不幸的是,它沒(méi)有在 Laravel 5.3 中工作,寫(xiě)這篇文章的時(shí)候他們正在更新,根據(jù)他們的自述,最新支持的版本是5.2。
最后,還有三個(gè)優(yōu)質(zhì)的包選擇于 CodeCanyon。我不能提供很多關(guān)于他們的信息,所以我留下來(lái)給你們檢查(我想作者是不愿意再花錢(qián)了(@^_^@),下面都是收費(fèi)的擴(kuò)展包,而且是美元!):
Laravel CRUD – CMS – Sximo 5 LTS($24)
Josh – Laravel Admin Template + Front End + CRUD($25)
Admin Architect – Administration Framework for Laravel ($29)
接下來(lái)就寫(xiě)完了,這些都是可行的選擇,我發(fā)現(xiàn)創(chuàng)建你的 laravel 管理面板(幾乎)不用寫(xiě)代碼。
作者 PovilasKorop 寫(xiě)于 2017 年 4 月 1號(hào)
譯者 angkee
這是一篇譯文,原文地址是 https://laravel-news.com/13-l... 英語(yǔ)好的小伙伴,可以直接去看原文。
文章中提到的擴(kuò)展包我基本都有用過(guò),尤其是 Z-song 開(kāi)發(fā)的 Laravel-admin,在接下來(lái)更新的文章中,我會(huì)再詳細(xì)去寫(xiě)這些擴(kuò)展包的優(yōu)點(diǎn)和缺點(diǎn)。
我的英文水平有限,翻譯的內(nèi)容會(huì)稍有偏差,希望小伙伴們多多包涵。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/26181.html
摘要:值得一提的是擴(kuò)展包不免費(fèi)用于商業(yè)用途,作者用一種人類(lèi)友好的方式說(shuō)你使用這個(gè)擴(kuò)展包就是應(yīng)該去掙錢(qián)的,而不是免費(fèi)的去工作這個(gè)擴(kuò)展包收費(fèi)美元。除了這些,還有五個(gè)沒(méi)有全面的審查的擴(kuò)展包。最后,還有三個(gè)優(yōu)質(zhì)的包選擇于。 showImg(https://segmentfault.com/img/remote/1460000012312105?w=2200&h=1125); 開(kāi)發(fā)者們都是懶惰的,不,...
摘要:本文經(jīng)授權(quán)轉(zhuǎn)自社區(qū),后續(xù)更新將以帖子內(nèi)容和內(nèi)容為準(zhǔn)。說(shuō)明另一個(gè)令人喜歡的地方,是擁有活躍的開(kāi)發(fā)者社區(qū),而活躍的開(kāi)發(fā)者社區(qū)帶來(lái)的,是繁華的擴(kuò)展包生態(tài)。本文對(duì)上打了標(biāo)簽的擴(kuò)展包進(jìn)行整理,截止到現(xiàn)在年月號(hào),有超過(guò)個(gè)擴(kuò)展包,以下是下載量最大的個(gè)。 本文經(jīng)授權(quán)轉(zhuǎn)自 PHPHub 社區(qū),后續(xù)更新將以 PHPHub 帖子內(nèi)容 和 GitHub 內(nèi)容 為準(zhǔn)。 說(shuō)明 Laravel 另一個(gè)令人喜歡的地方...
摘要:更多擴(kuò)展包中有豐富的擴(kuò)展包來(lái)幫你完成幾乎任何你想實(shí)現(xiàn)的功能。我們不能把所有的擴(kuò)展包都整理出來(lái),然而,這里還是列出了一些很有用的??傊銕缀蹩偸悄軌蛘业揭粋€(gè)擴(kuò)展包可以解決你當(dāng)前的問(wèn)題。 Laravel 是一個(gè)非常流行且簡(jiǎn)單易用的PHP框架,它提供了很多基礎(chǔ)的工具(如 RESTful 路由、內(nèi)置的ORM、模版等)使你能夠快速的創(chuàng)建應(yīng)用。這意味著你可以花費(fèi)更少的時(shí)間來(lái)建立應(yīng)用程序的模版,給...
摘要:查找保存下載用搭建自己的緩存?zhèn)}庫(kù)權(quán)限管理的好選擇基于封裝的后臺(tái)管理系統(tǒng),支持手機(jī)和端訪問(wèn)支付寶風(fēng)格的驗(yàn)證器后臺(tái)系統(tǒng)微信接口的部署腳本開(kāi)發(fā)的博客系統(tǒng)百度推送自動(dòng)記錄用戶行為擴(kuò)展一個(gè)項(xiàng)目管理系統(tǒng)根據(jù)生成對(duì)應(yīng)導(dǎo)航的狀態(tài) 1.debug https://github.com/barryvdh/l... showImg(https://segmentfault.com/img/bVmhWL); ...
摘要:簡(jiǎn)介另一個(gè)令人喜歡的地方,是擁有活躍的開(kāi)發(fā)者社區(qū),而活躍的開(kāi)發(fā)者社區(qū)帶來(lái)的,是繁華的擴(kuò)展包生態(tài)該項(xiàng)目統(tǒng)計(jì)了目前下載量最高的個(gè)擴(kuò)展包。記得喲相信下面這些擴(kuò)展包會(huì)讓你的編碼更加高效。排名下載量排名包地址下載次數(shù)描述圖片處理。 簡(jiǎn)介 Laravel 另一個(gè)令人喜歡的地方,是擁有活躍的開(kāi)發(fā)者社區(qū),而活躍的開(kāi)發(fā)者社區(qū)帶來(lái)的,是繁華的擴(kuò)展包生態(tài) ———— @Summer 該項(xiàng)目統(tǒng)計(jì)了目前 pack...
閱讀 1981·2019-08-30 15:54
閱讀 3608·2019-08-29 13:07
閱讀 3132·2019-08-29 12:39
閱讀 1799·2019-08-26 12:13
閱讀 1555·2019-08-23 18:31
閱讀 2167·2019-08-23 18:05
閱讀 1856·2019-08-23 18:00
閱讀 1052·2019-08-23 17:15