Description
Table des matières
- Avant-propos
- 1. HTML5
- 2. PHP5
- 3. Démarche de cet ouvrage
- 4. Pré-requis
- 5. Compatibilité des navigateurs
- Les apports d’HTML5
- 1. Introduction
- 2. Améliorer la structure de son contenu
- 2.1 Éléments structurant une page
- 2.1.1 Menu de navigation : l’élément <nav>
- 2.1.2 En-tête de page : l’élément <header>
- 2.1.3 Pied de page : l’élément <footer>
- 2.1.4 Contenu de la page : l’élément <main>
- 2.1.5 Structure globale d’une page
- 2.2 Éléments structurant le contenu
- 2.2.1 Élément <aside>
- 2.2.2 Élément <article>
- 2.2.3 Élément <section>
- 2.2.4 Éléments <details> et <summary>
- 2.1 Éléments structurant une page
- 3. Intégrer une dimension sémantique à son site web
- 3.1 Introduction au web sémantique
- 3.2 Apporter une signification temporelle : l’élément <time>
- 3.3 Microdonnées
- 3.3.1 Écriture d’une microdonnée
- 3.3.2 Héritage de microdonnées
- 3.3.3 Types de données
- 3.3.4 Exemple de microdonnée
- 3.3.5 Microdata DOM API
- 3.4 Microformats
- 3.4.1 Apporter une signification géographique : la classe geo
- 3.4.2 Apporter une signification évènementielle : la classe vevent
- 3.4.3 Donner un sens personnel : la classe vCard
- 3.4.4 Exemples d’autres microformats simples
- 3.4.5 Exemples d’autres microformats composés
- 3.5 Microformats ou microdonnées ?
- 3.6 Librairies PHP
- 4. Intégrer facilement des ressources multimédias
- 4.1 Codecs supportés
- 4.2 Balise <audio>
- 4.3 Balise <video>
- 4.4 Intégration des sous-titres grâce à la balise <track>
- 4.5 Intégration des ressources streamées
- 4.6 Capture du son et de l’image de l’utilisateur grâce à la fonction getUserMedia
- 4.7 Dessins avec l’API Canvas
- 4.7.1 Dessin de formes : les chemins
- 4.7.2 Écriture de texte
- 4.7.3 Méthodes de transformation
- 4.8 Dessins avec l’API SVG
- 4.8.1 Intégration d’une image SVG
- 4.8.2 Dessin de formes géométriques de base
- 4.8.3 Dessin d’un chemin : balise <path>
- 4.8.4 Commandes de transformation
- 4.8.5 Éditeurs d’images SVG
- 4.8.6 Choisir entre Canvas et SVG
- 5. Rendre son site web plus accessible
- 5.1 Introduction à l’accessibilité
- 5.2 WAI-ARIA
- 5.2.1 Définition de la nature d’un élément
- 5.2.2 Définition de l’état et des propriétés d’un élément
- 5.2.3 Zones de mise à jour : l’attribut aria-live
- 6. Rendre ses formulaires plus efficients
- 6.1 Nouveaux champs de formulaire
- 6.1.1 Champ meter
- 6.1.2 Champ progress
- 6.1.3 Champ datalist
- 6.1.4 Champ output
- 6.2 Nouveaux types d’input
- 6.2.1 Type date
- 6.2.2 Type time
- 6.2.3 Types datetime et datetime-local
- 6.2.4 Types week et month
- 6.2.5 Type range
- 6.2.6 Type number
- 6.2.7 Type tel
- 6.2.8 Type email
- 6.2.9 Type url
- 6.2.10 Type color
- 6.3 Aide à la saisie
- 6.3.1 Attribut placeholder
- 6.3.2 Attribut autocomplete
- 6.3.3 Attribut autofocus
- 6.4 Contrôle des données
- 6.4.1 Attribut required
- 6.4.2 Attribut pattern
- 6.4.3 Attributs min et max
- 6.4.4 Attribut novalidate
- 6.4.5 Attribut formnovalidate
- 6.5 API de contrainte de validation
- 6.5.1 Méthodes de l’API de contrainte de validation
- 6.5.2 Attributs de l’API de contrainte de validation
- 6.6 Personnalisation de la présentation de ses formulaires
- 6.7 Attributs d’aide à la saisie
- 6.7.1 Correction automatique : l’attribut spellcheck
- 6.7.2 Rendre éditable une zone de texte : l’attribut contenteditable
- 6.8 Exemple
- 6.1 Nouveaux champs de formulaire
- 7. Améliorer les interactions avec le navigateur
- 7.1 Géolocalisation
- 7.1.1 Détermination de la position de l’utilisateur
- 7.1.2 Suivi de l’utilisateur
- 7.2 Stockage des données en local (local storage)
- 7.3 Affichage d’un élément en mode plein écran : l’API fullscreen
- 7.4 Autres API
- 7.1 Géolocalisation
- 8. Éléments obsolètes en HTML5
- 8.1 Balises obsolètes
- 8.2 Attributs obsolètes
- Le langage PHP avancé
- 1. Présentation : les nouvelles fonctionnalités apportées depuis PHP 5.4
- 2. Programmation orientée objet en PHP5
- 2.1 Bases de la POO
- 2.1.1 Définition et utilisation des objets
- 2.1.2 Constantes de classe
- 2.1.3 Accesseurs
- 2.1.4 Hydratation d’objets
- 2.1.5 Attributs et méthodes statiques
- 2.1.6 Héritage
- 2.1.7 Interfaces
- 2.2 Limitation de la duplication de code en utilisant les traits
- 2.2.1 Construction et utilisation d’un trait
- 2.2.2 Utilisation d’un trait dans un trait
- 2.2.3 Utilisation de plusieurs traits
- 2.2.4 Priorités et conflits
- 2.3 Inspection d’objets grâce à la réflexion de classe
- 2.4 Isolation des objets dans des espaces de noms
- 2.4.1 Déclaration
- 2.4.2 Appel
- 2.5 Pour aller plus loin en POO
- 2.5.1 Parcours d’un objet
- 2.5.2 Duplication d’un objet
- 2.5.3 Comparaison des objets
- 2.5.4 Sérialisation d’un objet
- 2.5.5 Nom de classe variable
- 2.5.6 Autochargement de classes
- 2.1 Bases de la POO
- 3. Accès aux données et manipulation
- 3.1 Accès et gestion de données MySQL : la classe PDO
- 3.1.1 Connexion à une source de données
- 3.1.2 Validation des transactions
- 3.1.3 Construction et exécution de requêtes
- 3.1.4 Gestion des résultats
- 3.1.5 Gestion des erreurs
- 3.1.6 Extension de la classe PDO
- 3.2 Accès aux données externes en utilisant les services web (Webservices)
- 3.2.1 Modèle REST
- 3.2.2 Modèle SOAP
- 3.3 Manipulation des chaînes grâce aux expressions régulières
- 3.3.1 Bibliothèque PCRE
- 3.3.2 Pattern
- 3.3.3 Exemples de méthodes employant les expressions régulières
- 3.4 Lecture et écriture des données au format JSON
- 3.5 Gestion simple du contenu XML avec SimpleXML
- 3.5.1 Lecture de données XML
- 3.5.2 Objet SimpleXMLElement
- 3.5.3 Pour aller plus loin
- 3.1 Accès et gestion de données MySQL : la classe PDO
- 4. Design patterns
- 4.1 Design patterns incontournables
- 4.1.1 Singleton
- 4.1.2 Observer
- 4.1.3 Iterator
- 4.1.4 Factory
- 4.2 D’autres design patterns
- 4.2.1 Chaîne de responsabilité
- 4.2.2 Proxy
- 4.1 Design patterns incontournables
- 5. Bonnes pratiques en PHP
- 5.1 Application de règles d’écriture définies
- 5.2 Typage des paramètres (type hinting)
- 5.3 Optimisation de son code
- 5.4 Application de la méthode SOLID
- 5.4.1 S : principe de responsabilité unique
- 5.4.2 O : principe ouvert/fermé
- 5.4.3 L : principe de substitution de Liskov
- 5.4.4 I : principe de ségrégation des interfaces
- 5.4.5 D : principe d’inversion de dépendance
- Du serveur au navigateur : interactions
- 1. Introduction : le flux de sortie
- 1.1 Tampon de sortie utilisateur
- 1.2 Tampon PHP (output buffering)
- 1.3 Tampon SAPI
- 1.4 Exemple concret
- 1.5 Envoi implicite de données
- 2. En-têtes HTTP
- 2.1 Envoi d’un en-tête HTTP
- 2.2 En-têtes courants
- 2.2.1 Rediriger l’utilisateur : en-tête Location
- 2.2.2 Préciser le type de contenu : en-tête Content-type
- 2.2.3 Forcer le téléchargement d’un fichier : en-tête Content-Disposition
- 2.2.4 Autres exemples
- 2.3 Lecture des en-têtes
- 3. Échanges asynchrones de données avec AJAX
- 3.1 Objet XMLHttpRequest
- 3.2 Déroulement d’une requête AJAX
- 3.3 Requête AJAX avec jQuery
- 3.4 Exemple : mise à jour de champs en direct avec contenteditable et AJAX
- 3.5 Exemple de commande avec interrogation du stock en direct
- 4. Échanges de données en temps réel avec WebSockets
- 4.1 Implémentation du client
- 4.2 Implémentation d’un serveur WebSocket en PHP
- 4.2.1 Principe général
- 4.2.2 Processus d’écoute et d’échange avec les clients
- 4.2.3 Exemple : étude de la classe phpWebSocket
- 5. API Server-Sent Events (SSE)
- 5.1 SSE côté client
- 5.2 SSE côté serveur
- 5.2.1 En-tête de messages
- 5.2.2 Format des messages
- 5.3 Exemple simple
- 5.4 Exemple : chat en SSE
- 6. Mode déconnecté
- 6.1 Principe de fonctionnement
- 6.2 Fichier manifest
- 6.3 Objet applicationCache
- 6.4 Exemple d’application déconnectée
- 6.4.1 Application
- 6.4.2 Manifeste de l’application
- 6.4.3 Mise en cache par le navigateur
- 1. Introduction : le flux de sortie
- Concevoir un site web HTML5/PHP
Reviews
There are no reviews yet.