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:58] – 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) | ||