EasyAdmin 5.0:为您的管理后台打造全新基础
Source: Dev.to
EasyAdmin 5.0.0 刚刚作为 EasyAdmin 的全新 稳定版本 发布。
EasyAdmin 遵循与 Symfony 类似 的开发哲学。这意味着 EasyAdmin 5.x 包含 完全相同的功能 与 4.x。不同之处在于 5.x 移除了在 4.x 周期中被弃用的所有内容,提供了更简洁、更具前瞻性的基础。
EasyAdmin 5.0 提高了 Symfony 和 PHP 的最低要求,同时仍保持广泛的兼容性。它支持 Symfony 6.4、所有 7.x 与 8.x 版本,兼容 Doctrine ORM 2.x 及以上,并且要求 PHP 8.2 或更高版本。
5.0 中的更改
在 4.x 期间引入的所有功能现在都是 5.0 唯一受支持的方式。以下是最重要更改的概要。
漂亮的 URL(Pretty URLs)
- 在 4.x 中,你仍然可以使用该 Bundle 自第一天起就使用的传统 URL 格式,例如:
https://example.com/admin?crudAction=edit&crudControllerFqcn=App%5CController%5CAdmin%5cPostCrudController&entityId=3874
- 在 5.0 中仅支持 漂亮的 URL,例如:
https://example.com/admin/post/3874/edit
- 在 version 4.14 中引入。
- 不需要任何配置——得益于 Symfony Flex 配方加载的自定义 Symfony 路由加载器,默认已启用。
漂亮的 URL 已在生产环境中测试超过一年。在此期间我们修复了与菜单、自定义操作等相关的边缘情况。它们已稳定,可用于所有应用。
通过属性定义仪表盘
不再依赖 Symfony 的 #[Route] 属性,你现在必须在仪表盘类上使用 #[AdminDashboard] 属性(在 version 4.24 中添加):
// BEFORE (4.x)
use Symfony\Component\Routing\Attribute\Route;
class DashboardController extends AbstractDashboardController
{
#[Route('/admin', name: 'admin')]
public function index(): Response
{
// …
}
}
// AFTER (5.x)
use EasyCorp\Bundle\EasyAdminBundle\Attribute\AdminDashboard;
#[AdminDashboard(routePath: '/admin', routeName: 'admin')]
class DashboardController extends AbstractDashboardController
{
public function index(): Response
{
// …
}
}
新属性支持 Symfony 提供的所有路由选项,并添加了自己的功能(例如自定义管理员路由的格式以及限制每个仪表盘可用的 CRUD 控制器)。
在后台嵌入 Symfony 控制器
通过在 version 4.25 中新增的 #[AdminRoute] 属性,你可以将任意 Symfony 控制器动作集成到后台。该属性会自动生成在一个或多个仪表盘中渲染你的动作所需的路由,复用与内置 EasyAdmin 动作相同的布局、菜单和视觉设计。
动作改进
在 4.x 周期中我们发布了多项动作改进:
自动完成自定义
在 version 4.28 中,我们加入了对自动完成条目渲染方式的完整控制:
// 使用回调进行简单自定义
yield AssociationField::new('category', 'post.category')
->setSortProperty('name')
->autocomplete(
callback: static fn (Category $c): string => sprintf('%s %s', $c->getIcon(), $c->getName())
);
// 使用 Twig 模板片段进行包含 HTML 元素的复杂自定义
yield AssociationField::new('author', 'post.author')
->setSortProperty('fullName')
->autocomplete(
template: 'admin/post/_author_autocomplete.html.twig',
renderAsHtml: true
);
自定义图标集
EasyAdmin 默认仍使用 FontAwesome 图标,但自 version 4.16 起,你可以使用任何图标集,例如 Tabler 或 Material Icons。
新的 Twig 组件
在 4.x 周期中我们为常用 UI 元素引入了 Twig 组件。在 EasyAdmin 5.x 中,长期目标是基于可复用的 Twig 组件构建整个 UI,从而更容易组合出完整的界面。
自定义管理页面。
升级到 5.x
我们强烈建议 尽快升级。EasyAdmin 4.x 将不再接收新功能,未来的改进将仅面向 5.x。
-
移除代码库中的所有已废弃功能。
- 检查 Symfony Profiler 或在运行测试套件时将已废弃的警告视为错误。
- 查看 EasyAdmin 4.x → 5.x 升级指南 以获取详细说明。
-
在
composer.json中更新 Composer 约束:
composer require easycorp/easyadmin-bundle:^5.0
由于 5.0 在功能上与最新的 4.x 发行版相同(唯一的区别是移除了已废弃的代码),在清除已废弃功能后不应再需要其他更改。
初次尝试 EasyAdmin
如果您是 EasyAdmin 新手,请从官方文档和快速入门指南开始。该 bundle 开箱即用,兼容 Symfony Flex,且 pretty‑URL 加载器会自动启用,让您可以立即专注于构建管理界面。
开始使用 EasyAdmin
要开始使用 EasyAdmin,请运行以下命令:
composer require easycorp/easyadmin-bundle
php bin/console make:admin:dashboard
php bin/console make:admin:crud
这将创建一个带有仪表盘和首个 CRUD 控制器的可用管理后台。随后,浏览 EasyAdmin 文档 以自定义字段、操作、过滤器等。
您还可以查看 EasyAdmin Demo 项目。
✨ 如果您喜欢这些功能并想看到更多类似内容,请考虑 赞助 EasyAdmin 项目 🙌💡