Download the PHP package playtini/easy-admin-helper-bundle without Composer
On this page you can find all versions of the php package playtini/easy-admin-helper-bundle. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download playtini/easy-admin-helper-bundle
More information about playtini/easy-admin-helper-bundle
Files in playtini/easy-admin-helper-bundle
Package easy-admin-helper-bundle
Short Description EasyAdmin Helper Bundle
License proprietary
Informations about the package easy-admin-helper-bundle
EasyAdmin Helper Bundle
Extends EasyAdmin with reusable traits, fields, and controllers for building admin panels. Requires PHP 8.5+ and Symfony 7.4+/8.1+.
Install
composer require playtini/easy-admin-helper-bundle
Create App\EasyAdmin\EasyAdminMenu implementing EasyAdminMenuInterface.
Create DashboardController extending CustomDashboardController.
Add to config/services.yaml:
Load routes. Add to config/routes/easyadmin.yaml:
EasyAdmin 5 requires pretty URLs, so the EasyAdmin route loader must be enabled for the custom CRUD actions (archive, duplicate) to be registered. Add to the same config/routes/easyadmin.yaml:
Install bundle assets (symlinks JS/CSS to public/bundles/easyadminhelper/):
php bin/console assets:install
Features
Controller Traits
| Trait | Purpose |
|---|---|
CrudControllerTrait |
Base CRUD config (date formats, pagination, actions, detail→edit redirect) |
ArchiveCrudControllerTrait |
Soft-delete via archiving (auto-filters archived, archive/unarchive actions) |
DuplicateCrudControllerTrait |
Entity duplication via DuplicateInterface |
ReadOnlyCrudControllerTrait |
Disables all edit/delete actions, makes fields disabled |
InlineEditCrudControllerTrait |
Inline editing support |
SaveCrudControllerTrait |
Custom save logic via repository |
UserCrudControllerTrait |
Current user helpers |
QuickDateFilterCrudTrait |
Dropdown with preset date periods (1h, today, 24h, 7d, 30d) |
DateRangePickerCrudTrait |
Calendar-based date range picker with from/to params |
Entity Traits
| Trait | Fields |
|---|---|
IdEntityTrait |
Auto-increment id |
NameEntityTrait / NameUniqueEntityTrait |
name (varchar 255) |
LongNameEntityTrait |
name (varchar 1000) |
CreatableEntityTrait |
createdAt (auto-set on persist) |
UpdatableEntityTrait |
updatedAt (auto-set on persist/update) |
ArchivableEntityTrait |
archivedAt (soft-delete timestamp) |
IsEnabledTrait |
isEnabled (boolean) |
UidEntityTrait |
uid (unique string) |
CommentEntityTrait / ShortCommentEntityTrait |
comment (text / varchar 1024) |
DataEntityTrait |
data (JSON column with YAML display helper) |
VirtualFieldsEntityTrait |
Stub methods for computed fields |
Entity Base Classes
BaseAuditLog is a #[ORM\MappedSuperclass] carrying the eight columns of a per-request audit log (username, routeName, routeParams, url, httpMethod, statusCode, ip, responseTimeMs) plus id/createdAt via CreatableEntityTrait. Subclass it with your own #[ORM\Entity], indexes and repository:
#[ORM\HasLifecycleCallbacks] must be declared on the concrete class or createdAt never gets set. Do not also use IdEntityTrait — CreatableEntityTrait already composes it.
Requires doctrine.orm.auto_mapping: true in the consuming application, or an explicit Doctrine mapping for the Playtini\EasyAdminHelperBundle\Entity namespace. Without one, Doctrine treats BaseAuditLog as transient and the subclass maps to zero columns — doctrine:schema:update will then propose dropping every column from the existing table rather than failing loudly.
CrudField Helper
Static factory for pre-configured EasyAdmin fields:
AdminFormatter
Quick Date Filter
Dropdown with preset date periods. Query param: ?period=24h
Override getQuickDateField(), getQuickDateDefault(), getQuickDateOptions() to customize.
Date Range Picker
Calendar-based date range picker. Query params: ?from=2025-01-01&to=2025-01-31
The trait handles createIndexQueryBuilder() and configureResponseParameters() automatically. Override getDateRangeField() and getDateRangeDefaultDays() to customize.
Release Session Early
#[ReleaseSessionEarly] marks a controller class or method as session-read-only. ReleaseSessionEarlyListener then flushes the session ($session->save()) before the action runs, so the session row isn't held for the duration — useful for concurrent XHRs from the same user.
Sessions are never started by the listener: if the controller hasn't started one, nothing happens. It's inert in a project that doesn't use the attribute. Attribute lookup is not inheritance-aware — declare it on the concrete controller class or method, not on an abstract base controller. For invokable controllers, the attribute is honoured whether it's placed on the class or on __invoke().
Bulk Import
BulkImportType is a paste-a-TSV import form backed by Form\Dto\BulkImport. It knows nothing about the target entity: the controller reads BulkImport::getRows() and decides what each row means. BulkImport::getMode() returns one of five modes (MODE_CREATE_OR_UPDATE, MODE_CREATE_ONLY, MODE_UPDATE_ONLY, MODE_CREATE_SKIP_EXISTING, MODE_UPDATE_SKIP_MISSING) so every project offers the same choices with the same stored values.
Doc Controllers
Built-in documentation viewer for markdown files in {project}/doc/. Supports YAML front matter. Routes:
/admin/doc— doc index/admin/doc/{name}— single doc page/admin/doc/db— database diagrams
Bundled Assets
The bundle ships common vendor JS/CSS in public/. After assets:install they're available at /bundles/easyadminhelper/:
js/jquery.js— jQueryjs/chart.js— Chart.jsjs/moment.min.js— Moment.jsjs/vanilla-datetimerange-picker.js— Date range pickercss/vanilla-datetimerange-picker.css— Date range picker styles
The bundle layout (templates/layout.html.twig) includes common CSS utilities (.positive, .negative, .uid, .short-1–.short-6, .btn-xs, etc.) and auto-initializes Bootstrap tooltips.
All versions of easy-admin-helper-bundle with dependencies
easycorp/easyadmin-bundle Version ^5.1
erusev/parsedown Version ^1.8
gupalo/browser-notifier Version ^1.4
gupalo/dateutils Version ^1.20
gupalo/monolog-dbal-logger Version ^1.11
gupalo/symfony-form-transformers Version ^1.4
gupalo/uidgenerator Version ^1.2
luchaninov/csv-file-loader Version ^1.10
peekabooauth/peekaboo-bundle Version ^1.8
spatie/yaml-front-matter Version ^2.1
symfony/framework-bundle Version ^7.4|^8.1