当前位置: 首页 > Web前端 > HTML

快速构建Laravel后端的13个扩展

时间:2023-04-02 14:05:59 HTML

开发人员是懒惰的,不,我不是在开玩笑,他们努力创建系统来帮助他们避免将来更多,尤其是重复性的工作。现在已经有一些很不错的例子了,我们不用再写重复的代码,直接生成给我们。今天我们将看到后台开发人员在Laravel框架中创建的各种后台管理面板和示例。他们能为我们节省多少时间?免责声明:我是quickadminpanel的创始人,一个创作者。回顾这个市场,这里确实有强大的竞争对手,我尽量做到诚实和公平,他们值得客气和尊重。管理面板构建器分为两大类:可视化构建器和基于命令行的构建器。选择取决于您的偏好,您是喜欢使用GUI视图面板,还是喜欢带参数的Artisan命令行。另外,这里有一个重要术语,知道首字母缩写词CRUD代表“创建、读取、更新、删除”,这些操作基于所有管理面板。CRUD通常表示用于管理数据的菜单项模型。重要提示:本文写于2017年4月1日,以下所有扩展均在laravel5.3中测试。在撰写本文时,要求他们提供正式的5.4版本支持还为时过早。(Laravel5.5已经发布半年了)可视化后台管理面板Voyager:TheMissingLaravelAdmin虽然很新,但给我留下了深刻的印象。它已经拥有庞大的粉丝群,在之前的laravel时事通讯及其YouTube开发视频系列中已经提到过。Voyager拥有专业且完美的界面,但最重要的是它可以正常工作。清晰的说明,友好的前端主题,没有明显的错误或未完成的部分。航海者号还有船长照片或轮船之类的图标,使它整体看起来不错。另一个明智的决定是在安装期间有一个参数“虚拟数据”,您可以让您的管理面板预先填充数据以供使用。Voyager还有一个媒体文件管理器来处理你上传的文件,这非常方便,帮助它从其他后台管理创作者中脱颖而出。最后,在Voyager的帮助下,您还可以通过后端应用程序中的mini-phpMyAdmin更改数据库表来直接更改后端管理面板。总而言之,Voyager似乎是市场上最优雅的解决方案,但如果一段时间不支持或不更新,这种情况很容易改变,这种情况经常发生在开源扩展包中。LaraAdmin:AdminPanel+CRM这是另一个给我留下深刻印象的项目。一旦安装并登录到您的管理面板,您就可以直观地创建CURD模块。据作者介绍,这个模块化系统的灵感来自于SugarCRM。只需点击几下,您就可以为您的数据库模型生成迁移文件。如果愿意,您还可以同时或单独生成CURD模块。LaraAdmin附带了很多预定义的模块,它们可以帮助您了解系统,但是,另一方面,如果我要从头开始创建我的项目,默认情况下配置LaraAdmin会花费一些时间。和Voyager一样,LaraAdmin也有文件上传功能。可以说她就是你上传文件的内部浏览器。对于前端视图,LaraAdmin使用了非常流行的主题adminLTE。它实际上是大多数管理面板构建器使用的,并且它正在成为一种市场标准。QuickAdmin:OnlineBuilder扩展包这个包非常简单,安装后可以创建CRUD模块或非CRUD菜单项,指定字段、角色和权限。它可能是本文中所有扩展包中描述最少的工具。QuickAdmin有一个重要的里程碑,它是管理面板工具的在线版本,而不是现有项目的laravel包,生成器可以为您下载和使用整个Laravel项目。所以你没有任何包依赖,也不需要学习这个特定包的语法。非可视化后台管理面板Z-song/Laravel-admin这个包介于可视化和非可视化工具之间,生成器的一部分实际上是可视化的,所以你可以在管理面板中创建新的菜单项,但是对于大部分过程你必须像这样手动编码:phpartisanadmin:makeUserController--model=App\\User$router->resource('users',UserController::class);useEncore\Admin\Grid;useEncore\Admin\Facades\Admin;$grid=Admin::grid(Movie::class,function(Grid$grid){这是视觉生成器和基于代码的生成器的根本区别,后者需要学习它们的语法、一些规则并遵守它们.如果你想在pack上自定义一些东西,会很麻烦,不过z-song开发的扩展包是个好作品,它还提供了额外的功能,比如modelgrid,modelform,modeltree,and即使是现成的小部件InfyOmLaravelGenerator它有一个相当令人印象深刻的生成器口号:“在几分钟内准备好你的API和管理面板”,所以他们首先强调API,而不是管理面板。为此,他们有一个单独的API生成器,它可以作为管理面板的一部分工作,也可以作为独立的部分工作。不仅如此,它们还会为API生成详细的注释。虽然infyom生成器不是可视化的(infyom声称它们在GUI页面上工作),但它提供了三种不同的选项来指定CRUD参数:控制台、JSON文件或现有的数据库表。是的,您可以为现有表生成CRUD模块,是不是很酷?这个生成器的一个有趣的特性是它使用存储模式来生成代码,所以你的控制器看起来像这样:classBookControllerextendsAppBaseController{/**@varBookRepository*/private$bookRepository;公共函数__construct(BookRepository$bookRepo){$this->bookRepository=$bookRepo;}/***显示本书的列表。**@paramRequest$request*@returnResponse*/publicfunctionindex(Request$request){$this->bookRepository->pushCriteria(newRequestCriteria($request));}$books=$this->bookRepository->all();返回视图('books.index')->with('books',$books);}}这可能是一件非常好的事情,也许你不想使用这个存储库模式并且认为它太复杂了。但是采用这种模式有一个最大的好处,infyom可以为你生成测试用例代码!对于前端视图,infyom提供了四种模板可供选择:AdminLTE、Metronic、Bootstrap和FlatLab。使用infyom的最大问题(与大多数非可视化生成器相比)是您必须严格遵守它们的规则语法。清楚他们的文档:“仔细阅读文档指定特定的输入,但如果你使用错误的参数,这个生成器将像魔术一样工作。”AppzCoder:CRUDGenerator+AdminPanel这个包有两个产品,一个独立的CRUD生成器,一个laravel后台管理包。它的官方文档说它需要laravel5.1和5.3版本才能工作。安装后,可以通过Artisan命令一条一条获取bootstrap默认主题,也可以手动创建CRUD模块。他们官方文档中的示例:phpartisancrud:generatePosts--fields="title#string;content#text;category#select#options=technology,tips,health"--view-path=admin--controller-namespace=Admin--route-group=admin如果这对您来说太难,您可以在JSON文件中提供字段详细信息,然后将它们指定为命令的参数。你也可以分别生成不同的文件,像这样:phpartisancrud:controllerPostsController--crud-name=posts--model-name=Post--view-path="directory"--route-group=adminmodelPost--fillable="['title','body']"生成CRUD后,然后指定所有细节,并将菜单项、中间件、角色等放在代码中。因此,此生成器将为您的管理面板完成许多工作。Laravel的Backpack实际上是一个巨大的项目。它不仅建立在一个管理面板上,还有一个方便的独立包结构:基础、CRUD日志管理器、后台管理器等。作者声称这个扩展包适用于各种创业者演示网站,以及复杂的网络应用程序。提示:在之前的laravel新闻文章中已经提到了Backpack用例。除了CRUD生成器,其预置的CRUD模块还包括:权限管理、设置、页面管理、新闻管理、菜单管理。此外,Backpack中的一些包可以作为扩展使用:日志记录、备份和一些其他功能可以很容易地添加到应用程序中。Backpack的问题在于它很严格,它严格地描述了控制器代码中的所有CRUD功能,就像这样,它可能看起来像这样:“应用程序\模型\标签”);$this->crud->setRoute("admin/tag");$this->crud->setEntityNameStrings('标签','标签');$this->crud->setColumns(['name']);$this->crud->addField(['name'=>'name','label'=>"标签名称"]);虽然在控制器方法中设置所有内容似乎很方便,但如果您想在其上构建任何自定义内容,则必须自己“破解”Backpack扩展包。公平地说,这适用于本系列中的大多数包,你必须处理依赖关系,Backpack扩展包是这里限制最多的一个。值得一提的是,Backpack扩展包不是免费商用的,作者通俗易懂地说:“你应该用这个扩展包来赚钱,而不是免费工作”(这个扩展包收费$19).SleepingOwlAdmin这可能是这篇文章中最古老的包之一,但这个包仍在积极维护,它是由一家俄罗斯公司创建的,你可以在文档的某些部分看到俄语,在这里和那里提交消息和其他文本。但这并不妨碍您实际使用sleepingowl扩展,它非常强大。同样在其他情况下,这个扩展包的使用语法非常严格,这里是一个如何在sleepingowl中添加菜单的示例:Admin::menu()->url('/')->label('StartPage')->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('我的标签');});这里的另一个缺点是包的文档似乎有点过时,而不是像admin:install这样的sleepingowl:installArtisan命令行安装。在此扩展包中还可以找到有关这种不一致的更多示例。你可以考虑使用这八个扩展包来生成你的后台管理面板。除了这些,还有五个扩展包没有完整的评论。我测试了两个未能交付的包:CrudBooster它通过一些手动修复工作,但文档很难理解(可能是用谷歌翻译的,作者来自印度尼西亚),我也不喜欢作者的一些建议,例如使用字段名称xxxx_id、id_xxxx等。Zofe/Rapyd-Laravel不幸的是它在Laravel5.3中不起作用,在撰写本文时他们正在更新,根据他们的自述文件,最新支持的版本是5.2。最后,CodeCanyon提供三种高级套餐可供选择。关于他们的信息我提供不多,留给大家查(估计作者是不愿意再花钱了(@^_^@),以下都是付费扩展,都是美元!):LaravelCRUD-CMS-Sximo5LTS(24美元)Josh-Laravel管理模板+前端+CRUD(25美元)AdminArchitect-Laravel管理框架(29美元)本文的其余部分就是这些,这些是我发现所有可行的选项来创建你的laravel管理面板(几乎)是免费的。WrittenbyPovilasKorop2017-04-01译者angkee这是翻译,原文地址是https://laravel-news.com/13-l...英语好的朋友可以直接看原文。文中提到的扩展包我基本都用过,尤其是Z-song开发的Laravel-admin。在下一篇更新的文章中,我会详细写出这些扩展包的优缺点。本人英文水平有限,翻译内容可能略有出入。希望朋友们多多包涵。