Installation
Add the bundle to your composer.json:
composer require 7rin0/bigfoot-user-bundle
Register the bundle in config/bundles.php:
return [
// ...
SevenRin0\BigfootUserBundle\SevenRin0BigfootUserBundle::class => ['all' => true],
];
First Use Case: User Registration
php bin/console doctrine:migrations:diff
php bin/console doctrine:migrations:migrate
use SevenRin0\BigfootUserBundle\Form\RegistrationType;
$form = $this->createForm(RegistrationType::class);
Key Configuration
Check config/packages/seven_rin0_bigfoot_user.yaml for default settings (e.g., user class, security roles). Override as needed:
seven_rin0_bigfoot_user:
user_class: App\Entity\User
registration:
enabled: true
User Management
User entity or use its repository methods (e.g., findByRole()).User entity and update the RegistrationType form:
// src/Form/ExtendedRegistrationType.php
public function buildForm(FormBuilderInterface $builder, array $options) {
parent::buildForm($builder, $options);
$builder->add('customField', TextType::class);
}
Register the new form type in services.yaml:
services:
App\Form\ExtendedRegistrationType:
tags: [form.type]
Security Integration
use SevenRin0\BigfootUserBundle\Security\Voter\UserVoter;
$voter = new UserVoter();
$vote = $voter->vote($token, $object, array('EDIT'));
security.yaml to leverage the bundle’s authentication providers.Theming
vendor/sevenrin0/bigfoot-user-bundle/Resources/views/ to
templates/sevenrin0_bigfoot_user/.registration.html.twig for branding.API Integration
# config/api_platform/resources.yaml
resources:
App\Entity\User:
collectionOperations:
- get
itemOperations:
- get
- put
Lack of Documentation
APP_DEBUG=1) and inspect the bundle’s routes (php bin/console debug:router) to discover endpoints.Entity Configuration
User entity. If using a custom entity, ensure it implements SevenRin0\BigfootUserBundle\Model\UserInterface.user_class in config may cause ClassNotFoundException.Migration Issues
User entity schema or use Doctrine’s reverse-engineering:
php bin/console doctrine:mapping:import --path=src/Entity App\Entity
php bin/console make:migration
Security Quirks
php bin/console debug:security
Log User Events Add a listener to log user actions (e.g., registration):
// src/EventListener/UserListener.php
public function onRegistration(RegistrationEvent $event) {
$this->logger->info('User registered', ['email' => $event->getUser()->getEmail()]);
}
Register the listener in services.yaml:
services:
App\EventListener\UserListener:
tags:
- { name: kernel.event_listener, event: seven_rin0_bigfoot_user.registration.success }
Override Bundle Services To modify the bundle’s behavior (e.g., registration logic), override its services:
services:
SevenRin0\BigfootUserBundle\Service\RegistrationService:
class: App\Service\CustomRegistrationService
arguments:
$userProvider: '@doctrine.orm.entity_manager'
Custom User Provider
Implement UserProviderInterface to fetch users from external sources (e.g., LDAP):
class CustomUserProvider implements UserProviderInterface {
public function loadUserByUsername($username) {
// Custom logic
}
}
Register it in security.yaml:
providers:
custom_provider:
id: App\Security\CustomUserProvider
Event Dispatching Extend functionality by listening to bundle events:
seven_rin0_bigfoot_user.registration.startseven_rin0_bigfoot_user.login.success
Example:$eventDispatcher->addListener(
'seven_rin0_bigfoot_user.registration.success',
function (RegistrationEvent $event) {
// Send welcome email
}
);
Command-Line Tools Create custom commands to manage users:
php bin/console make:command
Example: Bulk user creation:
$userManager = $this->getContainer()->get('seven_rin0_bigfoot_user.user_manager');
$user = $userManager->createUser();
$user->setEmail('user@example.com');
$userManager->updateUser($user);
How can I help you explore Laravel packages today?