aequation/eadmin
Symfony bundle extending EasyAdmin with AEQUATION enhancements. Adds extra tooling and integrations to customize and streamline your admin backend, with improved configuration options and features on top of EasyAdmin.
Installation
composer require aequation/eadmin
Ensure your project uses Symfony 5.4+ and EasyAdmin 4.x.
Enable the Bundle
Add to config/bundles.php:
Aequation\EAdminBundle\AequationEAdminBundle::class => ['all' => true],
First Use Case Extend an existing EasyAdmin CRUD controller to leverage custom features:
use Aequation\EAdminBundle\Controller\AdminController;
class CustomPostCrudController extends AdminController
{
// Inherit custom admin panel features
}
Key Files to Review
src/Resources/config/services.yaml (for autowiring)src/Controller/AdminController.php (base class)README.md (for bundle-specific features like bulk actions or UI tweaks).Use the provided AdminController as a base class to inherit:
class PostCrudController extends AdminController
{
public static function getEntityFqcn(): string
{
return Post::class;
}
// Override to add custom bulk actions
protected function configureBulkActions(): void
{
$this->bulkAction('publish', 'Publish')
->linkToCrudAction('publishAction');
}
}
Leverage the bundle’s Twig extensions for:
eadmin_custom_js or eadmin_custom_css in templates.eadmin.pre_build_menu or eadmin.post_render:
# config/services.yaml
services:
App\EventListener\AdminMenuListener:
tags:
- { name: kernel.event_listener, event: eadmin.pre_build_menu, method: onBuildMenu }
Reuse the bundle’s form types (if provided) for consistency:
use Aequation\EAdminBundle\Form\Type\CustomFieldType;
$builder->add('status', CustomFieldType::class, [
'choices' => ['draft', 'published'],
]);
AdminController.configureFields(), configureActions()).Namespace Collisions
The bundle uses Aequation\EAdminBundle—ensure your project doesn’t shadow this namespace.
Fix: Use fully qualified class names or aliases in config/autoload.php.
EasyAdmin Version Mismatch
The bundle assumes EasyAdmin 4.x. Upgrading EasyAdmin may break features.
Tip: Pin versions in composer.json:
"easyadmin/bundle": "^4.0",
"aequation/eadmin": "dev-main"
Missing Documentation With 0 stars/dependents, assume undocumented features. Use:
grep -r "public function" src/
to explore available methods.
Event System Quirks
Events like eadmin.post_render may fire after the response is sent. Use kernel.response events for late-stage modifications.
_eadmin namespace).// In a listener
$this->logger->info('Event triggered', ['event' => $event->getName()]);
Custom Bulk Actions
Override configureBulkActions() and define routes in routes/eadmin.yaml:
eadmin_bulk_publish:
path: /posts/publish
methods: POST
controller: App\Controller\Admin\PostCrudController::publishAction
Twig Extensions
Add custom filters/functions by implementing TwigExtension and tagging it:
tags:
- { name: twig.extension }
Database Abstraction If the bundle includes DBAL helpers, wrap queries in transactions:
$entityManager->beginTransaction();
try {
$this->bulkActionService->execute($entities);
$entityManager->commit();
} catch (\Exception $e) {
$entityManager->rollback();
throw $e;
}
dump() Sparingly: Replace with var_export() for cleaner logs.curl to simulate POST requests:
curl -X POST -d "ids[]=1&ids[]=2" http://localhost/eadmin/posts/bulk-publish
How can I help you explore Laravel packages today?