HTML5 et PHP 5 - Développez des applications web performantes Exploitez les dernières nouveautés des langages



Documents pareils
Formation : WEbMaster

Devenez un véritable développeur web en 3 mois!

3W Academy Programme de Formation Développeur Intégrateur web Total : 400 heures

Les grandes facettes du développement Web Nicolas Thouvenin - Stéphane Gully

ASP.NET MVC 4 Développement d'applications Web en C# - Concepts et bonnes pratiques

WEB & DÉVELOPPEMENT LES BASES DU WEB LE LANGAGE HTML FEUILLES DE STYLES CSS HISTORIQUE D INTERNET ET DU WEB LES DIFFÉRENTS LANGAGES

PHP 5.4 Développez un site web dynamique et interactif

Langage HTML (2 partie) <HyperText Markup Language> <tv>lt La Salle Avignon BTS IRIS</tv>

les techniques d'extraction, les formulaires et intégration dans un site WEB

Magento. Magento. Réussir son site e-commerce. Réussir son site e-commerce BLANCHARD. Préface de Sébastien L e p e r s

Avant-propos 1. Avant-propos Organisation du guide À qui s'adresse ce guide?...4

Sommaire. 1 Introduction Présentation du logiciel de commerce électronique 23

CRÉER, ROUTER ET GÉRER UNE NEWSLETTER, UN ING

Développement d'applications Web HTML5 L'art et la manière avec Visual Studio 2015 et TFS

Formation en Logiciels Libres. Fiche d inscription

Programmation Web. Madalina Croitoru IUT Montpellier

Principales failles de sécurité des applications Web Principes, parades et bonnes pratiques de développement

Formation Webase 5. Formation Webase 5. Ses secrets, de l architecture MVC à l application Web. Adrien Grand <jpountz@via.ecp.fr> Centrale Réseaux

COMPÉTENCES TECHNIQUES

AJAX. (Administrateur) (Dernière édition) Programme de formation. France, Belgique, Suisse, Roumanie - Canada

RESPONSIVE WEB DESIGN

CQP Développeur Nouvelles Technologies (DNT)

Diffuser un contenu sur Internet : notions de base... 13

XML par la pratique Bases indispensables, concepts et cas pratiques (3ième édition)

Exploration des technologies web pour créer une interaction entre Mahara et les plateformes professionnelles et sociales

BES WEBDEVELOPER ACTIVITÉ RÔLE

Formation Webmaster : Création de site Web Initiation + Approfondissement

NFA016 : Introduction. Pour naviguer sur le Web, il faut : Naviguer: dialoguer avec un serveur web

Technologies Web. Ludovic Denoyer Sylvain Lamprier Mohamed Amine Baazizi Gabriella Contardo Narcisse Nya. Université Pierre et Marie Curie

Projet 2. Gestion des services enseignants CENTRE D ENSEIGNEMENT ET DE RECHERCHE EN INFORMATIQUE. G r o u p e :

Armand PY-PATINEC 2010

Nouveautés de Drupal 8. Léon

Rapport de Stage Christopher Chedeau 2 au 26 Juin 2009

Nouveautés joomla 3 1/14

Petite définition : Présentation :

LANGAGUE JAVA. Public Développeurs souhaitant étendre leur panel de langages de programmation

S7 Le top 10 des raisons d utiliser PHP pour moderniser votre existant IBM i

Informations générales. Technologies. css3-html5-php-ajax-j-query-mootools-action-script3

Programme ASI Développeur

PHP CLÉS EN MAIN. 76 scripts efficaces pour enrichir vos sites web. par William Steinmetz et Brian Ward

Joomla! Création et administration d'un site web - Version numérique

Dans nos locaux au 98 Route de Sauve NÎMES. Un ordinateur PC par stagiaire, scanner, imprimante/copieur laser couleur

Les sites Internet dynamiques. contact : Patrick VINCENT pvincent@erasme.org

Table des matières Introduction Démarrage Les composants graphiques... 26

Projet en nouvelles technologies de l information et de la communication

Bonnes pratiques de développement JavaScript

Compte Rendu d intégration d application

JAVA 8. JAVA 8 - Les fondamentaux du langage. Les fondamentaux du langage Java. Avec exercices pratiques et corrigés JAVA 8 29,90.

Le stockage local de données en HTML5

EXTENSION de Microsoft Dynamics CRM Réf FR 80452

Manuel du composant CKForms Version 1.3.2

Module BD et sites WEB

Ociensa Technologies.

LEA.C5. Développement de sites Web transactionnels

Point sur les solutions de développement d apps pour les périphériques mobiles

Technologies du Web. Créer et héberger un site Web. Pierre Senellart. Page 1 / 26 Licence de droits d usage

Bureautique Initiation Excel-Powerpoint

CHAPITRE 11. Temps réel Remy Sharp

Adresse directe fichier : Adresse url spécifique sur laquelle le lien hypertext du Client doit être

RESUME DE CARRIERE. Alice JULIENNE. 23 ans Nationalité Française Développeur Web Front-End. Compétences

FileMaker Server 11. Publication Web personnalisée avec XML et XSLT

Webmaster / Webdesigner / Wordpress

Dossier Technique. Détail des modifications apportées à GRR. Détail des modifications apportées à GRR Le 17/07/2008. Page 1/10

Programmation Web. Introduction

Programme «Analyste Programmeur» Diplôme d état : «Développeur Informatique» Homologué au niveau III (Bac+2) (JO N 176 du 1 août 2003) (34 semaines)

Application web de gestion de comptes en banques

A5.2.4 Étude d une technologie, d'un composant, d'un outil

Architecture N-Tier. Ces données peuvent être saisies interactivement via l interface ou lues depuis un disque. Application

DRUPAL Réalisez des développements professionnels avec PHP (2ième édition)

LE CENTRE DE RÉFÉRENCE PROFESSIONNELLE TIC DE BRUXELLES TAKE I.T. EASY FORMATION TECHNIQUES IT & WEB POUR INFORMATICIENS

WordPress Référencement naturel (SEO) Optimiser. son référencement. Daniel Roch. Préface d Olivier Andrieu

PRODIGE V3. Manuel utilisateurs. Consultation des métadonnées

SIO Page 1 de 5. Applications Web dynamiques. Prof. : Dzenan Ridjanovic Assistant : Vincent Dussault

Sébastien Sougnez 24/12/ / s.sougnez@areaprog.com 2 ans et demi d expérience

Bien architecturer une application REST

PROGRAMME DE LA 1ERE JOURNEE DE FORMATION : QUALITE WEB ET REFERENCEMENT NATUREL

AngularJS pour une application d'entreprise

Quelques patterns pour la persistance des objets avec DAO DAO. Principe de base. Utilité des DTOs. Le modèle de conception DTO (Data Transfer Object)

WysiUpStudio. CMS professionnel. pour la création et la maintenance évolutive de sites et applications Internet V. 6.x

Introduction : présentation de la Business Intelligence

Architectures web/bases de données

LICENCE PROFESSIONNELLE SYSTEMES INFORMATIQUES & LOGICIELS

SPIP. Gestion de la performance dans SPIP. Préoccupa)on historique

INTERNET est un RESEAU D ORDINATEURS RELIES ENTRE EUX A L ECHELLE PLANETAIRE. Internet : interconnexion de réseaux (anglais : net = réseau)

SP1 : Intégration d'une vidéo dans une mardi 21/01/2014. page web, fonction du format vidéo et 3 mercredi 22/01/2014

EP60.92 Projet d application pluridisciplinaire La chasse aux trésors

Utiliser un CMS: Wordpress

Qualité web : les bonnes pratiques front-end

Refonte front-office / back-office - Architecture & Conception -

PHP. Performances. Audit et optimisation LAMP. Julien Pauli. Cyril Pierre de Geyer. Guillaume Plessis. Préface d Armel Fauveau

Architecture BIGBLUEBUTTON Groupe BigBlueButton - Sénégal

Failles XSS : Principes, Catégories Démonstrations, Contre mesures

OZSSI NORD 4 JUIN LILLE. Conférence thématique: Sécurité des applications

Gestion du parc informatique matériel et logiciel de l Ensicaen. Rapport de projet. Spécialité Informatique 2 e année. SAKHI Taoufik SIFAOUI Mohammed

ECLIPSE ET PDT (Php development tools)

Association UNIFORES 23, Rue du Cercler LIMOGES

Transcription:

Avant-propos 1. HTML5 11 2. PHP5 11 3. Démarche de cet ouvrage 12 4. Pré-requis 13 5. Compatibilité des navigateurs 14 Les apports d'html5 1. Introduction 15 2. Améliorer la structure de son contenu 16 2.1 Éléments structurant une page 16 2.1.1 Menu de navigation : l'élément <nav> 16 2.1.2 En-tête de page : l'élément <header> 17 2.1.3 Pied de page : l'élément <footer> 19 2.1.4 Contenu de la page : l'élément <main> 20 2.1.5 Structure globale d'une page 21 2.2 Éléments structurant le contenu 21 2.2.1 Élément <aside> 22 2.2.2 Élément <article> 23 2.2.3 Élément <section> 24 2.2.4 Éléments <details> et <summary> 25 3. Intégrer une dimension sémantique à son site web 28 3.1 Introduction au web sémantique 28 3.2 Apporter une signification temporelle : l'élément <time> 29 1/9

3.3 Microdonnées 31 3.3.1 Écriture d'une microdonnée 31 3.3.2 Héritage de microdonnées 34 3.3.3 Types de données 34 3.3.4 Exemple de microdonnée 35 3.3.5 Microdata DOM API 36 3.4 Microformats 37 3.4.1 Apporter une signification géographique : la classe geo 37 3.4.2 Apporter une signification évènementielle : la classe vevent 39 3.4.3 Donner un sens personnel : la classe vcard 40 3.4.4 Exemples d'autres microformats simples 42 3.4.5 Exemples d'autres microformats composés 43 3.5 Microformats ou microdonnées? 45 3.6 Librairies PHP 46 4. Intégrer facilement des ressources multimédias 46 4.1 Codecs supportés 47 4.2 Balise <audio> 48 4.3 Balise <video> 50 4.4 Intégration des sous-titres grâce à la balise <track> 52 4.5 Intégration des ressources streamées 54 4.6 Capture du son et de l'image de l'utilisateur grâce à la fonction getusermedia 55 4.7 Dessins avec l'api Canvas 57 4.7.1 Dessin de formes : les chemins 59 4.7.2 Écriture de texte 61 4.7.3 Méthodes de transformation 63 4.8 Dessins avec l'api SVG 67 4.8.1 Intégration d une image SVG 68 4.8.2 Dessin de formes géométriques de base 68 4.8.3 Dessin d un chemin : balise <path> 74 4.8.4 Commandes de transformation 77 4.8.5 Éditeurs d'images SVG 80 4.8.6 Choisir entre Canvas et SVG 80 5. Rendre son site web plus accessible 81 2/9

5.1 Introduction à l'accessibilité 81 5.2 WAI-ARIA 83 5.2.1 Définition de la nature d'un élément 84 5.2.2 Définition de l'état et des propriétés d'un élément 85 5.2.3 Zones de mise à jour : l'attribut aria-live 86 6. Rendre ses formulaires plus efficients 87 6.1 Nouveaux champs de formulaire 87 6.1.1 Champ meter 87 6.1.2 Champ progress 88 6.1.3 Champ datalist 89 6.1.4 Champ output 91 6.2 Nouveaux types d'input 93 6.2.1 Type date 94 6.2.2 Type time 95 6.2.3 Types datetime et datetime-local 96 6.2.4 Types week et month 98 6.2.5 Type range 99 6.2.6 Type number 100 6.2.7 Type tel 101 6.2.8 Type email 102 6.2.9 Type url 103 6.2.10 Type color 103 6.3 Aide à la saisie 105 6.3.1 Attribut placeholder 105 6.3.2 Attribut autocomplete 106 6.3.3 Attribut autofocus 107 6.4 Contrôle des données 108 6.4.1 Attribut required 108 6.4.2 Attribut pattern 110 6.4.3 Attributs min et max 111 6.4.4 Attribut novalidate 112 6.4.5 Attribut formnovalidate 112 6.5 API de contrainte de validation 113 6.5.1 Méthodes de l'api de contrainte de validation 114 6.5.2 Attributs de l'api de contrainte de validation 116 3/9

6.6 Personnalisation de la présentation de ses formulaires 117 6.7 Attributs d'aide à la saisie 119 6.7.1 Correction automatique : l'attribut spellcheck 119 6.7.2 Rendre éditable une zone de texte : l'attribut contenteditable 120 6.8 Exemple 122 7. Améliorer les interactions avec le navigateur 125 7.1 Géolocalisation 126 7.1.1 Détermination de la position de l'utilisateur 126 7.1.2 Suivi de l'utilisateur 127 7.2 Stockage des données en local (local storage) 128 7.3 Affichage d un élément en mode plein écran : l'api fullscreen 131 7.4 Autres API 133 8. Éléments obsolètes en HTML5 134 8.1 Balises obsolètes 134 8.2 Attributs obsolètes 135 Le langage PHP avancé 1. Présentation : les nouvelles fonctionnalités apportées depuis PHP 5.4 139 2. Programmation orientée objet en PHP5 145 2.1 Bases de la POO 145 2.1.1 Définition et utilisation des objets 145 2.1.2 Constantes de classe 149 2.1.3 Accesseurs 150 2.1.4 Hydratation d'objets 151 2.1.5 Attributs et méthodes statiques 152 2.1.6 Héritage 154 2.1.7 Interfaces 156 2.2 Limitation de la duplication de code en utilisant les traits 159 2.2.1 Construction et utilisation d un trait 159 2.2.2 Utilisation d un trait dans un trait 161 4/9

2.2.3 Utilisation de plusieurs traits 162 2.2.4 Priorités et conflits 163 2.3 Inspection d objets grâce à la réflexion de classe 165 2.4 Isolation des objets dans des espaces de noms 171 2.4.1 Déclaration 171 2.4.2 Appel 172 2.5 Pour aller plus loin en POO 173 2.5.1 Parcours d un objet 173 2.5.2 Duplication d un objet 174 2.5.3 Comparaison des objets 176 2.5.4 Sérialisation d un objet 177 2.5.5 Nom de classe variable 177 2.5.6 Autochargement de classes 178 3. Accès aux données et manipulation 180 3.1 Accès et gestion de données MySQL : la classe PDO 180 3.1.1 Connexion à une source de données 180 3.1.2 Validation des transactions 181 3.1.3 Construction et exécution de requêtes 182 3.1.4 Gestion des résultats 185 3.1.5 Gestion des erreurs 187 3.1.6 Extension de la classe PDO 187 3.2 Accès aux données externes en utilisant les services web (Webservices) 190 3.2.1 Modèle REST 190 3.2.2 Modèle SOAP 192 3.3 Manipulation des chaînes grâce aux expressions régulières 195 3.3.1 Bibliothèque PCRE 195 3.3.2 Pattern 199 3.3.3 Exemples de méthodes employant les expressions régulières 202 3.4 Lecture et écriture des données au format JSON 204 3.5 Gestion simple du contenu XML avec SimpleXML 206 3.5.1 Lecture de données XML 206 3.5.2 Objet SimpleXMLElement 207 3.5.3 Pour aller plus loin 208 5/9

4. Design patterns 209 4.1 Design patterns incontournables 209 4.1.1 Singleton 209 4.1.2 Observer 211 4.1.3 Iterator 213 4.1.4 Factory 215 4.2 D'autres design patterns 216 4.2.1 Chaîne de responsabilité 216 4.2.2 Proxy 218 5. Bonnes pratiques en PHP 220 5.1 Application de règles d'écriture définies 220 5.2 Typage des paramètres (type hinting) 222 5.3 Optimisation de son code 224 5.4 Application de la méthode SOLID 225 5.4.1 S : principe de responsabilité unique 225 5.4.2 O : principe ouvert/fermé 225 5.4.3 L : principe de substitution de Liskov 226 5.4.4 I : principe de ségrégation des interfaces 227 5.4.5 D : principe d'inversion de dépendance 228 Du serveur au navigateur : interactions 1. Introduction : le flux de sortie 231 1.1 Tampon de sortie utilisateur 232 1.2 Tampon PHP (output buffering) 235 1.3 Tampon SAPI 235 1.4 Exemple concret 236 1.5 Envoi implicite de données 237 2. En-têtes HTTP 238 2.1 Envoi d'un en-tête HTTP 239 2.2 En-têtes courants 242 6/9

2.2.1 Rediriger l'utilisateur : en-tête Location 242 2.2.2 Préciser le type de contenu : en-tête Content-type 243 2.2.3 Forcer le téléchargement d'un fichier : en-tête Content-Disposition 244 2.2.4 Autres exemples 245 2.3 Lecture des en-têtes 246 3. Échanges asynchrones de données avec AJAX 247 3.1 Objet XMLHttpRequest 248 3.2 Déroulement d'une requête AJAX 250 3.3 Requête AJAX avec jquery 252 3.4 Exemple : mise à jour de champs en direct avec contenteditable et AJAX 253 3.5 Exemple de commande avec interrogation du stock en direct 256 4. Échanges de données en temps réel avec WebSockets 259 4.1 Implémentation du client 260 4.2 Implémentation d'un serveur WebSocket en PHP 263 4.2.1 Principe général 263 4.2.2 Processus d'écoute et d'échange avec les clients 263 4.2.3 Exemple : étude de la classe phpwebsocket 265 5. API Server-Sent Events (SSE) 271 5.1 SSE côté client 272 5.2 SSE côté serveur 273 5.2.1 En-tête de messages 273 5.2.2 Format des messages 273 5.3 Exemple simple 274 5.4 Exemple : chat en SSE 275 6. Mode déconnecté 278 6.1 Principe de fonctionnement 278 6.2 Fichier manifest 279 6.3 Objet applicationcache 281 6.4 Exemple d'application déconnectée 282 6.4.1 Application 282 6.4.2 Manifeste de l'application 288 7/9

6.4.3 Mise en cache par le navigateur 289 Concevoir un site web HTML5/PHP 1. Présentation : structurer son application web 291 2. Adopter un schéma MVC 293 2.1 Pourquoi mettre en œuvre le DP MVC? 294 2.2 Principes 295 2.3 Premier exemple 297 2.4 Modèle 300 2.4.1 Active Record 301 2.4.2 Couple DTO-DAO 303 2.4.3 Abstraction des DTO et DAO 305 2.4.4 ORM (Object-Relational Mapping) 310 2.5 Vue 311 2.5.1 Objet Vue 312 2.5.2 Template 314 2.6 Contrôleur 316 2.6.1 Fonctionnement du contrôleur 316 2.6.2 Dispatcher 322 2.6.3 Écriture des URL 325 3. Gérer les utilisateurs 326 3.1 Stockage des utilisateurs 326 3.2 Identification des utilisateurs 327 3.3 Gestion des droits utilisateur 329 4. Urbaniser la gestion des formulaires 331 4.1 Construction du formulaire 332 4.2 Validation des saisies utilisateur 339 4.3 Routage au sein du contrôleur 340 4.4 Conclusion 342 8/9

5. Gérer les erreurs 343 5.1 Afficher les erreurs 343 5.2 Prendre soi-même en charge les erreurs 345 5.3 Provoquer soi-même une erreur 350 5.4 Gérer les exceptions 351 5.4.1 Protection d un bloc 351 5.4.2 Classe Exception 352 5.4.3 Lever une exception 352 5.4.4 Personnalisation du gestionnaire d exceptions 353 5.4.5 Exception ou erreur? 353 5.5 Exemple d un gestionnaire d erreurs complet 354 6. Assurer la sécurité d'une application 358 6.1 Sécuriser ses formulaires 359 6.1.1 Se méfier des données utilisateur 359 6.1.2 Se méfier des robots 363 6.1.3 Se prémunir des injections SQL 366 6.1.4 Se prémunir des injections d upload 369 6.1.5 Se prémunir des attaques XSS 371 6.1.6 Se prémunir des attaques CSRF 376 6.2 Saler ses mots de passe 377 6.3 Appliquer quelques règles de bon sens 378 9/9