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