[{"data":1,"prerenderedAt":45},["ShallowReactive",2],{"course-symfony-developper-des-applications-web":3,"highlight-php-#[Route('/commandes/":44},{"id":4,"name":5,"slug":6,"location":7,"targetAudienceFormatMarkdown":8,"prerequisitesFormatMarkdown":9,"objectivesFormatMarkdown":10,"descriptionFormatMarkdown":11,"teachingMethodsFormatMarkdown":12,"teachingResourcesFormatMarkdown":13,"evaluationMethodsFormatMarkdown":14,"accessibilityFormatMarkdown":15,"accessMethodsFormatMarkdown":16,"minimumParticipants":7,"maximumParticipants":7,"duration":17,"reference":18,"trainerType":7,"updated_at":19,"created_at":20,"price":21,"organizationMode":22,"theme":25,"code":29,"tags":34,"metadata":35},"/api/courses/0b6306b7-b298-11f1-a993-d8ca06000363","Symfony : développer des applications web","symfony-developper-des-applications-web",null,"Développeurs PHP souhaitant travailler avec un framework structurant.","Maîtrise de PHP orienté objet et des bases de données relationnelles.","Développer des applications robustes et maintenables avec le framework Symfony.","--day1--\n\n## Architecture du framework\n\n-   Structure d'un projet Symfony ; conteneur de services et injection de dépendances ; configuration et environnements ; console et maker.\n\n--break--\n\n## Routage et contrôleurs\n\n-   Routes et attributs ; contrôleurs et réponses ; moteur de gabarits Twig ; gestion des assets.\n\n--day2--\n\n## Doctrine\n\n-   Entités et mapping ; référentiels et requêtes DQL ; migrations ; relations et chargement ; jeux de données de test.\n\n--break--\n\n## Formulaires et validation\n\n-   Construction de formulaires ; types personnalisés ; contraintes de validation ; traitement et messages utilisateur.\n\n--day3--\n\n## Sécurité\n\n-   Authentification et pare-feu ; utilisateurs et rôles ; voteurs et autorisations fines ; protection CSRF ; gestion des mots de passe.\n\n--break--\n\n## Services et architecture\n\n-   Création de services métier ; événements et abonnés ; commandes console ; files de messages avec Messenger.\n\n--day4--\n\n## API\n\n-   Exposition d'API REST ; sérialisation et groupes ; API Platform : principes et mise en œuvre ; documentation et authentification par jeton.\n\n--break--\n\n## Tests et déploiement\n\n-   Tests unitaires et fonctionnels ; profilage et cache ; optimisation des requêtes ; déploiement et configuration ; revue du projet.","Présentiel, distanciel, hybride","Les supports pédagogiques sont remis aux stagiaires sous format numérique et/ou papier selon les modalités de la formation.\n\nIls comprennent des supports de cours, des présentations, des fiches pratiques, des études de cas, des exercices applicatifs ainsi que des QCM d’entraînement selon la formation. (adapté au choix du formateur)\n\nLes formations s’appuient sur des moyens techniques adaptés : ordinateurs, logiciels professionnels, connexion internet, écran ou vidéoprojecteur, ainsi que des outils collaboratifs et de visioconférence pour les formations à distance.\n\nL’ensemble des supports pédagogiques est accessible pendant et après la formation afin de favoriser l’appropriation et la mise en pratique des compétences acquises.","En amont de la formation, un recueil des besoins permet de récolter des informations sur le stagiaire et ses attentes. L’évaluation se fait en cours de formation, par des études de cas ou des travaux pratiques. En fin de formation, par un questionnaire d’auto-évaluation et/ou un examen.\n\nUn suivi de qualité est effectué grâce à nos sessions en groupe restreint (entre 2 et 9 participants maximum). Le stagiaire émargera par demi-journée et recevra une attestation de formation.","Nous informons l’ensemble de nos clients et stagiaires que nous sommes dans la capacité d’adapter les sessions selon les handicaps et les situations spécifiques. Nous nous engageons à répondre à toutes vos demandes sous un délai de 48h ouvré.","Si l’une de nos formations vous intéresse, contactez-nous au +33 4 93 65 34 24 ou à l’adresse mail contact@m2g-intellect.fr. Selon votre besoin et vos attentes, nous organiserons un échange téléphonique avec le formateur pressenti afin d’adapter la formation et ses modules, puis nous vous adresserons un devis.\n\nLes dates de la formation seront à convenir sous 30 jours maximum.","28.00","L1-DEV-15","2026-09-18T09:45:10+00:00","2026-09-17T15:02:32+00:00","2510.00",{"id":23,"name":24},"/api/organization_mode_types/6","HYBRID",{"id":26,"name":27,"slug":28},"/api/themes/0ac148c3-b298-11f1-a993-d8ca06000363","Développement logiciel informatique et web","developpement-logiciel-informatique-et-web",{"id":30,"label":31,"domain":32},"/api/training_specialities/163","326 - Informatique, traitement de l’information, réseaux de transmission des données",{"label":33},"32 - Communication et information",[],{"desc-accroche":36,"Description":37,"icon-color":38,"icon-name":39,"code-langage":40,"code-snippet":41,"courte-description":42,"titre-accroche":43},"Mettez en oeuvre l'architecture du framework, le mapping Doctrine, les formulaires, le système de sécurité et les API, à travers un projet fil rouge développé de bout en bout.","Cette formation entièrement pratique fait construire une application Symfony complète sur une version LTS du framework, plutôt que d'empiler des démonstrations isolées. Elle couvre l'architecture du framework (bundles, conteneur de services, injection de dépendances), la persistance des données avec Doctrine (entités, associations, migrations, repository personnalisés), la construction de formulaires liés à des objets métier et leur validation, ainsi que le composant Security pour l'authentification et les votants d'autorisation. Un module est consacré à l'exposition d'API et à l'écriture de tests fonctionnels sur les contrôleurs. L'ensemble se construit autour d'un projet fil rouge développé de bout en bout. Elle s'adresse aux développeurs PHP maîtrisant déjà la programmation objet et souhaitant travailler avec un framework structurant.","#000000","mdi:symfony","php","#[Route('/commandes/{id}', name: 'commande_show', methods: ['GET'])]\n#[IsGranted('ROLE_GESTIONNAIRE')]\npublic function show(Commande $commande): Response\n{\n    return $this->render('commande/show.html.twig', [\n        'commande' => $commande,\n        'lignes' => $commande->getLignes(),\n    ]);\n}","Formation Symfony : architecture du framework, Doctrine, formulaires, sécurité et API, sur une version LTS, autour d'un projet fil rouge complet.","Structurez vos applications PHP avec Symfony pour livrer des projets robustes, testables et maintenables sur la durée.","\u003Cpre class=\"hljs\">\u003Ccode class=\"language-php\">\u003Cspan class=\"hljs-meta\">#[Route\u003C/span>(\u003Cspan class=\"hljs-string\">&#x27;/commandes/{id}&#x27;\u003C/span>, \u003Cspan class=\"hljs-attr\">name\u003C/span>: \u003Cspan class=\"hljs-string\">&#x27;commande_show&#x27;\u003C/span>, \u003Cspan class=\"hljs-attr\">methods\u003C/span>: [\u003Cspan class=\"hljs-string\">&#x27;GET&#x27;\u003C/span>])\u003Cspan class=\"hljs-meta\">]\u003C/span>\n\u003Cspan class=\"hljs-meta\">#[IsGranted\u003C/span>(\u003Cspan class=\"hljs-string\">&#x27;ROLE_GESTIONNAIRE&#x27;\u003C/span>)\u003Cspan class=\"hljs-meta\">]\u003C/span>\n\u003Cspan class=\"hljs-keyword\">public\u003C/span> \u003Cspan class=\"hljs-function\">\u003Cspan class=\"hljs-keyword\">function\u003C/span> \u003Cspan class=\"hljs-title\">show\u003C/span>(\u003Cspan class=\"hljs-params\">Commande \u003Cspan class=\"hljs-variable\">$commande\u003C/span>\u003C/span>): \u003Cspan class=\"hljs-title\">Response\u003C/span>\n\u003C/span>{\n    \u003Cspan class=\"hljs-keyword\">return\u003C/span> \u003Cspan class=\"hljs-variable language_\">$this\u003C/span>-&gt;\u003Cspan class=\"hljs-title function_ invoke__\">render\u003C/span>(\u003Cspan class=\"hljs-string\">&#x27;commande/show.html.twig&#x27;\u003C/span>, [\n        \u003Cspan class=\"hljs-string\">&#x27;commande&#x27;\u003C/span> =&gt; \u003Cspan class=\"hljs-variable\">$commande\u003C/span>,\n        \u003Cspan class=\"hljs-string\">&#x27;lignes&#x27;\u003C/span> =&gt; \u003Cspan class=\"hljs-variable\">$commande\u003C/span>-&gt;\u003Cspan class=\"hljs-title function_ invoke__\">getLignes\u003C/span>(),\n    ]);\n}\u003C/code>\u003C/pre>",1789717717779]