FOSUserBundle et PlaceHolder
Bonjour à tous,
Je suis en train d'essayer de surcharger le register du FOSUserBundle pour qu'il ait ses label avec des placeHolders.
Pour ça j'ai fait (en suivant un tuto) :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| <?php
namespace project\UserBundle\Form\Handler;
use FOS\UserBundle\Form\Handler\RegistrationFormHandler as BaseHandler;
class RegistrationFormHandler extends BaseHandler
{
protected function onSuccess(UserInterface $user, $confirmation)
{
$user->setUsername($user->getEmail());
parent::onSuccess($user, $confirmation);
}
} |
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
| <?php
namespace project\UserBundle\Form\Type;
use Symfony\Component\Form\AbstractType as BaseType;
class RegistrationFormType extends BaseType
{
public function buildForm(FormBuilder $builder, array $options)
{
parent::buildForm($builder, $options);
$builder->remove('plainPassword')
->add('plainPassword', 'password')
->get('username')->setAttribute('attr', array('placeholder' => 'Make up a username'))
->get('email')->setAttribute('attr', array('placeholder' => 'Enter your email address'))
->get('plainPassword')->setAttribute('attr', array('placeholder' => 'Enter your personal password'));
}
public function getName()
{
return 'project_user_registration';
}
} |
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| {% extends "FOSUserBundle::layout.html.twig" %}
{% block fos_user_content %}
{{ form_errors(form) }}
<form action="{{ path('fos_user_registration_register') }}" {{ form_enctype(form) }} method="POST" class="fos_user_registration_register">
{{ form_widget(form._token) }}
<div>
{{ form_errors(form.username) }}
{{ form_widget(form.username) }}
</div>
<div>
{{ form_errors(form.email) }}
{{ form_widget(form.email) }}
</div>
<div>
{{ form_errors(form.plainPassword) }}
{{ form_widget(form.plainPassword) }}
</div>
<input type="submit" class="blue_form_button large" value="{{ 'registration.submit'|trans({}, 'FOSUserBundle') }}">
</form>
{% endblock fos_user_content %} |
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
| <container xmlns="http://symfony.com/schema/dic/services"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd">
<services>
<service id="fos_user.registration.form" factory-method="createNamed" factory-service="form.factory" class="Symfony\Component\Form\Form">
<argument>%fos_user.registration.form.type%</argument>
<argument>%fos_user.registration.form.name%</argument>
<argument />
<argument type="collection">
<argument key="validation_groups">%fos_user.registration.form.validation_groups%</argument>
</argument>
</service>
<service id="fos_user.registration.form.type" class="FOS\UserBundle\Form\Type\RegistrationFormType">
<tag name="form.type" alias="fos_user_registration" />
<argument>%fos_user.model.user.class%</argument>
</service>
<service id="fos_user.registration.form.handler.default" class="FOS\UserBundle\Form\Handler\RegistrationFormHandler" scope="request" public="false">
<argument type="service" id="fos_user.registration.form" />
<argument type="service" id="request" />
<argument type="service" id="fos_user.user_manager" />
<argument type="service" id="fos_user.mailer" />
<argument type="service" id="project.persona_manager" />
</service>
</services>
</container> |
Code:
1 2 3 4 5 6 7 8 9 10 11
| project_user.registration.form.type:
class: project\UserBundle\Form\Type\RegistrationFormType
arguments: [%fos_user.model.user.class%]
tags:
- { name: form.type, alias: project_user_registration }
project_user.registration.form.handler:
class: project\UserBundle\Form\Handler\RegistrationFormHandler
arguments: ["@fos_user.registration.form", "@request", "@fos_user.user_manager", "@fos_user.mailer"]
scope: request
public: false |
Code:
1 2 3 4 5 6 7 8 9 10 11 12
| registration:
confirmation:
enabled: true
from_email:
address: noreply@project.com
sender_name: Admin de project
template: projectUserBundle:Registration:email.txt.twig
form:
type: project_user.registration.form.type
handler: project_user.registration.form.handler
name: fos_user_registration_form
validation_groups: [Registration] |
Le problème est que quand je charge ma page de register, il me sort l'erreur :
InvalidArgumentException: The service definition "project_user.registration.form.handler" does not exist.
Que dois je fais ?
Merci :)