Afficher la pageAnciennes révisionsLiens de retourHaut de page Cette page est en lecture seule. Vous pouvez afficher le texte source, mais ne pourrez pas le modifier. Contactez votre administrateur si vous pensez qu'il s'agit d'une erreur. ====== 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]] <code yaml config.yml> doctrine: dbal: charset: UTF8MB4 </code> Dans la définition des entités: <code php> /** * Bookmark * * @ORM\Table(name="bookmark", options={"collate":"utf8mb4_general_ci", "charset":"utf8mb4"}) * @ORM\Entity(repositoryClass="AppBundle\Repository\BookmarkRepository") */ class Bookmark { // ... } </code> ==== Utiliser les événements des formulaires ==== Dans le ''buildForm()'' de la classe d'un formulaire: <code php> <?php // ... use Symfony\Component\Form\FormEvent; use Symfony\Component\Form\FormEvents; // ... $builder->addEventListener( FormEvents::POST_SUBMIT, function (FormEvent $event) use ($titlePageGetter) { $bookmark = $event->getData(); // ... } ); </code> ==== Utiliser un service au sein d'un formulaire ==== Dans le ''configureOptions()'' de la classe d'un formulaire: <code php> $resolver->setRequired('service_name'); </code> Dans le ''buildForm()'': <code php> $service = $options['service_name']; </code> Dans le contrôleur: <code php> $form = $this->createForm(FormType::class, $entity, array( 'service_name' => $this->get('service_name') )); </code> ==== 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''. php/symfony.txt Dernière modification : 2021/06/03 21:11de phsw