====== 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''.