Symfony
Changer l'encodage de la base de données
- config.yml
doctrine: dbal: charset: UTF8MB4
Dans la définition des entités:
/** * Bookmark * * @ORM\Table(name="bookmark", options={"collate":"utf8mb4_general_ci", "charset":"utf8mb4"}) * @ORM\Entity(repositoryClass="AppBundle\Repository\BookmarkRepository") */ class Bookmark { // ... }
Utiliser les événements des formulaires
Dans le buildForm() de la classe d'un formulaire:
<?php // ... use Symfony\Component\Form\FormEvent; use Symfony\Component\Form\FormEvents; // ... $builder->addEventListener( FormEvents::POST_SUBMIT, function (FormEvent $event) use ($titlePageGetter) { $bookmark = $event->getData(); // ... } );
Utiliser un service au sein d'un formulaire
Dans le configureOptions() de la classe d'un formulaire:
$resolver->setRequired('service_name');
Dans le buildForm():
$service = $options['service_name'];
Dans le contrôleur:
$form = $this->createForm(FormType::class, $entity, array( 'service_name' => $this->get('service_name') ));
Travailler avec les migrations
Les numéros de migrations appliquées apparaissent dans la table migrations_versions.
On n'utilise plus doctrine:schema:update mais doctrine:migrations:diff et doctrine:migrations:migrate.