13 个快速构建 Laravel 后台的扩展包

Laravel 后台生成器扩展包

开发者们都是懒惰的,不,我不是在开玩笑,他们努力建立系统,帮助他们在将来避免更多的、尤为是重复性的工做。如今有一些至关优秀的例子,咱们不须要在编写重复的代码,它将直接为咱们生成。今天咱们将会看到 Laravel 框架中的各式各样的后台管理面板、后端开发者建立的例子,它们能够节省咱们多少时间呢?php

Disclaimer: 我是 quickadminpanel 的创始人,一位创造者。回顾这个市场,这里确实有伟大的竞争对手,我尽量作人要诚实和公正,他们应该获得友善的话语和尊重。前端

有两大类后台管理面板生成器:可视化构建器和基于命令行的。选择取决于您的偏好,是否喜欢使用 GUI 视图面板的,仍是有参数的 Artisan 命令行的。laravel

另外,这里一个重要的术语,知道 CRUD 这个缩写表明“建立、读取、更新、删除”这些操做基于全部的管理面板。一个 CRUD 一般表明一个菜单项的模型来管理数据。git

重要通知:此文章写于 写于 2017 年 4 月 1号,下面全部的扩展包都是在 laravel 5.3 中测试的。在撰写本文的时候,要求他们提供官方的 5.4 版本支持还为时尚早。(半年时间,Laravel 5.5 都已经发布了)github

可视化的后台管理面板

Voyager: The Missing Laravel Admin

Voyager

这个产品虽然很新,但给我留下了深入的印象。它已经有一个大的粉丝团,在以前的 laravel 资讯中有提到过它,和它的 YouTube 开发视频系列。数据库

Voyager 拥有一个专业而且完美的界面,但主要的一点是,它只是工做。清晰的使用说明,友好的前端主题,没有明显的 bug 或未完成的部分。 Voyager 还拥有像船长的图片或船轮图标,使它看起来不错的总体。bootstrap

另外一个明智的决定是有一个参数“虚拟数据”在安装过程当中,你能够有你的管理面板预填充数据使用。后端

Voyager 还用有一个媒体文件管理器,来处理你上传的文件,这很是的方便,并帮助它在其余的后台管理建立者中脱颖而出。浏览器

最后,在 Voyager 的帮助下,你也能够经过一个在你的后端应用程序中的 mini-phpMyAdmin 改变数据库表,从而直接改变你的后台管理面板。bash

总之,Voyager 彷佛是市场上最优雅的解决方案,但若是不支持或更新一段时间,这种状况很容易发生变化,这种状况常常发生在开源的扩展包中。

LaraAdmin: Admin Panel + CRM

LaraAdmin

这是另外一个让我印象深入的项目。安装并登陆到你的管理面板后,你能够直观地建立 CURDs 模块。据做者来说,这个模块化的系统,是受到了 SugarCRM 的启发。

仅仅经过几回点击,你能够生成你的数据库模型的迁移文件。若是你喜欢,你也能够同时或者分开生成 CURD 模块。

LaraAdmin 带有至关多的预约义模块,他们帮助你了解这个系统,可是,另外一方面,若是我要建立个人项目从零开始,这须要花些一些时间来对 LaraAdmin 进行默认配置。

和 Voyager 同样,LaraAdmin 也拥有上传文件功能。能够说,她是你上传文件的内部浏览器。

对于前端视图,LaraAdmin 采用了一种很是受欢迎的主题 adminLTE。它其实是大多数管理面板构建者使用的,它成为一种市场标准。

QuickAdmin: 在线生成器的扩展包

QuickAdmin

这个包是很是简单的,安装以后,您能够建立 CRUD 模块或非 CRUD 的菜单项,指定字段、角色和权限。它多是本文中全部扩展包中描述最少的工具。

对于 QuickAdmin 有一个重要的里程碑,它是一个在线版本的管理面板的工具而不是做为一个现有项目 laravel 包,该生成器能够为你下载和使用整个 Laravel 项目。所以,您没有任何包依赖关系,也不须要学习这个特定包的语法。

非可视化的后台管理面板

Z-song / Laravel-admin

Laravel-admin

这个包介于可视化和非可视化工具二者之间的,生成器的一部分其实是可视化的,所以您能够在管理面板内建立新的菜单项,但对于大多数过程,您必须手动编写代码,好比:

php artisan admin:make UserController --model=App\\User

$router->resource('users', UserController::class);

use Encore\Admin\Grid;
use Encore\Admin\Facades\Admin;
$grid = Admin::grid(Movie::class, function(Grid $grid){
复制代码

这是视觉和基于代码的生成器之间的根本区别,后者须要学习它们的语法、一些规则并坚持它们。若是你想在包上建立一些定制的东西,那可能很麻烦。然而,z-song 开发的扩展包是一个很好的做品。

它还提供了额外的功能,如模型网格、模型表单、模型树,甚至是现成的小部件。

InfyOm Laravel Generator

InfyOm Laravel Generator

它有至关使人印象深入的生成器口号:“让你的 API 和管理面板在几分钟内准备好”,因此他们首先强调 API,而不是管理面板。为此,他们有一个单独的 API 生成器,它能够做为管理面板的一部分,或者做为独立的一部分工做。不只如此,他们还将为 API 生成详细的注释。

虽然 infyom 生成器不是可视化(infyom 声称他们在工做在 GUI 页面之上的),它提供了三种不一样的选项指定的增删改查参数:控制台、JSON 文件、或一个现有的数据库表。是的,你能够为一个已经存在的表生成增删改查模块,是否是很酷?

这个生成器的一个有趣功能,它使用存储模式生成代码,因此您的控制器看起来以下所示:

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);
    }
}
复制代码

这多是一件很是好的事情,或许你不想使用这种存储库模式,以为它太复杂了。可是采用这种模式有一个最大好处,infyom 能够为你生成测试案例代码!

对于前端视图,infyom 提供四种模板可供选择:AdminLTE、 Metronic、Bootstrap、以及 FlatLab.

使用 infyom 最大的问题(与大多数非视觉生成器),是你必须严格遵照他们的规则语法。清楚他们的文档:“仔细阅读文档指定的特定输入,可是若是你使用了错误的参数,这个生成器会像魔术同样工做。

AppzCoder: 增删改查生成器 + 后台管理面板

AppzCoder

这个包有两个产品,一个独立的增删改查生成器,和一个 laravel 后台管理包。它的官方文档说的要求 laravel 5.1 和 5.3 版本之间工做。

安装后,你能够经过一个一个的 Artisan 命令获得一个 bootstrap 默认主题,也能够手动建立增删改查模块。

他们官方文件中的一个例子:

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

若是这对你来讲太难了,你能够在 JSON 文件中提供字段细节,而后将其指定为命令的参数。

您也能够单独生成不一样的文件,以下所示:

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']"

生成增删改查后,而后你指定的全部细节,本身在代码里把菜单项,什么中间件、角色使用等等。因此,这个生成器会为你的管理面板作不少部分工做。

Backpack for Laravel

这其实是一个庞大的项目,它不只仅是构建于一个管理面板之上的,它还有一个方便的单独包结构:基础,增删改查 日志管理器,后台管理器等。做者称这个扩展包适用于创业者的各类演示网站,以及复杂的 Web 应用程序。

提示:Backpack 使用案例已经在以前的 laravel资讯文章中有提到。

除了增删改查生成器,它已经预先构建的增删改查模块包含:权限管理、设置、页面管理、新闻管理、菜单管理。另外,Backpack 中的一些包能够做为扩展:日志、备份和其余一些功能能够很容易地添加到应用程序中。

Backpack 的问题是它的严格,其严格要描述这样,全部在您的控制器代码的增删改查功能,它可能看起来像这样:

class TagCrudController extends CrudController {

  public function setup() {
    $this->crud->setModel("App\Models\Tag");
    $this->crud->setRoute("admin/tag");
    $this->crud->setEntityNameStrings('tag', 'tags');

    $this->crud->setColumns(['name']);
    $this->crud->addField([
    'name' => 'name',
    'label' => "Tag name"
    ]);
  }
复制代码

虽然在控制器方法中设置全部东西看起来很方便,可是若是您想在它上面构建任何定制的东西,您将不得不本身“破解” Backpack 扩展包。公平地说,这适用于本系列中的大多数包,您必须处理依赖项,Backpack 扩展包是这里扩展包最严格的一个。

值得一提的是 Backpack 扩展包难免费用于商业用途,做者用一种人类友好的方式说:“你使用这个扩展包就是应该去挣钱的,而不是免费的去工做”(这个扩展包收费19美圆)。

SleepingOwl Admin

SleepingOwl

这多是这篇文章中最古老的包之一,但这个包仍然积极在维护,它是由一家俄罗斯公司建立的,您能够在文档的某些部分看到俄罗斯语言,在这里和那里提交消息和其余文本。但这并不妨碍实际使用 sleepingowl 扩展包,它是很是强大的。

一样在其余状况下,这个扩展包的使用语法至关严谨,这是如何在 sleepingowl 中添加一个菜单的例子:

Admin::menu()->url('/')->label('Start Page')->icon('fa-dashboard')->uses('\App\HTTP\Controllers\AdminController@getIndex');
Admin::menu(\App\User::class)->icon('fa-user');
Admin::menu()->label('Subitems')->icon('fa-book')->items(function ()
{
    Admin::menu(\Acme\Models\Bar\User::class)->icon('fa-user');
    Admin::menu(\Acme\Models\Foo::class)->label('my label');
});
复制代码

这里的另外一个缺点是包的文件彷佛过期了一点,而不是 相似于 admin:install 这样的 sleepingowl:install Artisan 命令行安装。在这个扩展包中,还能够找到更多关于这种不一致的例子。


你能够考虑用这八个扩展包,来生成你的后台管理面板。除了这些,还有五个没有全面的审查的扩展包。

我测试了两个未能交付的包:

  • CrudBooster 它由一些手动修复工做,但文件是难以理解(多是用谷歌翻译,做者是来自印度尼西亚),我也不喜欢做者的一些建议,如使用字段名称 xxxx_idid_xxxx 之类的 。
  • Zofe / Rapyd-Laravel 不幸的是,它没有在 Laravel 5.3 中工做,写这篇文章的时候他们正在更新,根据他们的自述,最新支持的版本是5.2。

最后,还有三个优质的包选择于 CodeCanyon。我不能提供不少关于他们的信息,因此我留下来给大家检查(我想做者是不肯意再花钱了(@^_^@),下面都是收费的扩展包,并且是美圆!):

接下来就写完了,这些都是可行的选择,我发现建立你的 laravel 管理面板(几乎)不用写代码。

这是一篇译文,原文地址是 https://laravel-news.com/13-laravel-admin-panel-generators. 英语好的小伙伴,能够直接去看原文。

文章中提到的扩展包我基本都有用过,尤为是 Z-song 开发的 Laravel-admin,在接下来更新的文章中,我会再详细去写这些扩展包的优势和缺点。

个人英文水平有限,翻译的内容会稍有误差,但愿小伙伴们多多包涵。

相关文章
相关标签/搜索