[{"data":1,"prerenderedAt":45},["ShallowReactive",2],{"course-php-developper-des-applications-web":3,"highlight-php-final class DepotCli":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/0b61923d-b298-11f1-a993-d8ca06000363","PHP : développer des applications web","php-developper-des-applications-web",null,"Développeurs débutant en PHP, webmasters, développeurs front souhaitant travailler côté serveur.","Connaissance de HTML et des principes du web. Des bases en programmation sont souhaitables.","Développer des applications web dynamiques en PHP moderne.","--day1--\n\n## Bases du langage\n\n-   Environnement et serveur local ; syntaxe, types, opérateurs ; structures de contrôle ; fonctions ; inclusion de fichiers.\n\n--break--\n\n## Formulaires et requêtes\n\n-   Superglobales, méthodes GET et POST ; validation et filtrage des entrées ; téléversement de fichiers ; sessions et cookies.\n\n--day2--\n\n## Programmation objet\n\n-   Classes, propriétés typées, constructeurs ; héritage, interfaces, traits ; espaces de noms ; chargement automatique et Composer.\n\n--break--\n\n## Accès aux données\n\n-   Connexion via PDO ; requêtes préparées ; transactions ; modélisation simple des entités ; gestion des erreurs.\n\n--day3--\n\n## Sécurité\n\n-   Injection SQL, XSS, CSRF ; hachage des mots de passe ; gestion des sessions sécurisée ; en-têtes de sécurité ; recommandations OWASP.\n\n--break--\n\n## Structurer une application\n\n-   Séparation des responsabilités et motif MVC ; routage simple ; gabarits ; organisation des répertoires.\n\n--day4--\n\n## API et formats\n\n-   Production et consommation d'API REST ; JSON ; appels HTTP ; authentification par jeton.\n\n--break--\n\n## Qualité et mise en ligne\n\n-   Tests avec PHPUnit ; analyse statique ; gestion des dépendances et environnements ; déploiement et configuration ; projet fil rouge.","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-14","2026-09-18T09:45:10+00:00","2026-09-17T15:02:32+00:00","2380.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},"Manipulez classes et propriétés typées, accès aux données sécurisé avec PDO, gestion des sessions et des formulaires, avec Composer et les standards PSR en toile de fond.","Cette formation écarte les réflexes du PHP procédural d'il y a quinze ans pour enseigner le PHP tel qu'il s'écrit aujourd'hui : orienté objet, typé et outillé. Elle couvre la définition de classes avec propriétés et paramètres typés, les interfaces et l'injection de dépendances simples, l'accès aux bases de données relationnelles via PDO avec des requêtes préparées, et la sécurisation des applications web (validation des entrées, protection contre les injections et les failles XSS, gestion des sessions). La formation s'appuie sur une version 8.x du langage et sur les pratiques attendues dans une équipe actuelle : gestion des dépendances avec Composer, respect des standards PSR de style et d'interopérabilité, et introduction aux tests automatisés. Elle s'adresse aux développeurs débutant en PHP, aux webmasters et aux développeurs front souhaitant travailler côté serveur.","#777BB4","mdi:language-php","php","final class DepotClient\n{\n    public function __construct(private readonly PDO $pdo) {}\n\n    public function trouverParEmail(string $email): ?Client\n    {\n        $stmt = $this->pdo->prepare(\n            'SELECT id, nom, email FROM clients WHERE email = :email'\n        );\n        $stmt->execute(['email' => $email]);\n\n        $ligne = $stmt->fetch(PDO::FETCH_ASSOC);\n        return $ligne ? Client::depuisLigne($ligne) : null;\n    }\n}","Formation PHP moderne : programmation objet et typée, accès aux données avec PDO, sécurisation des applications, avec Composer, PSR et tests.","Construisez des applications web dynamiques avec le PHP moderne, orienté objet, typé et outillé comme attendu en production.","\u003Cpre class=\"hljs\">\u003Ccode class=\"language-php\">\u003Cspan class=\"hljs-keyword\">final\u003C/span> \u003Cspan class=\"hljs-class\">\u003Cspan class=\"hljs-keyword\">class\u003C/span> \u003Cspan class=\"hljs-title\">DepotClient\u003C/span>\n\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\">__construct\u003C/span>(\u003Cspan class=\"hljs-params\">\u003Cspan class=\"hljs-keyword\">private\u003C/span> \u003Cspan class=\"hljs-keyword\">readonly\u003C/span> PDO \u003Cspan class=\"hljs-variable\">$pdo\u003C/span>\u003C/span>) \u003C/span>{}\n\n    \u003Cspan class=\"hljs-keyword\">public\u003C/span> \u003Cspan class=\"hljs-function\">\u003Cspan class=\"hljs-keyword\">function\u003C/span> \u003Cspan class=\"hljs-title\">trouverParEmail\u003C/span>(\u003Cspan class=\"hljs-params\">\u003Cspan class=\"hljs-keyword\">string\u003C/span> \u003Cspan class=\"hljs-variable\">$email\u003C/span>\u003C/span>): ?\u003Cspan class=\"hljs-title\">Client\u003C/span>\n    \u003C/span>{\n        \u003Cspan class=\"hljs-variable\">$stmt\u003C/span> = \u003Cspan class=\"hljs-variable language_\">$this\u003C/span>-&gt;pdo-&gt;\u003Cspan class=\"hljs-title function_ invoke__\">prepare\u003C/span>(\n            \u003Cspan class=\"hljs-string\">&#x27;SELECT id, nom, email FROM clients WHERE email = :email&#x27;\u003C/span>\n        );\n        \u003Cspan class=\"hljs-variable\">$stmt\u003C/span>-&gt;\u003Cspan class=\"hljs-title function_ invoke__\">execute\u003C/span>([\u003Cspan class=\"hljs-string\">&#x27;email&#x27;\u003C/span> =&gt; \u003Cspan class=\"hljs-variable\">$email\u003C/span>]);\n\n        \u003Cspan class=\"hljs-variable\">$ligne\u003C/span> = \u003Cspan class=\"hljs-variable\">$stmt\u003C/span>-&gt;\u003Cspan class=\"hljs-title function_ invoke__\">fetch\u003C/span>(PDO::\u003Cspan class=\"hljs-variable constant_\">FETCH_ASSOC\u003C/span>);\n        \u003Cspan class=\"hljs-keyword\">return\u003C/span> \u003Cspan class=\"hljs-variable\">$ligne\u003C/span> ? \u003Cspan class=\"hljs-title class_\">Client\u003C/span>::\u003Cspan class=\"hljs-title function_ invoke__\">depuisLigne\u003C/span>(\u003Cspan class=\"hljs-variable\">$ligne\u003C/span>) : \u003Cspan class=\"hljs-literal\">null\u003C/span>;\n    }\n}\u003C/code>\u003C/pre>",1789717717707]