====== Symfony ====== ==== Changer l'encodage de la base de données ==== * https://symfony.com/doc/current/reference/configuration/doctrine.html * [[http://jameshalsall.co.uk/posts/4-byte-utf-8-characters-with-doctrine-and-mysql]] 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: 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''.