Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
formations:symfony_maj [01/06/2022 21:59] – nbert | formations:symfony_maj [01/06/2022 22:41] (Version actuelle) – [1. La partie Back-end] nbert | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
+ | ====== Mise à jour d'un projet Symfony ====== | ||
+ | Au moment où j' | ||
+ | |||
+ | | **Date** | **Symfony** | **PHP** | **Composer** | **Node** | | ||
+ | | Age de Rom - 2022 | 4.4 | 7.2 | 1 | 12 | | ||
+ | | 2022 - ? | 5.4 | 8 | 2 | 16 | | ||
+ | |||
+ | <WRAP center round tip 60%> | ||
+ | Pensez à faire vos modifications sur cette branche au risque de casser tout le projet ! | ||
+ | </ | ||
+ | |||
+ | ===== 1. La partie Back-end ===== | ||
+ | |||
+ | Commencer par supprimmer le fichier '' | ||
+ | |||
+ | Vérifier que vous avez la bonne versions de PHP et Composer ! | ||
+ | |||
+ | L' | ||
+ | |||
+ | composer update " | ||
+ | | ||
+ | Normalement tous les paquets se mettront à jour avec la LTS actuelle de Symfony. | ||
+ | |||
+ | Suite à cela voici une liste des petits problèmes que nous avons rencontré, la liste sera à l' | ||
+ | ==== doctrine_migrations.yaml ==== | ||
+ | Il faut modifier le fichier '' | ||
+ | <code yaml> | ||
+ | doctrine_migrations: | ||
+ | dir_name: ' | ||
+ | # namespace is arbitrary but should be different from App\Migrations | ||
+ | # as migrations classes should NOT be autoloaded | ||
+ | namespace: DoctrineMigrations | ||
+ | </ | ||
+ | à ça: | ||
+ | <code yaml> | ||
+ | doctrine_migrations: | ||
+ | migrations_paths: | ||
+ | ' | ||
+ | enable_profiler: | ||
+ | </ | ||
+ | |||
+ | ==== Récupérer le repository lié à une classe ==== | ||
+ | Avant: | ||
+ | <code php> | ||
+ | $data = $this-> | ||
+ | </ | ||
+ | |||
+ | Après: | ||
+ | <code php> | ||
+ | $data = $this-> | ||
+ | </ | ||
+ | |||
+ | ==== Logout CAS ==== | ||
+ | On a eu besoin d' | ||
+ | <code php> | ||
+ | /** | ||
+ | * @Route("/ | ||
+ | */ | ||
+ | public function logoutAction(ParameterBagInterface $param) { | ||
+ | if (($param-> | ||
+ | \phpCAS:: | ||
+ | } else { | ||
+ | \phpCAS:: | ||
+ | } | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | ==== UserInterface ==== | ||
+ | Attention, si votre classe User implémente UserInterface alors la méthode '' | ||
+ | |||
+ | ==== ManagerRegistry ==== | ||
+ | Avant: | ||
+ | <code php> | ||
+ | use Doctrine\Common\Persistence\ManagerRegistry; | ||
+ | </ | ||
+ | |||
+ | Après: | ||
+ | <code php> | ||
+ | use Doctrine\Persistence\ManagerRegistry; | ||
+ | </ | ||
+ | |||
+ | ==== Listener (CASListener dans notre cas) ==== | ||
+ | [[https:// | ||
+ | |||
+ | Avant: | ||
+ | <code php> | ||
+ | use Symfony\Component\HttpKernel\Event\GetResponseEvent; | ||
+ | use Symfony\Component\Security\Http\Firewall\ListenerInterface; | ||
+ | |||
+ | class CasListener implements ListenerInterface { | ||
+ | public function handle(GetResponseEvent $event) { | ||
+ | ... | ||
+ | } | ||
+ | | ||
+ | public function checkHandleLogout(GetResponseEvent $event) { | ||
+ | ... | ||
+ | } | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | Après: | ||
+ | <code php> | ||
+ | use Symfony\Component\HttpKernel\Event\RequestEvent; | ||
+ | |||
+ | class CasListener { | ||
+ | public function __invoke(RequestEvent $event) { | ||
+ | ... | ||
+ | } | ||
+ | | ||
+ | public function checkHandleLogout(RequestEvent $event) { | ||
+ | ... | ||
+ | } | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | ==== PHPUnit ==== | ||
+ | A rajouter dans le '' | ||
+ | < | ||
+ | ###> phpunit/ | ||
+ | / | ||
+ | .phpunit.result.cache | ||
+ | ###< phpunit/ | ||
+ | </ | ||
+ | |||
+ | ===== 2. La partie Front-end ===== | ||
+ | |||
+ | Commencez par supprimer le fichier '' | ||
+ | |||
+ | Vérifier que vous avez la bonne version de Node. //(nvm tout ça tmtc)//😎 | ||
+ | |||
+ | Lancer un gros '' | ||
+ | |||
+ | Attention à ne pas utiliser des versions trop récentes si certains packages ont des dépendances trop anciennes (mercé AdminBSB) |