全新扩展系统上线了!发布Dcat Admin v2.0.0-BETA 版本~
下面由Laravel教程栏目给大家介绍Dcat Admin v2.0.0-BETA 版本发布,希望对需要的朋友有所帮助!
Dcat Admin 是一个基于Laravel-admin二次开发而成的后台构建工具,只需很少的代码即可构建出一个功能完善的高颜值后台系统。
前言
Hi,各位同学大家好!时隔多日,Dcat Admin
终于迎来了2.0
的第一个版本,下面简单介绍一下主要变化,欢迎大家安装体验,如果有问题会即时修复~
安装
已发布 v2.0.1-beta 版本
composer require dcat/laravel-admin:v2.0.1-beta -vvv
有什么变化?
1.扩展
我们在这个版本中重点优化了 扩展
功能,主要简化了扩展的使用流程,让用户可以通过页面安装、卸载、升级扩展,并且同时支持了页面压缩包和composer
两种安装方式。正式版发布时会上线应用市场
功能,敬请期待~
详细使用文档即将在本周内逐步更新~
2.增强表单布局能力
在2.0
中,我们对数据表单的block
布局功能进行了重构,使其支持更复杂的布局,示例
$form->block(8, function (Form\BlockForm $form) { $form->title('基本设置'); $form->showFooter(); $form->width(9, 2); $form->column(6, function (Form\BlockForm $form) { $form->display('id'); $form->text('name'); $form->email('email'); $form->image('avatar'); $form->password('password'); }); $form->column(6, function (Form\BlockForm $form) { $form->text('username'); $form->email('mobile'); $form->textarea('description'); }); }); $form->block(4, function (Form\BlockForm $form) { $form->title('分块2'); $form->text('nickname'); $form->number('age'); $form->radio('status')->options(['1' => '默认', 2 => '冻结'])->default(1); $form->next(function (Form\BlockForm $form) { $form->title('分块3'); $form->date('birthday'); $form->date('created_at'); }); });
2.0
也支持在tab
布局中嵌套使用column
和rows
布局,如
这个功能同时支持
数据表单
和工具表单
$form->tab('标题', function (Form $form) { $form->column(6, function (Form $form) { ... }); $form->column(6, function (Form $form) { ... });});
3.重构表单响应方法
在1.0
版本中表单的响应方法只有success
、error
和redirect
,无法满足一些比较复杂的场景,在2.0
中我们让表单的响应方法和action
的响应方法统一了起来,使其支持更多功能,并减少开发者的学习成本。
在数据表单中
$form->saving(function (Form $form) { return $form ->response() ->success('保存成功') ->script('console.log("执行JS代码")') ->redirect('auth/users');});
在工具表单中
public function handle(array $input){ ... return $this ->response() ->alert() ->success('成功') ->detail('详细内容');}
4.JS 代码和 PHP 代码分离
这个功能是对laravel-admin2.0版本新特性的跟进,在2.0
中更推荐把JS
代码放到视图文件中,示例
<style> .popover{z-index:29891015} </style> <div class="{{$viewClass['form-group']}}"> <div for="{{ $id }}" class="{{$viewClass['label']}} control-label"> <span>{!! $label !!}</span> </div> <div class="{{$viewClass['field']}}"> @include('admin::form.error') <div class="input-group"> <span class="input-group-prepend"><span class="input-group-text bg-white" style="padding: 4px"><i style="width: 24px;height: 100%;background: {!! $value !!}"></i></span></span> <input {!! $attributes !!} /> @if ($append) <span class="input-group-append">{!! $append !!}</span> @endif </div> @include('admin::form.help-block') </div> </div> <script require="@color"> $('{{ $selector }}').colorpicker({!! json_encode($options) !!}).on('colorpickerChange', function(event) { $(this).parents('.input-group').find('.input-group-prepend i').css('background-color', event.color.toString()); }); </script>
<script>
和 <style>
标签中的代码,将会被提取编译,并实现 Admin::script()
和 Admin::style()
同样的处理效果,需要注意的是<script>
和 <style>
必须是根标签,不能被包裹在其他标签中,否则会提取失败!
5.重构表格列选择器功能
在1.x
中的列选择器中有一些兼容性问题,不能兼容一些特殊类型的表格,所以2.0
中我们对列选择器功能进行了重构,并废弃了旧的api(responsive
)。
新的列选择器功能可以完美兼容固定列
和组合表头
功能,并且支持记住用户操作功能,会自动记住用户的选择,效果如下
6.重构表格事件
在1.0
表格的事件设计得比较随意、不规范,所以我们在2.0
中对表格事件进行了重构,并增加了一些事件,新的表格事件用法如下
use Dcat\Admin\Grid; Grid::make(new Model(), function (Grid $grid) { $grid->listen(Grid\Events\Fetching::class, function (Grid $grid) { ... }); });
如果你想监听所有的Grid
use Dcat\Admin\Grid; use Illuminate\Support\Facades\Event; Event::listen(Grid\Events\Fetching::class, function (Grid $grid) { ... }); // 或者 Grid::resolving(function (Grid $grid) { $grid->listen(Grid\Events\Fetching::class, function (Grid $grid) { ... }); });
关于事件的更多用法,请参考相关文档
7.表格行支持使用Model
在2.0
中如果Grid
表格使用的是model
渲染数据,则可以在数据行相关回调中直接使用model
的对象,如
$grid->clolumn('avatar')->display(function () { // getAvatar是model中的自定义方法,这里可以直接调用 return $this->getAvatar(); });
8.重构模型树行操作
在2.0
中我们对模型树的行操作功能进行了重构,新的行操作功能和数据表格的行操作功能用法一致
use Dcat\Admin\Tree; $tree->actions(function (Tree\Actions $actions) { if ($actions->row->id > 5) { $actions->disableDelete(); // 禁用删除按钮 } // 添加新的action $actions->append(...); }); // 批量添加action $tree->actions([ new Action1(), "<div>...</div>", ... ]);
9.增加settings配置表
在新版本中增加了settings
配置表,目前主要用于保存扩展的启用和禁用配置数据,可以通过以下方式读写配置
// 读取 admin_settings('key1', '默认值'); admin_settings('arr.k1', '默认值'); // 保存配置 admin_settings([ 'key1' => ['v1'], 'arr.k1' => 'v1', ]);
10.数据仓库接口重命名
在2.0
中我们对数据仓库的接口命名做了简化处理,新的interface如下
interface Repository{ /** * 获取主键名称. * * @return string */ public function getKeyName(); /** * 获取创建时间字段. * * @return string */ public function getCreatedAtColumn(); /** * 获取更新时间字段. * * @return string */ public function getUpdatedAtColumn(); /** * 是否使用软删除. * * @return bool */ public function isSoftDeletes(); /** * 获取Grid表格数据. * * @param Grid\Model $model * * @return \Illuminate\Contracts\Pagination\LengthAwarePaginator|Collection|array */ public function get(Grid\Model $model); /** * 获取编辑页面数据. * * @param Form $form * * @return array|\Illuminate\Contracts\Support\Arrayable */ public function edit(Form $form); /** * 获取详情页面数据. * * @param Show $show * * @return array|\Illuminate\Contracts\Support\Arrayable */ public function detail(Show $show); /** * 新增记录. * * @param Form $form * * @return mixed */ public function store(Form $form); /** * 查询更新前的行数据. * * @param Form $form * * @return array|\Illuminate\Contracts\Support\Arrayable */ public function updating(Form $form); /** * 更新数据. * * @param Form $form * * @return bool */ public function update(Form $form); /** * 删除数据. * * @param Form $form * @param array $deletingData * * @return mixed */ public function delete(Form $form, array $deletingData); /** * 查询删除前的行数据. * * @param Form $form * * @return array|\Illuminate\Contracts\Support\Arrayable */ public function deleting(Form $form);}
更多变动
- 控制器命名空间更新为
Dcat\Admin\Http\Controllers
- 废弃操作日志
- 废弃分步表单(已开发成扩展 dcat-admin/form-step)
- 语言包目录重命名(
zh-CN
更新为zh_CN
) - google字体本地化
- 异常处理功能重构
- 表单事件重构
- UI优化
- 静态资源目录由
vendors
更改为vendor
- …
我们在2.0
中做了大量的细节改进,对许多功能接口都做了调整和代码优化,限于篇幅这里不再一一列出,详细说明会放在1.x升级指导文档中(文档即将在这几天内发布)。
关于应用市场和新主题
应用市场会在正式版发布时同步上线;
新主题会开发成插件,也会在正式版发布时同步上线~
以上是全新扩展系统上线了!发布Dcat Admin v2.0.0-BETA 版本~的详细内容。更多信息请关注PHP中文网其他相关文章!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

热门话题

Laravel9和CodeIgniter4的最新版本提供了更新的特性和改进。Laravel9采用MVC架构,提供数据库迁移、身份验证和模板引擎等功能。CodeIgniter4采用HMVC架构,提供路由、ORM和缓存。在性能方面,Laravel9的基于服务提供者设计模式和CodeIgniter4的轻量级框架使其具有出色的性能。在实际应用中,Laravel9适用于需要灵活性和强大功能的复杂项目,而CodeIgniter4适用于快速开发和小型应用程序。

比较Laravel和CodeIgniter的数据处理能力:ORM:Laravel使用EloquentORM,提供类对象关系映射,而CodeIgniter使用ActiveRecord,将数据库模型表示为PHP类的子类。查询构建器:Laravel具有灵活的链式查询API,而CodeIgniter的查询构建器更简单,基于数组。数据验证:Laravel提供了一个Validator类,支持自定义验证规则,而CodeIgniter的验证功能内置较少,需要手动编码自定义规则。实战案例:用户注册示例展示了Lar

Laravel - Artisan 命令 - Laravel 5.7 提供了处理和测试新命令的新方法。它包括测试 artisan 命令的新功能,下面提到了演示?

对于初学者来说,CodeIgniter的学习曲线更平缓,功能较少,但涵盖了基本需求。Laravel提供了更广泛的功能集,但学习曲线稍陡。在性能方面,Laravel和CodeIgniter都表现出色。Laravel具有更广泛的文档和活跃的社区支持,而CodeIgniter更简单、轻量级,具有强大的安全功能。在建立博客应用程序的实战案例中,Laravel的EloquentORM简化了数据操作,而CodeIgniter需要更多的手动配置。

在选择大型项目框架时,Laravel和CodeIgniter各有优势。Laravel针对企业级应用程序而设计,提供模块化设计、依赖项注入和强大的功能集。CodeIgniter是一款轻量级框架,更适合小型到中型项目,强调速度和易用性。对于具有复杂需求和大量用户的大型项目,Laravel的强大功能和可扩展性更合适。而对于简单项目或资源有限的情况下,CodeIgniter的轻量级和快速开发能力则更为理想。

微服务架构使用PHP框架(如Symfony和Laravel)来实现微服务,并遵循RESTful原则和标准数据格式来设计API。微服务通过消息队列、HTTP请求或gRPC进行通信,并使用工具(如Prometheus和ELKStack)进行监控和故障排除。

对于小型项目,Laravel适用于大型项目,需要强大的功能和安全性。CodeIgniter适用于非常小的项目,需要轻量级和易用性。

比较了Laravel的Blade和CodeIgniter的Twig模板引擎,根据项目需求和个人偏好进行选择:Blade基于MVC语法,鼓励良好代码组织和模板继承。Twig是第三方库,提供灵活语法、强大过滤器、扩展支持和安全沙箱。
