=== mise en prod === $ composer require symfony/requirements-checker ensuite: http://localhost:8000/check.php une fois que c'est fait, la désactiver: $ composer remove symfony/requirements-checker Lancer les tests : $ ./vendor/bin/simple-phpunit === déploiement === composer install --no-dev --optimize-autoloader Utiliser les tag sous Git : https://git-scm.com/book/en/v2/Git-Basics-Tagging ->Utiliser le bundle Easy Deploy Bundle - https://github.com/EasyCorp/easy-deploy-bundle/blob/master/doc/installation.md Nouvelles commandes: - deploy - rollback php bin.console deploy staging Logs d'erreurs dans var/logs/deploy_prod.log Rajouter -v dans la commande pour afficher directement les logs, ou --dry-run pour tester === Blocs réutilisables dans Twig === [[https://www.youtube.com/watch?v=iqVhq7X63n4]] Créer un fonction Twig qui va servir de "mini-controlleur" en injectant un Repository pour récupérer les données. Possible de mettre en cache ce bloc-là : Injecter CacheInterface (dans symfony/contracts) dans l'extension Twig et le mettre dans $this->cache : public function getSidebar(){ return $this->cache->get('sidebar', function(ItemInterface $item){ $item->expiresAfter(3600); // $item->tag(['posts']); // ça peut servir au lieu d'expirer automatiquement, d'invalider les caches ensuite si par exemple on rajoute un article en BO (mais il faut que $this->cache soit dans le namespace TagAwareAdapterInterface) return $this->renderSidebar(); }); } private function renderSidebar(){ $posts = $this->getRepository->findArticles(); return $this->twig->render('partial/sidebar.html.twig', ['posts' => $posts]); } === Générer tous les pages CRUD avec controlleur, form et views === php bin/console make:crud