dolmitos/symfony-entity-creator-bundle
Installation
composer require dolmitos/symfony-entity-creator-bundle
Ensure Dolmitos\EntityCreatorBundle\DolmitosEntityCreatorBundle::class is registered in config/bundles.php.
Configuration
Add to config/packages/dolmitos_entity_creator.yaml:
dolmitos_entity_creator:
entities:
- App\Entity\YourEntity
form_types:
- App\Form\YourEntityType
First Use Case
Generate a form type for YourEntity via CLI:
php bin/console make:entity-creator:form YourEntity
This auto-generates a form class with default mappings for entity fields.
Dynamic Form Generation Use the bundle to scaffold form types for entities without manual CRUD:
// In a controller
$form = $this->get('dolmitos_entity_creator.form_factory')->createForm(
'YourEntityType',
$entity
);
Custom Field Mapping Extend default behavior by overriding the form type:
# config/packages/dolmitos_entity_creator.yaml
dolmitos_entity_creator:
form_types:
- { class: App\Form\YourEntityType, options: { custom_option: true } }
Integration with API Platform
Combine with API Platform’s ApiResource to auto-generate forms for API endpoints:
#[ApiResource(formType: 'YourEntityType')]
class YourEntity {}
Event-Driven Extensions
Listen to entity_creator.form_build events to modify forms dynamically:
// src/EventListener/FormModifier.php
public function onFormBuild(FormEvent $event) {
$event->getForm()->add('custom_field', TextType::class);
}
Entity Reflection Caching
Clear cache after adding new entities to dolmitos_entity_creator.yaml:
php bin/console cache:clear
Form Type Conflicts
Avoid naming collisions with existing form types. Prefix custom types (e.g., App\Form\YourEntityAdminType).
Doctrine Metadata Issues Ensure entities are properly mapped in Doctrine. The bundle relies on Doctrine’s metadata:
php bin/console doctrine:mapping:info
Verify Configuration Check if entities are registered in the bundle’s config. Use:
php bin/console debug:config dolmitos_entity_creator
Form Dumping Dump form structure for debugging:
$form->getConfig()->getDataClass(); // Check entity class
dump($form->getConfig()->getOption('data_class'));
Custom Field Types Override field types per entity via YAML:
dolmitos_entity_creator:
field_overrides:
YourEntity:
field_name: [App\Form\Type\CustomType, { option: value }]
Validation Groups Pass validation groups dynamically:
$form = $this->get('dolmitos_entity_creator.form_factory')->createForm(
'YourEntityType',
$entity,
['validation_groups' => ['group1', 'group2']]
);
Translation Support Use Symfony’s translation system for form labels/placeholders:
# translations/messages.en.yaml
'YourEntity.field_name': 'Custom Label'
How can I help you explore Laravel packages today?