Apprenez le PHP moderne
Une liste organisée de ressources pour PHP
Table des matières
- Doit lire
- Tutoriels
- Livres
- Cours en ligne
- Référence
- Les bases
- Les bases de PHP
- La pile LAMP
- HTML/HTML5
- CSS
- Javascript
- Protocoles
- Environnements de développement local
- Outils
- IDE
- Frameworks et bibliothèques
- Cadres
- Micro-cadres
- Bibliothèques
- Modèles
- POO
- Programmation orientée objet
- Modèles de conception
- SOLIDE
- Injection de dépendances
- Meilleures pratiques
- Modèle-Vue-Contrôleur
- Base de données
- Bases de base de données
- Livres de base de données
- Système de gestion de base de données relationnelle (SGBDR)
- Normalisation de la base de données
- Déclarations préparées
- NoSQL
- Bibliothèques de bases de données
- Outils de base de données
- Normes
- Gestion des erreurs et des exceptions
- Débogage
- Tests unitaires
- Documentation
- Séances
- Traductions de textes
- Expressions régulières
- XML
- API
- Contrôle des versions
- Sécurité
- Architecture
- Conception pilotée par domaine (DDD)
- Architecture hexagonale
- Programmation fonctionnelle
- Intégration continue et livraison continue
- Revues
- Marchandises
- Communauté et actualités
Doit lire
- PHP de la bonne manière
- La feuille de route du développeur Web
Tutoriels
- Tutoriel PHP 8 complet - Apprenez PHP de la bonne manière en 2022
- PHP Front To Back (Vidéos)
- apprendre-php.org
- Apprenez PHP pour les développeurs expérimentés
- PHP pour les débutants
- Pandas PHP
- Apprenez PHP en Y minutes
- Apprenti PHP
- PHP par exemple
Livres
- Architecture d'applications Web avancée
- Créer des applications modernes avec PHP 8
- PHP moderne : nouvelles fonctionnalités et bonnes pratiques
- Guide de style de conception d'objet
- Apprendre PHP 7
- Guide d'étude de la certification PHP 7 Zend
- Apprenez PHP 8 : utilisation de MySQL, JavaScript, CSS3 et HTML5
- Référence de script rapide PHP 8 : un guide de poche sur les scripts Web PHP
- Programmation PHP (O'Reilly Media)
- L'art du PHP 8 moderne
Cours en ligne
- CodeAcademy - Apprendre PHP
- Cours de code
- Exercice - PHP (Pratique du code et mentorat)
- SymfonyCasts - Créez quelque chose d'incroyable avec PHP
- Treehouse - Apprendre PHP
- Udemy-PHP
- DevProjects + Codementor (projets PHP gratuits et mentorat payant en option)
- Cours PHP gratuits
Référence
- Référence linguistique
- Aide-mémoire PHP moderne
- Manuel PHP
- Aide-mémoire PHP
Les bases
Les bases de PHP
- Feuille de route du développeur PHP – Comment devenir un développeur PHP
- Débuter avec PHP
- Types de données PHP
- Boucles PHP
- Notions de base sur les tableaux
- Travailler avec des tableaux
- PHP GET et POST
- PHP pour les débutants (édition 2023)
La pile LAMP
- La pile LAMP (Linux, Apache, MySql, PHP)
- Linux
- Serveur HTTP Apache
- MySQL
- PHP
- Qu'est-ce qu'une pile LAMP ? (Vidéo)
HTML/HTML5
- HTML et HTML5
- Tutoriel HTML
- Introduction au HTML
- Un modèle HTML5 de base
- DOMAINE
- Apprendre le HTML
CSS
- Feuilles de style en cascade
- Tutoriel CSS
- Introduction au CSS
- Introduction aux sélecteurs CSS
- Apprendre le CSS
Javascript
- JavaScript (alias ECMAScript)
- JavaScript de base
- Tutoriel JavaScript
- JavaScript éloquent
- Vous ne connaissez pas JS (série de livres)
- Un apprentissage JavaScript génial
- Apprendre JavaScript
Protocoles
- HTTP et HTTPS
- Requête/Réponse HTTP, GET et POST
- Introduction aux bases de HTTP
- FTP
- SSH
- SMTP
- POP3
- IMAP
- Ajax
Environnements de développement local
- ddev
- Serveur de développement et serveur Web EasyPHP
- Propriété
- Laragon
- MAMP
- Serveur WAMP
- XAMPP
Outils
- Navigateur Web (Chrome, Firefox)
- Composer (gestion des dépendances)
- WinSCP (client SFTP, SCP et FTP gratuit)
- Putty (un client SSH et telnet gratuit)
- PoEdit (éditeur de traductions gettext)
- Notepad++ (éditeur de texte)
- 7-ZIP (archiveur de fichiers)
IDE
- PHPStorm ($)
- Code de Visual Studio
Frameworks et bibliothèques
Cadres
- Laravel (Un framework très populaire)
- Lames
- Symfony (un framework d'entreprise modulaire)
Micro-cadres
- Slim Framework (un micro-framework PHP qui vous aide à écrire rapidement des applications Web et des API simples mais puissantes)
- Slim Framework 4 - Tutoriel
- Slim Framework 4 - eBook
Bibliothèques
- Superbes bibliothèques PHP
- Packagiste
Modèles
- Plates (un système de modèles PHP natif)
- Twig (Le moteur de modèles flexible, rapide et sécurisé pour PHP)
- Twig – le moteur de modèles PHP autonome le plus populaire
- Brindille contre PHP plat
POO
Programmation orientée objet
"Écrivez du code timide -
des modules qui ne révèlent rien d'inutile aux autres
modules et qui ne dépendent pas des implémentations d'autres modules.
- Principes orientés objet en PHP
- Classes et objets
- Maîtriser le PHP orienté objet (eBook)
- Objektorientierte Programmierung (allemand)
- Bootcamp orienté objet
- Apprendre la POO en PHP
Modèles de conception
- Modèles de conception en PHP (Laracasts)
- Modèles de conception en PHP
- Gang de quatre modèles de conception (Livre)
- Modèles de conception pour les humains™
- Modèles de conceptionPHP
- Plusieurs modèles de conception en PHP
- Cours sur les modèles de conception en PHP (vidéo)
SOLIDE
SOLID est un acronyme mnémonique désignant cinq principes de conception destinés à rendre les conceptions logicielles plus compréhensibles, flexibles et maintenables.
- SOLIDE
- Les 5 premiers principes de la conception orientée objet
Injection de dépendances
- Une introduction à l'injection de dépendances
- Qu’est-ce que l’injection de dépendances ?
- The Clean Code Talks - Ne cherchez pas de choses ! (Vidéo)
- PSR-11 : interface de conteneur
- Démystifier les conteneurs d'injection de dépendances par Kai Sassnowski (vidéo)
Meilleures pratiques
BAISER
La simplicité est une condition préalable à la fiabilité.
— Edsger W. Dijkstra
- KISS - Reste simple, stupide
- Principe KISS
YAGNI
Tu n'en auras pas besoin
- YAGNI
- Tu n'en auras pas besoin
- KISS et YAGNI
- YAGNI, culte du cargo et suringénierie
SEC
"DRY ‐ Ne vous répétez pas
Chaque élément de connaissance doit avoir un seul,
représentation sans ambiguïté et faisant autorité au sein d'un système.
DRY consiste à avoir une source de vérité. Il ne s’agit pas d’éradiquer frénétiquement la duplication de votre base de code.
Autre
- Meilleures pratiques de TheCodingMachine
- Revenez tôt, revenez souvent
- Les variables globales sont mauvaises
- Contrôleurs fins et gros modèles
- PHP à faire et à ne pas faire, alias les programmeurs que je n'aime pas
- Composition sur héritage
- Nettoyer le code PHP
- Callisthénie d'objet
Modèle-Vue-Contrôleur
La plupart des frameworks PHP suivent une sorte de structure MVC. La théorie est simple :
L'utilisateur s'interface avec la vue, qui transmet les informations à un contrôleur. Le contrôleur transmet ensuite ces informations à un modèle (couche), et le modèle renvoie les informations au contrôleur. Le contrôleur se situe effectivement entre la vue et le modèle. (Brandon James Savage)
- Wikipédia MVC
- MVC en termes plus simples ou la structure d'une application Web moderne
- Présentation de MVC
- MVC pour les Noobs
- Une meilleure compréhension de MVC
- Contrôleurs fins, gros modèles
- MVC pour les développeurs PHP avancés
- Une meilleure compréhension de MVC
- MVC modèle 2
- Répondeur de domaine d'action (ADR)
Base de données
Bases de base de données
- Base de données
- Modèle de base de données
- Les 12 règles de Codd*
- Le seul tutoriel PDO approprié
- Tutoriel SQL
- Datenbank Grundlagen (allemand)
- GRE
- Tutoriel Datenbank-Grundlagen (allemand)
- Tutoriel Datenbank-Grundlagen : Primärschlüssel (allemand)
Système de gestion de base de données relationnelle (SGBDR)
- MySQL
- MariaDB
- Microsoft SQL Server
- Oracle
- SQLite
Livres de base de données
- Livre MySQL gratuit
- MySQL haute performance : optimisation, sauvegardes et réplication
Normalisation de la base de données
Les mauvais programmeurs se soucient du code. Les bons programmeurs se soucient des structures de données et de leurs relations.
- Normalisation de la base de données
- Première forme normale (1NF)
- Deuxième forme normale (2NF)
- Troisième forme normale (3NF)
- Description des bases de la normalisation des bases de données
- Der Königsweg : Normalisierung (allemand)
- Normalisation (allemand)
- MySQL - Normalisation (allemand)
Déclarations préparées
- Déclaration préparée
- Déclarations préparées - Protection contre les injections SQL
- Déclarations préparées PHP
Bibliothèques de bases de données
- Générateur de requêtes CakePHP
- Générateur de requêtes Illuminate (Laravel)
- Générateur de requêtes Laminas DB
- Phinx - migrations de bases de données
Outils de base de données
- Édition communautaire SQLyog
- SQLyog - L'interface graphique MySQL la plus complète et la plus simple à utiliser ($)
- Établi MySQL
- HeidiSQL
- SuitePro
- Naviguer ($)
- Castor
NoSQL
- NoSQL
- Redis (magasin de structures de données en mémoire, utilisé comme base de données, cache et courtier de messages)
- MongoDB (base de données orientée document)
Normes
Suivez les conventions PHP courantes pour le code orienté objet et les meilleures pratiques établies du secteur : PSR-1, PSR-12, PSR-4.
- Groupe d'interopérabilité du framework PHP
- Norme de codage de base PSR-1
- Guide de style de codage PSR-12
- Interface d'enregistreur PSR-3
- Chargeur automatique PSR-4
- Squelette du package PHP standard
- Un référentiel squelette pour les packages de ligue
- Versionnement sémantique 2.0.0
- Tenir un journal des modifications
Gestion des erreurs et des exceptions
- Erreurs et exceptions
- Erreurs de gestion des meilleures pratiques PHP
- Exceptions
- Exceptions prédéfinies
- Exceptions SPL
- Erreurs et gestion des erreurs
Débogage
- Xdebug (débogueur)
- XAMPP - Configuration de XDebug pour PHP 7
- XAMPP - Configuration de XDebug pour PHP 8
Tests unitaires
« Les testeurs de logiciels ne créent pas de logiciels ; ils ne font que les rendre meilleurs. - Anonyme
- PHPUnit - cadre de test
- Test unitaire, test d'intégration, test de fumée, test de régression
- Tests unitaires, tests d'intégration et tests fonctionnels
- La pyramide des tests
- La Voie de Testivus (pdf)
- Test de base de données
- Meilleures pratiques pour tester des bases de données avec PHPUnit
- Tests de base de données avec PHPUnit
- Configuration des appareils de base de données dans PHPUnit
- La bonne façon d'utiliser les tests d'intégration
- Couverture du code à 100 % via des tests automatisés dans les applications Symfony
- Livre électronique sur la création de développeurs pilotés par les tests
- Écrivez des tests. Pas trop. Surtout l'intégration
- Les tests unitaires sont surfaits
Documentation
Ne pas commenter votre code lorsque vous êtes programmeur devrait être illégal - @RiaCorpeno
PHPdoc est destiné à documenter votre code. L'intention est que vous ajoutiez toujours des commentaires à vos paramètres et renvoyiez des types dans des docblocks qui décrivent ce qu'ils font. Il existe des logiciels capables de lire votre code et de produire une documentation au format pdf ou HTML qui décrit toutes vos classes et fonctions ainsi que ce qu'elles font et comment les utiliser. Il s'agit d'un système de documentation en ligne comme son nom l'indique.
- Introduction à PhpDoc
- Le standard PHPDoc (PSR-5) pour les commentaires
- Wiki PHPDoc
- Syntaxe de base de PHPDoc
- Anatomie d'un DocBlock
- Votre premier ensemble de documentation
Séances
- Séances PHP
- Gestion des sessions
- Biscuit
- Gestion des sessions
- Sessions PHP en profondeur
Traductions de textes
- Internationalisation et localisation (i18n)
- Symfony : le composant de traduction
- PoEdit Gettext Éditeur de traductions
Expressions régulières
- Expression régulière
- Fonctions PCRE
- PHP Live Regex (un testeur d'expressions régulières en direct pour PHP)
- PHPrex (un testeur d'expressions visuelles régulières pour PHP)
XML
- XML (langage de balisage extensible)
- XSD (définition de schéma XML)
API
API RESTful
- Ressources API REST, RESTful et de type REST
- REST, référence rapide de l'API RESTful
- Directives API
- 7 règles pour la conception d'URI de l'API REST
API SOAP
- SOAP (protocole d'accès aux objets simples)
- L'extension SOAP L'extension SOAP peut être utilisée pour écrire des serveurs et des clients SOAP.
- Service Web
- WSDL (langage de description de services Web)
- Implémentation d'une API SOAP avec PHP
Contrôle des versions
- Qu'est-ce que le contrôle de version
- GitHub
- Ressources pour apprendre Git
- Un tutoriel d'introduction à Git
- Git - Le guide simple
- Le livre Pro Git
Sécurité
Un bon programmeur regarde des deux côtés avant de traverser une rue à sens unique.
- Les essentiels de la sécurité Web – Un cours intensif
- Aide-mémoire de sécurité PHP
- PHP dans le bon sens - Sécurité
- XSS
- Les dernières informations sur les logiciels PHP sécurisés
- Conseils de sécurité pour une application PHP
- La liste de contrôle de sécurité PHP ultime
- Meilleures pratiques de sécurité PHP
Architecture
- "L'architecture propre" d'oncle Bob (livre)
- L'architecture propre
- Modèles d'architecture d'applications d'entreprise - Martin Fowler
- L'architecture de l'oignon, partie 1
- Un voyage vers un code propre et agréable - Agilité, TDD, modèles POO, MVC, découplage de framework
Conception pilotée par domaine (DDD)
- DDD pour les débutants
- Conception basée sur le domaine : s'attaquer à la complexité au cœur du logiciel (Le Livre Bleu)
- Mise en œuvre de la conception basée sur le domaine (le livre rouge)
- Concevoir un microservice orienté DDD
- Référence de conception pilotée par domaine (un résumé des modèles et des définitions de DDD, PDF)
- Services de conception pilotée par domaine
- Créer des services que vous ne détesterez pas
- Domain-Driven Design (Le livre bleu DDD)
- Implémentation de la conception pilotée par domaine (Le livre rouge DDD)
Architecture hexagonale
- Architecture des ports et adaptateurs
- L'architecture hexagonale démystifiée
- Architecture hexagonale
- Alistair dans "l'Hexagone"
- Guide de style de conception d'objet
- Architecture d'applications Web avancée
Programmation fonctionnelle
- Architecture fonctionnelle - Les gouffres du succès - Mark Seemann (Vidéo)
Intégration continue (CI) et livraison continue (CD)
- Livraison continue (Livre)
- Livrer en continu des projets PHP (Vidéo)
- Intégration continue vs livraison continue vs déploiement continu
- Qu'est-ce que le déploiement continu ?
- PHP et intégration continue avec Travis CI
- Docker pour les développeurs PHP
Revues
- architecte php (anglais)
- PHPmagazin (allemand)
- développeur web et mobile (allemand)
Marchandises
- La boutique officielle des éléphants - Boutique elePHPant
- Marchandise PHPUnit
- Autocollants PHP
Communauté / Actualités
- @official_php
- r/PHP
- r/PHPaide
- PHP sur dev.to
- Hashnode/php
- Débordement de pile
- Newsletter hebdomadaire PHP
- Newsletter Freek.dev
- Courrier Stitcher
- Superbe newsletter PHP
- JetBrains - PHP annoté mensuellement
- Les composants internes de PHP
- PHP-Digest par Roman Pronsky (russe)
- Liste des blogs PHP
- Conférences PHP dans le monde
- Salon de discussion PHP sur StackOverflow
- Quand a lieu le prochain Meetup PHP ?