Académique Documents
Professionnel Documents
Culture Documents
Faire un don
Les statistiques indiquent qu'il est utilisé par 80% de tous les sites Web. C'est le langage qui
alimente WordPress, le système de gestion de contenu largement utilisé pour les sites Web.
Bien sûr, ce n'est pas parfait. Mais laissez-moi vous dire qu'aucune langue ne l'est.
https://www.freecodecamp.org/news/the-php-handbook/ 1/71
18/04/2023 10:57 Le manuel PHP - Apprendre PHP pour les débutants
Ce livre est une introduction parfaite si vous êtes nouveau dans la langue. C'est aussi parfait
Faire siun don
vous avez fait « du PHP
Soutenez notre » dans le passé
association et et
caritative que vous
notre voulez
mission. y revenir.
Faites un don à freeCodeCamp.org .
PHP a beaucoup évolué ces dernières années. Donc, si la dernière fois que vous avez essayé,
c'était PHP 5 ou même PHP 4, vous serez surpris de toutes les bonnes choses que PHP offre
maintenant.
Allons-y!
1. Introduction à PHP
12. Comment parcourir des tableaux avec map() , filter() et reduce() en PHP
23. Conclusion
Notez que vous pouvez obtenir une version PDF, ePub ou Mobi de ce manuel pour une
référence plus facile, ou pour la lire sur votre Kindle ou votre tablette.
Introduction à PHP
https://www.freecodecamp.org/news/the-php-handbook/ 2/71
18/04/2023 10:57 Le manuel PHP - Apprendre PHP pour les débutants
PHP est un langage de programmation que de nombreux développeurs utilisent pour créer
Faire un don
des applications Web,
Soutenez entre
notre autres.
association caritative et notre mission. Faites un don à freeCodeCamp.org .
En tant que langue, il a eu un humble début. Il a été créé en 1994 par Rasmus Lerdorf pour
créer son site Web personnel. Il ne savait pas à l'époque qu'il deviendrait éventuellement l'un
des langages de programmation les plus populaires au monde. Il est devenu populaire plus
tard, en 1997/8, et a explosé dans les années 2000 lorsque PHP 4 a débarqué.
Vous pouvez utiliser PHP pour ajouter un peu d'interactivité à une page HTML.
Ou vous pouvez l'utiliser comme moteur d'application Web qui crée des pages HTML
dynamiquement et les envoie au navigateur.
Saviez-vous que Facebook est propulsé par PHP ? Avez-vous déjà entendu parler de
Wikipédia ? Mou? Etsy ?
PHP est souvent appelé un "langage de script" et c'est un langage interprété . Si vous avez
utilisé des langages compilés comme C ou Go ou Swift, la principale différence est que vous
n'avez pas besoin de compiler un programme PHP avant de l'exécuter.
Ces langages sont compilés et le compilateur génère un programme exécutable que vous
exécutez ensuite. C'est un processus en 2 étapes.
L' interpréteur PHP est chargé d'interpréter les instructions écrites dans un programme PHP
lors de son exécution. C'est juste une étape. Vous dites à l'interprète d'exécuter le programme.
C'est un flux de travail complètement différent.
PHP est un langage typé dynamiquement . Les types de variables sont vérifiés au moment de
l'exécution, plutôt qu'avant l'exécution du code, comme cela se produit pour les langages à
typage statique. (Ceux-ci sont également compilés - les deux caractéristiques vont souvent de
pair.)
PHP est également faiblement (faiblement) typé. Par rapport aux langages fortement typés
comme Swift, Go, C ou Java, vous n'avez pas besoin de déclarer les types de vos variables.
Être interprété et typé de manière lâche/dynamique rendra les bogues plus difficiles à trouver
avant qu'ils ne se produisent au moment de l'exécution.
https://www.freecodecamp.org/news/the-php-handbook/ 3/71
18/04/2023 10:57 Le manuel PHP - Apprendre PHP pour les débutants
Dans les langages compilés, vous pouvez souvent détecter des erreurs au moment de laFaire un don
compilation, ce qui notre
Soutenez ne seassociation
produit pas dansetles
caritative langages
notre mission.interprétés.
Faites un don à freeCodeCamp.org .
Fait amusant : PHP est écrit en interne en C, un langage compilé et typé statiquement.
De par sa nature, PHP est similaire à JavaScript, un autre langage typé dynamiquement,
faiblement typé et interprété.
Le moyen le plus pratique que j'ai trouvé pour installer PHP localement est d'utiliser MAMP.
MAMP est un outil disponible gratuitement pour tous les systèmes d'exploitation - Mac,
Windows et Linux. C'est un package qui vous donne tous les outils dont vous avez besoin pour
être opérationnel.
PHP est exécuté par un serveur HTTP, qui est chargé de répondre aux requêtes HTTP, celles
faites par le navigateur. Ainsi, vous accédez à une URL avec votre navigateur, Chrome ou
Firefox ou Safari, et le serveur HTTP répond avec du contenu HTML.
Ensuite, pour faire quelque chose de non trivial, vous aurez besoin d'une base de données,
comme MySQL.
MAMP est un package qui fournit tout cela, et plus encore, et vous offre une interface
agréable pour tout démarrer/arrêter en même temps.
Bien sûr, vous pouvez configurer chaque pièce seule si vous le souhaitez, et de nombreux
tutoriels expliquent comment procéder. Mais j'aime les outils simples et pratiques, et MAMP
en fait partie.
Vous pouvez suivre ce manuel avec n'importe quel type de méthode d'installation PHP, pas
seulement MAMP.
Cela dit, si vous n'avez pas encore installé PHP et que vous souhaitez utiliser MAMP, rendez-
vous sur https://www.mamp.info et installez-le.
Le processus dépendra de votre système d'exploitation, mais une fois l'installation terminée,
une application « MAMP » sera installée.
https://www.freecodecamp.org/news/the-php-handbook/ 4/71
18/04/2023 10:57 Le manuel PHP - Apprendre PHP pour les débutants
Faire un don
REMARQUE : j'ai remarqué que MAMP a une version un peu en retard, pas la dernière. Vous
pouvez installer une version plus récente de PHP en activant la démo MAMP PRO, puis
installez la dernière version à partir des paramètres MAMP PRO (dans mon cas, c'était 8.1.0).
Fermez-le ensuite et rouvrez MAMP (version non pro). MAMP PRO a plus de fonctionnalités
donc vous voudrez peut-être l'utiliser, mais il n'est pas nécessaire de suivre ce manuel.
Appuyez sur le bouton Démarrer en haut à droite. Cela démarrera le serveur HTTP Apache,
avec PHP activé, et la base de données MySQL.
https://www.freecodecamp.org/news/the-php-handbook/ 5/71
18/04/2023 10:57 Le manuel PHP - Apprendre PHP pour les débutants
Faire un don
Ouvrez le dossier répertorié comme « Racine du document ». Si vous utilisez MAMP sur un
Mac, c'est par défaut /Applications/MAMP/htdocs .
Le vôtre peut être différent selon votre configuration. En utilisant MAMP, vous pouvez le
trouver dans l'interface utilisateur de l'application.
https://www.freecodecamp.org/news/the-php-handbook/ 6/71
18/04/2023 10:57 Le manuel PHP - Apprendre PHP pour les débutants
Faire un don
Comment coder votre premier programme PHP
Soutenez notre association caritative et notre mission. Faites un don à freeCodeCamp.org .
Lors de l'apprentissage d'un nouveau langage de programmation, nous avons cette tradition
de créer un "Hello, World!" application. Quelque chose qui imprime ces chaînes.
Assurez-vous que MAMP est en cours d'exécution et ouvrez le htdocs dossier comme
expliqué ci-dessus.
Je recommande d'utiliser VS Code , car c'est un éditeur de code très simple et puissant. Vous
pouvez consulter https://flaviocopes.com/vscode/ pour une introduction.
C'est le code qui génère la page "Bienvenue dans MAMP" que vous avez vue dans le
navigateur.
<?php
echo 'Hello World';
?>
https://www.freecodecamp.org/news/the-php-handbook/ 7/71
18/04/2023 10:57 Le manuel PHP - Apprendre PHP pour les débutants
Faire un don
Nous avons le serveur Apache HTTP qui écoute sur le port 8888 de localhost, votre
ordinateur.
Lorsque nous accédons à http://localhost:8888 avec le navigateur, nous faisons une requête
HTTP, demandant le contenu de la route / , l'URL de base.
Apache, par défaut, est configuré pour servir cette route en servant le index.html fichier
inclus dans le htdocs dossier. Ce fichier n'existe pas - mais comme nous avons configuré
Apache pour qu'il fonctionne avec PHP, il recherchera alors un index.php fichier.
Ce fichier existe et le code PHP est exécuté côté serveur avant qu'Apache ne renvoie la page
au navigateur.
Dans le fichier PHP, nous avons une <?php ouverture, qui dit "ici commence du code PHP".
Nous avons une fin ?> qui ferme l'extrait de code PHP, et à l'intérieur, nous utilisons l'
echo instruction pour imprimer la chaîne entre guillemets dans le HTML.
Nous avons cette structure d'ouverture/fermeture car nous pouvons intégrer PHP dans
HTML. PHP est un langage de script, et son but est de pouvoir « décorer » une page HTML
avec des données dynamiques.
Notez qu'avec le PHP moderne, nous évitons généralement de mélanger PHP dans le HTML.
Au lieu de cela, nous utilisons PHP comme "framework pour générer le HTML" - par exemple
https://www.freecodecamp.org/news/the-php-handbook/ 8/71
18/04/2023 10:57 Le manuel PHP - Apprendre PHP pour les débutants
en utilisant des outils comme Laravel. Mais nous parlerons de PHP simple dans ce livre, ilFaire
est un don
donc logique de commencer
Soutenez par les
notre association bases.et notre mission. Faites un don à freeCodeCamp.org .
caritative
Par exemple, quelque chose comme ceci vous donnera le même résultat dans le navigateur :
Hello
<?php
echo 'World';
?>
Pour l'utilisateur final, qui regarde le navigateur et n'a aucune idée du code en coulisse, il n'y a
aucune différence.
La page est techniquement une page HTML, même si elle ne contient pas de balises HTML
mais juste une Hello World chaîne. Mais le navigateur peut comprendre comment afficher
cela dans la fenêtre.
Vous pouvez affecter à une variable n'importe quel type de valeur, comme des chaînes
(définies à l'aide de guillemets simples ou doubles) :
$name = 'Flavio';
$name = "Flavio";
Ou des nombres :
$age = 20;
ou tout autre type autorisé par PHP, comme nous le verrons plus tard.
Une fois qu'une variable a reçu une valeur, par exemple une chaîne, nous pouvons lui
réaffecter un autre type de valeur, comme un nombre :
$name = 3;
https://www.freecodecamp.org/news/the-php-handbook/ 9/71
18/04/2023 10:57 Le manuel PHP - Apprendre PHP pour les débutants
PHP ne se plaindra pas que maintenant le type est différent. Faire un don
Ce n'est pas une règle stricte, mais généralement les noms de variables sont écrits au format
camelCase, comme ceci : $brandOfCar ou $ageOfDog . Nous gardons la première lettre en
minuscule et les lettres des mots suivants en majuscule.
Vous écrivez des commentaires sur une seule ligne en PHP de cette manière :
/*
this is a comment
*/
//or
/*
*
* this is a comment
*
*/
/* this is a comment */
string cordes
array tableaux
object objets
https://www.freecodecamp.org/news/the-php-handbook/ 10/71
18/04/2023 10:57 Le manuel PHP - Apprendre PHP pour les débutants
$name = 'Flavio';
var_dump($name);
L' var_dump($name) instruction s'imprimera string(6) "Flavio" sur la page, ce qui nous
indiquera que la variable est une chaîne de 6 caractères.
$age = 20;
var_dump($age);
nous aurions int(20) en retour, en disant que la valeur est 20 et que c'est un entier.
var_dump() est l'un des outils essentiels de votre ceinture d'outils de débogage PHP.
$base = 20;
$height = 10;
Nous avons pas mal d'opérateurs - alors faisons un rapide tour d'horizon des principaux.
Nous avons l'opérateur d'affectation = , que nous avons déjà utilisé pour affecter une valeur à
une variable.
Ensuite, nous avons des opérateurs de comparaison, comme < , > , <= , >= . Ceux-ci
fonctionnent comme ils le font en mathématiques.
2 < 1; //false
1 <= 1; // true
1 <= 2; // true
https://www.freecodecamp.org/news/the-php-handbook/ 11/71
18/04/2023 10:57 Le manuel PHP - Apprendre PHP pour les débutants
1 == '1'; //true
1 === '1'; //false
1 != 1; //false
1 != '1'; //false
1 != 2; //true
1 !== 1; //false
1 !== '1'; //true
https://www.freecodecamp.org/news/the-php-handbook/ 12/71
18/04/2023 10:57 Le manuel PHP - Apprendre PHP pour les débutants
$test = true
!$test //false
J'ai utilisé les valeurs booléennes true et false ici, mais en pratique, vous utiliserez des
expressions qui évaluent soit vrai soit faux, par exemple :
Tous les opérateurs listés ci-dessus sont binaires , ce qui signifie qu'ils impliquent 2 opérandes.
$age = 20;
$age++;
//age is now 21
$age--;
//age is now 20
La grande différence entre l'utilisation de guillemets simples et doubles est qu'avec les
guillemets doubles, nous pouvons étendre les variables de cette manière :
et avec des guillemets doubles, nous pouvons utiliser des caractères d'échappement (pensez à de
nouvelles lignes \n ou tabulations \t ):
/*
output is:
https://www.freecodecamp.org/news/the-php-handbook/ 13/71
18/04/2023 10:57 Le manuel PHP - Apprendre PHP pour les débutants
This is a line
Faire un don
This is a line
Soutenez notre association caritative et notre mission. Faites un don à freeCodeCamp.org .
*/
PHP vous propose un ensemble de fonctions très complet dans sa bibliothèque standard (la
bibliothèque de fonctionnalités que le langage propose par défaut).
Tout d'abord, nous pouvons concaténer deux chaînes à l'aide de l' . opérateur :
$firstName = 'Flavio';
$lastName = 'Copes';
$name = 'Flavio';
strlen($name); //6
Une fonction est composée d'un identifiant ( strlen dans ce cas) suivi de parenthèses. À
l'intérieur de ces parenthèses, nous passons un ou plusieurs arguments à la fonction. Dans ce
cas, nous avons un argument.
La fonction fait quelque chose et quand c'est fait, elle peut renvoyer une valeur. Dans ce cas, il
renvoie le nombre 6 . Si aucune valeur n'est renvoyée, la fonction renvoie null .
$name = 'Flavio';
substr($name, 3); //"vio" - start at position 3, get all the rest
substr($name, 2, 2); //"av" - start at position 2, get 2 items
$name = 'Flavio';
str_replace('avio', 'ower', $name); //"Flower"
$name = 'Flavio';
https://www.freecodecamp.org/news/the-php-handbook/ 14/71
18/04/2023 10:57 Le manuel PHP - Apprendre PHP pour les débutants
$itemObserved = str_replace('avio', 'ower', $name); //"Flower"
Faire un don
Il existe de nombreuses autres fonctions intégrées que vous pouvez utiliser pour travailler
avec des chaînes.
Voici une petite liste non exhaustive juste pour vous montrer les possibilités :
Faisons une liste des fonctions que nous utilisons avec les nombres :
round() pour arrondir un nombre décimal, vers le haut/vers le bas selon si la valeur est
> 0,5 ou moins
min() trouve le plus petit nombre parmi les nombres passés en arguments
max() trouve le nombre le plus élevé parmi les nombres passés en arguments
Il existe une tonne de fonctions différentes pour toutes sortes d'opérations mathématiques
comme le sinus, le cosinus, les tangentes, les logarithmes, etc. Vous pouvez trouver une liste
complète ici .
https://www.freecodecamp.org/news/the-php-handbook/ 15/71
18/04/2023 10:57 Le manuel PHP - Apprendre PHP pour les débutants
$list = [];
Faire un don
Une fois qu'un tableau est créé, vous pouvez lui ajouter des valeurs de la manière suivante :
/*
$list == [
"a",
"b",
"c",
]
*/
Vous pouvez utiliser array_unshift() pour ajouter l'élément au début du tableau à la place :
/*
$list == [
"a",
"b",
"c",
https://www.freecodecamp.org/news/the-php-handbook/ 16/71
18/04/2023 10:57 Le manuel PHP - Apprendre PHP pour les débutants
]
*/
Faire un don
count($list); //2
array_reduce() pour réduire un tableau à une seule valeur à l'aide d'une fonction de
rappel
array_filter() pour filtrer un tableau en une seule valeur à l'aide d'une fonction de
rappel
https://www.freecodecamp.org/news/the-php-handbook/ 17/71
18/04/2023 10:57 Le manuel PHP - Apprendre PHP pour les débutants
array_walk() de la même manière que array_map() fait quelque chose pour chaque
élément du tableau, mais en plus, il peut modifier les valeurs du tableau existant
Vous pouvez également utiliser des tableaux avec des index nommés (clés), et nous les
appelons tableaux associatifs :
$list['first'] //'a'
$list['second'] //'b'
Nous avons quelques fonctions particulièrement utiles pour les tableaux associatifs :
Vous pouvez voir toutes les fonctions liées aux tableaux ici .
Ces opérateurs vont être super utiles pour une chose : les conditionnels .
Nous pouvons décider de faire quelque chose, ou autre chose, sur la base d'une comparaison.
Par exemple:
https://www.freecodecamp.org/news/the-php-handbook/ 18/71
18/04/2023 10:57 Le manuel PHP - Apprendre PHP pour les débutants
$age = 17;
Faire un don
Utilisez else pour faire autre chose dans le cas où la condition est false :
$age = 17;
REMARQUE: j'ai utilisé cannot au lieu de can't parce que le guillemet simple mettrait fin à
ma chaîne avant qu'il ne le faille. Dans ce cas, vous pouvez échapper ' de la manière
suivante : echo 'You can\'t enter the pub';
$age = 17;
Nous l'utilisons lorsque nous avons une variable qui peut avoir plusieurs valeurs différentes,
et nous n'avons pas besoin d'un long bloc if / elseif :
$age = 17
switch($age) {
case 15:
echo 'You are 15';
break;
case 16:
echo 'You are 16';
break;
case 17:
echo 'You are 17';
break;
case 18:
echo 'You are 18';
break;
default:
echo "You are $age";
}
https://www.freecodecamp.org/news/the-php-handbook/ 19/71
18/04/2023 10:57 Le manuel PHP - Apprendre PHP pour les débutants
Je sais que l'exemple n'a aucune logique, mais je pense qu'il peut vous aider à comprendre
Faire un don
comment switch
Soutenezfonctionne.
notre association caritative et notre mission. Faites un don à freeCodeCamp.org .
La break; déclaration après chaque cas est essentielle. Si vous n'ajoutez pas cela et que l'âge
est de 17 ans, vous verrez ceci :
You are 17
You are 18
You are 17
Au lieu de juste ça :
You are 17
Nous avons différents types de boucles en PHP : while , do while , for et foreach .
Voyons-les tous !
while (true) {
echo 'looping';
}
Ce serait une boucle infinie, c'est pourquoi nous utilisons des variables et des comparaisons :
$counter = 0;
https://www.freecodecamp.org/news/the-php-handbook/ 20/71
18/04/2023 10:57 Le manuel PHP - Apprendre PHP pour les débutants
$counter = 0;
Faire un don
Dans la do while boucle, on fait d'abord la première itération, puis on vérifie la condition.
Faites un test simple en réglant $counter sur 15 dans les exemples ci-dessus, et voyez ce qui
se passe.
Vous voudrez choisir un type de boucle ou l'autre, selon votre cas d'utilisation.
Vous pouvez également obtenir la valeur de l'index (ou de la clé dans un tableau associatif) de
cette manière :
//result: 0123456789
Vous pouvez utiliser la boucle for pour parcourir un tableau de la manière suivante :
https://www.freecodecamp.org/news/the-php-handbook/ 21/71
18/04/2023 10:57 Le manuel PHP - Apprendre PHP pour les débutants
for ($i = 0; $i < count($list); $i++) {
echo $list[$i];
Faire un don
}
Soutenez notre association caritative et notre mission. Faites un don à freeCodeCamp.org .
//result: abc
Par exemple, vous voulez arrêter une for boucle lorsque la valeur de la variable dans le
tableau est 'b' :
//result: a
//result: ac
Vous pouvez utiliser des fonctions pour regrouper plusieurs instructions ou plusieurs lignes de
code et leur donner un nom.
Par exemple, vous pouvez créer une fonction qui envoie un e-mail. Appelons-le sendEmail , et
nous le définirons comme ceci :
function sendEmail() {
//send an email
}
https://www.freecodecamp.org/news/the-php-handbook/ 22/71
18/04/2023 10:57 Le manuel PHP - Apprendre PHP pour les débutants
sendEmail();
Vous pouvez également passer des arguments à une fonction. Par exemple, lorsque vous
envoyez un e-mail, vous souhaitez l'envoyer à quelqu'un - vous ajoutez donc l'e-mail comme
premier argument :
sendEmail('test@test.com');
Dans la définition de la fonction, nous obtenons ce paramètre de cette manière (nous les
appelons paramètres dans la définition de la fonction et arguments lorsque nous appelons la
fonction) :
function sendEmail($to) {
echo "send an email to $to";
}
Vous pouvez envoyer plusieurs arguments en les séparant par des virgules :
Et nous pouvons obtenir ces paramètres dans l'ordre dans lequel ils ont été définis :
Les paramètres peuvent avoir une valeur par défaut, donc s'ils sont omis, nous pouvons
toujours leur attribuer une valeur :
sendEmail('test@test.com')
https://www.freecodecamp.org/news/the-php-handbook/ 23/71
18/04/2023 10:57 Le manuel PHP - Apprendre PHP pour les débutants
Une fonction peut renvoyer une valeur. Une seule valeur peut être renvoyée par une fonction,
Faire un don
pas plus d'une. Vousnotre
Soutenez faites cela encaritative
association utilisantetle return
notre mot-clé.
mission. Faites unSi omis,
don la fonction renvoie
à freeCodeCamp.org .
null .
La valeur renvoyée est super utile car elle vous indique le résultat du travail effectué dans la
fonction et vous permet d'utiliser son résultat après l'avoir appelée :
function sendEmail($to) {
return true;
}
$success = sendEmail('test@test.com');
if ($success) {
echo 'email sent successfully';
} else {
echo 'error sending the email';
}
Nous pouvons éventuellement définir le type de retour d'une fonction en utilisant cette
syntaxe :
Lorsque vous définissez une variable à l'intérieur d'une fonction, cette variable est locale à la
fonction, ce qui signifie qu'elle n'est pas visible de l'extérieur. Lorsque la fonction se termine,
elle cesse simplement d'exister :
function sendEmail($to) {
$test = 'a';
}
Cela impose une bonne pratique de programmation car nous pouvons être sûrs que la fonction
ne modifie pas les variables externes et ne provoque pas d'"effets secondaires".
Au lieu de cela, vous renvoyez une valeur de la fonction, et le code extérieur qui appelle la
fonction se chargera de mettre à jour la variable extérieure.
Comme ça:
$character = 'a';
function test() {
return 'b';
https://www.freecodecamp.org/news/the-php-handbook/ 24/71
18/04/2023 10:57 Le manuel PHP - Apprendre PHP pour les débutants
}
Faire un don
$character = test();
Soutenez notre association caritative et notre mission. Faites un don à freeCodeCamp.org .
Vous pouvez passer la valeur d'une variable en la passant comme argument à la fonction :
$character = 'a';
function test($c) {
echo $c;
}
test($character);
Il est passé par value , ce qui signifie que la fonction en reçoit une copie, et non la référence à
la variable d'origine.
C'est toujours possible en utilisant cette syntaxe (notez que j'ai utilisé & dans la définition du
paramètre):
$character = 'a';
function test(&$c) {
$c = 'b';
}
test($character);
Les fonctions que nous avons définies jusqu'à présent sont nommées functions .
Nous avons également des fonctions anonymes , qui peuvent être utiles dans de nombreux
cas.
Ils n'ont pas de nom en soi, mais ils sont affectés à une variable. Pour les appeler, vous
invoquez la variable avec des parenthèses à la fin :
$myfunction = function() {
//do something here
};
$myfunction()
Notez que vous avez besoin d'un point-virgule après la définition de la fonction, mais elles
fonctionnent alors comme des fonctions nommées pour les valeurs de retour et les
paramètres.
https://www.freecodecamp.org/news/the-php-handbook/ 25/71
18/04/2023 10:57 Le manuel PHP - Apprendre PHP pour les débutants
Fait intéressant, ils offrent un moyen d'accéder à une variable définie en dehors de la fonction
Faire un don
via use() : Soutenez notre association caritative et notre mission. Faites un don à freeCodeCamp.org .
$test = 'test';
$myfunction()
Une fonction fléchée est une fonction anonyme qui n'est qu'une expression (une ligne) et
renvoie implicitement la valeur de cette expression.
Voici un exemple :
$printTest(); //'test'
$multiply(2, 4) //8
Notez que comme le montre l'exemple suivant, les fonctions fléchées ont un accès
automatique aux variables de la portée englobante, sans avoir besoin de use() .
$a = 2;
$b = 4;
$multiply()
Les fonctions fléchées sont super utiles lorsque vous devez passer une fonction de rappel.
Nous verrons plus tard comment les utiliser pour effectuer certaines opérations sur les
tableaux.
https://www.freecodecamp.org/news/the-php-handbook/ 26/71
18/04/2023 10:57 Le manuel PHP - Apprendre PHP pour les débutants
Nous avons donc au total 3 types de fonctions : les fonctions nommées , les fonctions Faire un don
anonymes et les fonctions
Soutenez fléchées
notre association .
caritative et notre mission. Faites un don à freeCodeCamp.org .
Chacun d'eux a sa place, et vous apprendrez à les utiliser correctement au fil du temps, avec de
la pratique.
Ces 3 fonctions PHP intégrées prennent un tableau et une fonction de rappel qui, à chaque
itération, prend chaque élément du tableau.
Par exemple, nous pouvons l'utiliser pour multiplier tous les éléments d'un tableau :
Remarquez le dernier paramètre - c'est la valeur initiale. Si vous omettez cela, la valeur par
défaut est 0 mais cela ne fonctionnerait pas pour notre exemple de multiplication.
Notez que array_map() l'ordre des arguments est inversé. Vous avez d'abord la fonction de
rappel, puis le tableau. C'est parce que nous pouvons passer plusieurs tableaux en utilisant des
virgules ( array_map(fn($value) => $value * 2, $numbers, $otherNumbers,
$anotherArray); ). Idéalement, nous aimerions plus de cohérence, mais c'est comme ça.
https://www.freecodecamp.org/news/the-php-handbook/ 27/71
18/04/2023 10:57 Le manuel PHP - Apprendre PHP pour les débutants
Faire un don
Programmation orientée objet en PHP
Soutenez notre association caritative et notre mission. Faites un don à freeCodeCamp.org .
Passons maintenant tête la première dans un grand sujet : la programmation orientée objet
avec PHP.
La programmation orientée objet vous permet de créer des abstractions utiles et de rendre
votre code plus simple à comprendre et à gérer.
class Dog {
Ensuite, vous pouvez créer des objets à partir de cette classe - des chiens spécifiques et
individuels.
Un objet est assigné à une variable, et il est instancié en utilisant la new Classname() syntaxe :
Vous pouvez créer plusieurs objets à partir de la même classe, en affectant chaque objet à une
variable différente :
Nous pouvons donc les définir comme des propriétés dans la classe :
class Dog {
public $name;
public $age;
https://www.freecodecamp.org/news/the-php-handbook/ 28/71
18/04/2023 10:57 Le manuel PHP - Apprendre PHP pour les débutants
public $color;
}
Faire un don
Ils fonctionnent comme des variables, mais ils sont attachés à l'objet, une fois qu'il est
instancié à partir de la classe. Le public mot-clé est le modificateur d'accès et définit la
propriété pour qu'elle soit accessible au public.
class Dog {
public $name;
public $age;
public $color;
}
$roger->name = 'Roger';
$roger->age = 10;
$roger->color = 'gray';
var_dump($roger);
/*
object(Dog)#1 (3) {
["name"]=> string(5) "Roger"
["age"]=> int(10)
["color"]=> string(4) "gray"
}
*/
C'est ce qu'on appelle un modificateur d'accès. Vous pouvez utiliser deux autres types de
modificateurs d'accès : private et protected . Privé rend la propriété inaccessible de
l'extérieur de l'objet. Seules les méthodes définies à l'intérieur de l'objet peuvent y accéder.
Nous en verrons plus sur les protégés lorsque nous parlerons de l'héritage.
Une méthode est une fonction définie à l'intérieur de la classe, et elle est définie de cette
manière :
class Dog {
public function bark() {
echo 'woof!';
}
}
Les méthodes sont très utiles pour attacher un comportement à un objet. Dans ce cas on peut
faire aboyer un chien.
https://www.freecodecamp.org/news/the-php-handbook/ 29/71
18/04/2023 10:57 Le manuel PHP - Apprendre PHP pour les débutants
Remarquez que j'utilise le public mot-clé. C'est-à-dire que vous pouvez invoquer une Faire un don
méthode depuis l'extérieur
Soutenez de la classe.
notre association Comme
caritative et notre pour les
mission. propriétés,
Faites vous pouvez marquer
un don à freeCodeCamp.org . les
méthodes comme private too, ou protected , pour restreindre leur accès.
class Dog {
public function bark() {
echo 'woof!';
}
}
$roger->bark();
Une méthode, tout comme une fonction, peut également définir des paramètres et une valeur
de retour.
À l'intérieur d'une méthode, nous pouvons accéder aux propriétés de l'objet à l'aide de la
variable intégrée spéciale $this qui, lorsqu'elle est référencée dans une méthode, pointe vers
l'instance actuelle de l'objet :
class Dog {
public $name;
class Dog {
public function __construct() {
}
}
Vous utilisez cette méthode pour initialiser les propriétés d'un objet lorsque vous le créez, car
il est automatiquement appelé lors de l'appel de new Classname() .
class Dog {
public $name;
https://www.freecodecamp.org/news/the-php-handbook/ 30/71
18/04/2023 10:57 Le manuel PHP - Apprendre PHP pour les débutants
public function __construct($name) {
$this->name = $name;
Faire un don
}
Soutenez notre association caritative et notre mission. Faites un don à freeCodeCamp.org .
public function bark() {
echo $this->name . ' barked!';
}
}
C'est une chose tellement courante que PHP (à partir de PHP 8) inclut quelque chose appelé
promotion de constructeur où il fait automatiquement cette chose :
class Dog {
public $name;
//...
class Dog {
public function __construct(public $name) {
}
Vous pouvez exiger que le nom soit une chaîne en utilisant public string $name :
class Dog {
public string $name;
https://www.freecodecamp.org/news/the-php-handbook/ 31/71
18/04/2023 10:57 Le manuel PHP - Apprendre PHP pour les débutants
Maintenant, tout fonctionne bien dans cet exemple, mais essayez de changer cela pourFaire
publicun don
int $name exiger qu'il
Soutenez soit
notre un entier.
association caritative et notre mission. Faites un don à freeCodeCamp.org .
PHP lèvera une erreur si vous initialisez $name avec une chaîne :
TypeError: Dog::__construct():
Argument #1 ($name) must be of type int,
string given on line 14
Intéressant, non ?
Nous pouvons appliquer des propriétés pour avoir un type spécifique entre string , int ,
float , string , object , array , bool et other .
class Animal {
Chaque animal a un âge et chaque animal peut manger. Nous ajoutons donc une age propriété
et une eat() méthode :
class Animal {
public $age;
Un chien est un animal et a un âge et peut aussi manger, donc la Dog classe - au lieu de
réimplémenter les mêmes choses que nous avons Animal - peut étendre cette classe :
Nous pouvons maintenant instancier un nouvel objet de classe Dog et nous avons accès aux
propriétés et méthodes définies dans Animal :
https://www.freecodecamp.org/news/the-php-handbook/ 32/71
18/04/2023 10:57 Le manuel PHP - Apprendre PHP pour les débutants
$roger->eat();
Faire un don
Dans ce cas, nous appelons Dog la classe enfant et Animal la classe parent .
À l'intérieur de la classe enfant, nous pouvons utiliser $this pour référencer n'importe quelle
propriété ou méthode définie dans le parent, comme si elles étaient définies à l'intérieur de la
classe enfant.
Il convient de noter que même si nous pouvons accéder aux propriétés et aux méthodes du
parent à partir de l'enfant, nous ne pouvons pas faire l'inverse.
private les propriétés et les méthodes ne sont accessibles qu'à partir de la classe.
protected les propriétés et les méthodes sont accessibles depuis la classe et depuis les
classes enfants.
class Animal {
public $age;
Désormais, toute instance de Dog utilisera l' Dog implémentation de la eat() méthode.
https://www.freecodecamp.org/news/the-php-handbook/ 33/71
18/04/2023 10:57 Le manuel PHP - Apprendre PHP pour les débutants
Lorsque cela se produit, nous les appelons static , et pour les référencer ou les appeler,Faire
nous un don
n'avons pasSoutenez
besoin de créer
notre un objet
association à partir
caritative de lamission.
et notre classe. Faites un don à freeCodeCamp.org .
Commençons par les propriétés statiques. Nous les définissons avec le static mot-clé :
class Utils {
public static $version = '1.0';
}
Nous les référençons depuis l'intérieur de la classe en utilisant le mot-clé self , qui pointe
vers la classe :
self::$version;
Utils::version
class Utils {
public static function version() {
return '1.0';
}
}
Utils::version();
Depuis l'intérieur de la classe, nous pouvons les référencer en utilisant le self mot-clé, qui
fait référence à la classe actuelle :
self::version();
La principale différence est que == vérifie le contenu de l'objet, par exemple la '5' chaîne est
égale au nombre 5 , mais elle n'est pas identique à celui-ci.
https://www.freecodecamp.org/news/the-php-handbook/ 34/71
18/04/2023 10:57 Le manuel PHP - Apprendre PHP pour les débutants
Lorsque nous utilisons ces opérateurs pour comparer des objets, == vérifiera si les deux objetsun
Faire don
ont la mêmeSoutenez
classe notre
et si association
les mêmes valeursetleur
caritative notresont attribuées.
mission. Faites un don à freeCodeCamp.org .
=== d'autre part vérifiera s'ils font également référence à la même instance (objet).
Par exemple:
class Dog {
public $name = 'Good dog';
}
class Dog {
public $name = 'Good dog';
public $age = 10;
public $color = 'gray';
}
class Dog {
public $name;
}
Cela effectue un clone peu profond , ce qui signifie que les références à d'autres variables
seront copiées en tant que références - il n'y aura pas de "clonage récursif" de celles-ci.
Pour faire un clone profond, vous devrez faire un peu plus de travail.
https://www.freecodecamp.org/news/the-php-handbook/ 35/71
18/04/2023 10:57 Le manuel PHP - Apprendre PHP pour les débutants
Les méthodes magiques sont des méthodes spéciales que nous définissons dans les classes
Faire un don
pour effectuer un certain
Soutenez comportement
notre association lorsque
caritative et quelque
notre mission. chose
Faites deà freeCodeCamp.org
un don spécial se produit.
.
Par exemple, lorsqu'une propriété est définie ou accédée, ou lorsque l'objet est cloné.
Il y en a d'autres. Par exemple, nous pouvons définir une propriété booléenne "cloned" sur true
lorsque l'objet est cloné :
class Dog {
public $name;
Dans un fichier PHP, vous pouvez inclure d'autres fichiers PHP. Nous avons les méthodes
suivantes, toutes utilisées pour ce cas d'utilisation, mais elles sont toutes légèrement
différentes : include , include_once , require et require_once .
include charge le contenu d'un autre fichier PHP, en utilisant un chemin relatif.
require fait la même chose, mais s'il y a une erreur, le programme s'arrête. include ne
générera qu'un avertissement.
Vous pouvez décider d'utiliser l'un ou l'autre en fonction de votre cas d'utilisation. Si vous
voulez que votre programme se ferme s'il ne peut pas importer le fichier, utilisez require .
include_once et require_once font la même chose que leurs fonctions correspondantes sans
_once , mais ils s'assurent que le fichier n'est inclus/requis qu'une seule fois lors de l'exécution
du programme.
https://www.freecodecamp.org/news/the-php-handbook/ 36/71
18/04/2023 10:57 Le manuel PHP - Apprendre PHP pour les débutants
Ceci est utile si, par exemple, plusieurs fichiers chargent un autre fichier et que vous souhaitez
Faire un don
généralement éviter
Soutenez de association
notre le chargercaritative
plus d'une fois.
et notre mission. Faites un don à freeCodeCamp.org .
Ma règle d'or est de ne jamais utiliser include ou require parce que vous pourriez charger le
même fichier deux fois. include_once et require_once vous aider à éviter ce problème.
Voici un exemple :
require_once('test.php');
require_once('../test.php');
require_once('test/test.php');
require_once('/var/www/test/file.php');
Dans les bases de code PHP modernes qui utilisent un framework, les fichiers sont
généralement chargés automatiquement, vous aurez donc moins besoin d'utiliser les
fonctions ci-dessus.
https://www.freecodecamp.org/news/the-php-handbook/ 37/71
18/04/2023 10:57 Le manuel PHP - Apprendre PHP pour les débutants
utiliser $_SERVER['DOCUMENT_ROOT']
Avertissements
Avis
les erreurs
Les deux premières sont des erreurs mineures, et elles n'arrêtent pas l'exécution du
programme. PHP affichera un message, et c'est tout.
Les erreurs mettent fin à l'exécution du programme et impriment un message vous indiquant
pourquoi.
Il existe de nombreux types d'erreurs, telles que les erreurs d'analyse, les erreurs fatales
d'exécution, les erreurs fatales de démarrage, etc.
En mode développement, il est courant de consigner les erreurs PHP directement dans la page
Web, mais également dans un journal des erreurs.
Vous voulez voir ces erreurs le plus tôt possible, afin de pouvoir les corriger.
En production, par contre, vous ne voulez pas les afficher dans la page Web, mais vous voulez
tout de même les connaître.
Donc que fais-tu? Vous les enregistrez dans le journal des erreurs.
https://www.freecodecamp.org/news/the-php-handbook/ 38/71
18/04/2023 10:57 Le manuel PHP - Apprendre PHP pour les débutants
Pour savoir où se trouve le vôtre, le plus simple est de l'ajouter à un fichier PHP et de
l'exécuter dans votre navigateur :
<?php
phpinfo();
?>
Notez que les informations générées par phpinfo() contiennent de nombreuses autres
informations utiles. Rappelez-vous cela.
À l'aide de MAMP, vous pouvez ouvrir le dossier de l'application MAMP et ouvrir bin/php .
Allez dans votre version spécifique de PHP (8.1.0 dans mon cas) puis allez dans conf . Vous y
trouverez le php.ini fichier :
https://www.freecodecamp.org/news/the-php-handbook/ 39/71
18/04/2023 10:57 Le manuel PHP - Apprendre PHP pour les débutants
Faire un don
Il contient une très longue liste de paramètres, avec une excellente documentation en ligne
pour chacun.
https://www.freecodecamp.org/news/the-php-handbook/ 40/71
18/04/2023 10:57 Le manuel PHP - Apprendre PHP pour les débutants
En production, vous voulez que sa valeur soit Off , comme le disent les documents ci-dessus.
Faire un don
https://www.freecodecamp.org/news/the-php-handbook/ 41/71
18/04/2023 10:57 Le manuel PHP - Apprendre PHP pour les débutants
Le journal des erreurs contiendra tous les messages d'erreur générés par votre application :
Faire un don
error_log('test');
Il est courant d'utiliser un service de journalisation pour les erreurs, comme Monolog .
Mais souvent, nous pouvons anticiper et écrire du code capable d'intercepter une erreur et de
faire quelque chose de sensé lorsque cela se produit. Comme montrer un message d'erreur
utile à l'utilisateur ou essayer une solution de contournement.
Les exceptions sont utilisées pour que nous, développeurs, soyons conscients d'un problème.
Nous enveloppons du code qui peut potentiellement déclencher une exception dans un
try bloc, et nous avons un catch bloc juste après cela. Ce bloc catch sera exécuté s'il y a une
exception dans le bloc try :
try {
//do something
} catch (Throwable $e) {
https://www.freecodecamp.org/news/the-php-handbook/ 42/71
18/04/2023 10:57 Le manuel PHP - Apprendre PHP pour les débutants
//we can do something here if an exception happens
}
Faire un don
Notez que nous avons un Exception objet $e passé au catch bloc, et nous pouvons inspecter
cet objet pour obtenir plus d'informations sur l'exception, comme ceci :
try {
//do something
} catch (Throwable $e) {
echo $e->getMessage();
}
Prenons un exemple.
echo 1 / 0;
Cela déclenchera une erreur fatale et le programme s'arrêtera sur cette ligne :
En enveloppant l'opération dans un bloc try et en imprimant le message d'erreur dans le bloc
catch, le programme se termine avec succès, m'indiquant le problème :
try {
echo 1 / 0;
} catch (Throwable $e) {
echo $e->getMessage();
}
https://www.freecodecamp.org/news/the-php-handbook/ 43/71
18/04/2023 10:57 Le manuel PHP - Apprendre PHP pour les débutants
Faire un don
Bien sûr, c'est un exemple simple mais vous pouvez voir l'avantage : je peux intercepter le
problème.
Chaque exception a une classe différente. Par exemple, nous pouvons attraper cela
comme DivisionByZeroError et à mesure et cela me permet de filtrer les problèmes
possibles et de les gérer différemment.
Je peux avoir un fourre-tout pour toute erreur jetable à la fin, comme ceci:
try {
echo 1 / 0;
} catch (DivisionByZeroError $e) {
echo 'Ooops I divided by zero!';
} catch (Throwable $e) {
echo $e->getMessage();
}
https://www.freecodecamp.org/news/the-php-handbook/ 44/71
18/04/2023 10:57 Le manuel PHP - Apprendre PHP pour les débutants
Et je peux aussi ajouter un finally {} bloc à la fin de cette structure try/catch pour exécuter
Faire un don
du code après que le
Soutenez code
notre soit exécuté
association avec
caritative succès
et notre sansFaites
mission. problème,
un don àou qu'il y ait eu un
freeCodeCamp.org . catch :
try {
echo 1 / 0;
} catch (DivisionByZeroError $e) {
echo 'Ooops I divided by zero!';
} catch (Throwable $e) {
echo $e->getMessage();
} finally {
echo ' ...done!';
}
Vous pouvez utiliser les exceptions intégrées fournies par PHP, mais vous pouvez également
créer vos propres exceptions.
Nous pouvons obtenir l'horodatage actuel (nombre de secondes depuis le 1er janvier 1970
00:00:00 GMT) en utilisant time() :
$timestamp = time();
Lorsque vous avez un horodatage, vous pouvez le formater en tant que date en utilisant
date() , dans le format que vous préférez :
https://www.freecodecamp.org/news/the-php-handbook/ 45/71
18/04/2023 10:57 Le manuel PHP - Apprendre PHP pour les débutants
Y est la représentation à 4 chiffres de l'année, m est le numéro du mois (avec un zéro enFaire
tête) un don
et d est le numéro
Soutenez du jour
notre du mois,
association avec un
caritative zéro mission.
et notre en tête.Faites un don à freeCodeCamp.org .
Consultez la liste complète des caractères que vous pouvez utiliser pour formater la date ici .
Nous pouvons convertir n'importe quelle date en horodatage en utilisant strtotime() , qui
prend une chaîne avec une représentation textuelle d'une date et la convertit en nombre de
secondes depuis le 1er janvier 1970 :
echo strtotime('now');
echo strtotime('4 May 2020');
echo strtotime('+1 day');
echo strtotime('+1 month');
echo strtotime('last Sunday');
Pour les dates, il est courant d'utiliser des bibliothèques qui offrent beaucoup plus de
fonctionnalités que ce que le langage peut faire. Une bonne option est Carbon .
Et puis on peut utiliser TEST comme s'il s'agissait d'une variable, mais sans le $ signe :
echo TEST;
Nous utilisons des identificateurs en majuscules comme convention pour les constantes.
Fait intéressant, à l'intérieur des classes, nous pouvons définir des propriétés constantes à
l'aide du const mot-clé :
class Dog {
const BREED = 'Siberian Husky';
}
Par défaut, ils le sont public mais nous pouvons les marquer comme private ou protected :
class Dog {
private const BREED = 'Siberian Husky';
https://www.freecodecamp.org/news/the-php-handbook/ 46/71
18/04/2023 10:57 Le manuel PHP - Apprendre PHP pour les débutants
}
Faire un don
Les énumérations vous permettent de regrouper des constantes sous une « racine » commune.
Par exemple, vous voulez avoir une Status énumération qui a 3 états : EATING SLEEPING
RUNNING , les 3 états d'une journée canine.
Donc tu as :
enum Status {
case EATING;
case SLEEPING;
case RUNNING;
}
class Dog {
public Status $status;
}
$dog->status = Status::RUNNING;
if ($dog->status == Status::SLEEPING) {
//...
}
Les énumérations sont des objets, elles peuvent avoir des méthodes et bien plus de
fonctionnalités que ce que nous pouvons aborder ici dans cette courte introduction.
L'un se trouve dans une page HTML, donc PHP est utilisé pour "ajouter" des éléments au
HTML qui est défini manuellement dans le .php fichier. C'est une excellente façon d'utiliser
PHP.
Une autre façon considère PHP plus comme le moteur qui est chargé de générer une «
application ». Vous n'écrivez pas le HTML dans un .php fichier, mais à la place vous utilisez un
langage de template pour générer le HTML, et tout est géré par ce que nous appelons le
framework .
C'est ce qui se passe lorsque vous utilisez un framework moderne comme Laravel.
Je considérerais la première façon comme un peu « démodée » de nos jours, et si vous débutez,
vous devriez connaître ces deux styles différents d'utilisation de PHP.
https://www.freecodecamp.org/news/the-php-handbook/ 47/71
18/04/2023 10:57 Le manuel PHP - Apprendre PHP pour les débutants
Mais envisagez également d'utiliser un framework comme le "mode facile", car les frameworks
Faire un don
vous donnent des outils
Soutenez pour gérer
notre association le routage,
caritative des
et notre outils
mission. pour
Faites unaccéder aux données. d'une base
don à freeCodeCamp.org
de données, et ils facilitent la création d'une application plus sécurisée. Et ils accélèrent le
développement.
Cela dit, nous n'allons pas parler de l'utilisation des frameworks dans ce manuel. Mais je vais
parler des éléments de base fondamentaux de PHP. Ce sont des éléments essentiels que tout
développeur PHP doit connaître.
Sachez simplement que « dans le monde réel », vous pourriez utiliser la façon de faire de votre
framework préféré plutôt que les fonctionnalités de niveau inférieur offertes par PHP.
Cela ne s'applique pas seulement à PHP bien sûr - c'est un "problème" qui se produit avec
n'importe quel langage de programmation.
PHP propose un routage basé sur les fichiers par défaut. Vous créez un index.php fichier et
qui répond sur le / chemin.
Nous l'avons vu lorsque nous avons créé l'exemple Hello World au début.
Pour toute demande, vous pouvez accéder à toutes les données de la chaîne de requête à
l'aide de l' $_GET objet. Il s'appelle superglobal et est automatiquement disponible dans tous
nos fichiers PHP.
Ceci est bien sûr très utile dans les requêtes GET, mais d'autres requêtes peuvent également
envoyer des données sous forme de chaîne de requête.
Pour les requêtes POST, PUT et DELETE, vous aurez probablement besoin des données
publiées sous forme de données encodées en URL ou en utilisant l'objet FormData, que PHP
met à votre disposition en utilisant $_POST .
Il y a aussi $_REQUEST qui contient tous $_GET et $_POST combinés dans une seule variable.
Vous avez vu comment utiliser phpinfo() avant. Utilisons-le à nouveau pour voir ce que
$_SERVER nous offre.
https://www.freecodecamp.org/news/the-php-handbook/ 48/71
18/04/2023 10:57 Le manuel PHP - Apprendre PHP pour les débutants
<?php
phpinfo();
?>
Générez ensuite la page sur localhost:8888 et recherchez $_SERVER . Vous verrez toute la
configuration stockée et les valeurs attribuées :
$_SERVER['HTTP_HOST']
$_SERVER['HTTP_USER_AGENT']
$_SERVER['SERVER_NAME']
$_SERVER['SERVER_ADDR']
$_SERVER['SERVER_PORT']
$_SERVER['DOCUMENT_ROOT']
$_SERVER['REQUEST_URI']
$_SERVER['SCRIPT_NAME']
$_SERVER['REMOTE_ADDR']
https://www.freecodecamp.org/news/the-php-handbook/ 49/71
18/04/2023 10:57 Le manuel PHP - Apprendre PHP pour les débutants
Les formulaires sont la façon dont la plate-forme Web permet aux utilisateurs d'interagir avecun
Faire don
une page etSoutenez
d'envoyer des
notre données
association au serveur.
caritative et notre mission. Faites un don à freeCodeCamp.org .
<form>
<input type="text" name="name" />
<input type="submit" />
</form>
Vous pouvez le mettre dans votre index.php fichier comme s'il s'appelait index.html .
Un fichier PHP suppose que vous y écriviez du HTML avec quelques « saupoudrages PHP » <?
php ?> afin que le serveur Web puisse le publier sur le client. Parfois, la partie PHP prend
toute la page, et c'est là que vous générez tout le HTML via PHP - c'est un peu le contraire de
l'approche que nous adoptons ici maintenant.
Nous avons donc ce index.php fichier qui génère ce formulaire en HTML brut :
En appuyant sur le bouton Soumettre, une requête GET sera envoyée à la même URL en
envoyant les données via une chaîne de requête. Notez que l'URL est devenue
localhost:8888/?name=test .
https://www.freecodecamp.org/news/the-php-handbook/ 50/71
18/04/2023 10:57 Le manuel PHP - Apprendre PHP pour les débutants
Faire un don
Nous pouvons ajouter du code pour vérifier si ce paramètre est défini à l'aide de la
isset() fonction :
<form>
<input type="text" name="name" />
<input type="submit" />
</form>
<?php
if (isset($_GET['name'])) {
echo '<p>The name is ' . $_GET['name'];
}
?>
Voir? Nous pouvons obtenir les informations de la chaîne de requête de requête GET via
$_GET .
Ce que vous faites habituellement avec les formulaires, c'est que vous effectuez une requête
POST :
https://www.freecodecamp.org/news/the-php-handbook/ 51/71
18/04/2023 10:57 Le manuel PHP - Apprendre PHP pour les débutants
Faire un don
<form **method="POST"**>
Soutenez notre association caritative et notre mission. Faites un don à freeCodeCamp.org .
<input type="text" name="name" />
<input type="submit" />
</form>
<?php
if (isset($_POST['name'])) {
echo '<p>The name is ' . $_POST['name'];
}
?>
Vous voyez, nous avons maintenant les mêmes informations mais l'URL n'a pas changé. Les
informations du formulaire n'ont pas été ajoutées à l'URL.
En effet, nous utilisons une requête POST , qui envoie les données au serveur d'une manière
différente, via des données encodées en URL.
Comme mentionné ci-dessus, PHP servira toujours le index.php fichier car nous envoyons
toujours des données à la même URL que celle sur laquelle se trouve le formulaire.
<?php
if (isset($_POST['name'])) {
https://www.freecodecamp.org/news/the-php-handbook/ 52/71
18/04/2023 10:57 Le manuel PHP - Apprendre PHP pour les débutants
echo '<p>The name is ' . $_POST['name'];
}
Faire un don
?>
Soutenez notre association caritative et notre mission. Faites un don à freeCodeCamp.org .
PHP affichera ce contenu maintenant après avoir soumis le formulaire, car nous avons défini l'
action attribut HTML sur le formulaire.
Cet exemple est très simple, mais le post.php fichier est l'endroit où nous pourrions, par
exemple, enregistrer les données dans la base de données ou dans un fichier.
Nous pouvons dire que la page génère une erreur de serveur interne 500 :
<?php
header('HTTP/1.1 500 Internal Server Error');
?>
Vous devriez maintenant voir le statut si vous accédez à la page avec les outils de
développement du navigateur ouverts :
header('Content-Type: text/json');
https://www.freecodecamp.org/news/the-php-handbook/ 53/71
18/04/2023 10:57 Le manuel PHP - Apprendre PHP pour les débutants
Nous pouvons utiliser des en-têtes pour dire au navigateur « cache cette page », « ne cache pas
cette page », et bien plus encore.
Lorsque nous envoyons une réponse au navigateur, nous pouvons définir un cookie qui sera
stocké par le navigateur, côté client.
Ensuite, chaque demande faite par le navigateur inclura le cookie qui nous sera renvoyé.
Nous pouvons faire beaucoup de choses avec les cookies. Ils sont principalement utilisés pour
créer une expérience personnalisée sans que vous ayez à vous connecter à un service.
Il est important de noter que les cookies sont spécifiques à un domaine, nous ne pouvons donc
lire que les cookies que nous avons définis sur le domaine actuel de notre application, pas les
cookies d'autres applications.
Mais JavaScript peut lire les cookies (sauf s'il s'agit de cookies HttpOnly mais nous commençons
à entrer dans un terrier de lapin) donc les cookies ne doivent pas stocker d'informations
sensibles.
Nous pouvons utiliser PHP pour lire la valeur d'un cookie référençant le
$_COOKIE superglobal :
if (isset($_COOKIE['name'])) {
$name = $_COOKIE['name'];
}
setcookie('name', 'Flavio');
Nous pouvons ajouter un troisième paramètre pour dire quand le cookie expirera. S'il est omis,
le cookie expire à la fin de la session/lorsque le navigateur est fermé.
https://www.freecodecamp.org/news/the-php-handbook/ 54/71
18/04/2023 10:57 Le manuel PHP - Apprendre PHP pour les débutants
Nous ne pouvons stocker qu'une quantité limitée de données dans un cookie, et les Faire un don
utilisateursSoutenez
peuventnotre
effacer les cookies
association côté
caritative client
et notre lorsqu'ils
mission. effacent
Faites un les données du
don à freeCodeCamp.org .
navigateur.
De plus, ils sont spécifiques au navigateur / appareil, nous pouvons donc définir un cookie dans
le navigateur de l'utilisateur, mais s'il change de navigateur ou d'appareil, le cookie ne sera pas
disponible.
Faisons un exemple simple avec le formulaire que nous avons utilisé auparavant. Nous allons
stocker le nom saisi sous forme de cookie :
<?php
if (isset($_POST['name'])) {
setcookie('name', $_POST['name']);
}
if (isset($_POST['name'])) {
echo '<p>Hello ' . $_POST['name'];
} else {
if (isset($_COOKIE['name'])) {
echo '<p>Hello ' . $_COOKIE['name'];
}
}
?>
<form method="POST">
<input type="text" name="name" />
<input type="submit" />
</form>
J'ai ajouté quelques conditions pour gérer le cas où le cookie était déjà défini et pour afficher
le nom juste après la soumission du formulaire, lorsque le cookie n'est pas encore défini (il ne
sera défini que pour la prochaine requête HTTP).
Si vous ouvrez les outils de développement du navigateur, vous devriez voir le cookie dans
l'onglet Stockage.
https://www.freecodecamp.org/news/the-php-handbook/ 55/71
18/04/2023 10:57 Le manuel PHP - Apprendre PHP pour les débutants
Faire un don
PHP nous offre un moyen très simple de créer une session basée sur des cookies en utilisant
session_start() .
<?php
session_start();
?>
Vous verrez un nouveau cookie nommé par défaut PHPSESSID avec une valeur attribuée.
C'est l'identifiant de session. Celui-ci sera envoyé pour chaque nouvelle requête et PHP
l'utilisera pour identifier la session.
https://www.freecodecamp.org/news/the-php-handbook/ 56/71
18/04/2023 10:57 Le manuel PHP - Apprendre PHP pour les débutants
Faire un don
De la même manière que nous avons utilisé les cookies, nous pouvons désormais
utiliser $_SESSION pour stocker les informations envoyées par l'utilisateur - mais cette fois,
elles ne sont pas stockées côté client.
<?php
session_start();
if (isset($_POST['name'])) {
$_SESSION['name'] = $_POST['name'];
}
if (isset($_POST['name'])) {
echo '<p>Hello ' . $_POST['name'];
} else {
if (isset($_SESSION['name'])) {
echo '<p>Hello ' . $_SESSION['name'];
}
}
?>
<form method="POST">
<input type="text" name="name" />
<input type="submit" />
</form>
https://www.freecodecamp.org/news/the-php-handbook/ 57/71
18/04/2023 10:57 Le manuel PHP - Apprendre PHP pour les débutants
Faire un don
Cela fonctionne pour les cas d'utilisation simples, mais bien sûr pour les données intensives,
vous aurez besoin d'une base de données.
setcookie(session_name(), '');
file_exists('test.txt') //true
filesize('test.txt')
https://www.freecodecamp.org/news/the-php-handbook/ 58/71
18/04/2023 10:57 Le manuel PHP - Apprendre PHP pour les débutants
Vous pouvez ouvrir un fichier en utilisant fopen() . Ici, nous ouvrons le test.txt fichier en un
Faire don
mode lecture seulenotre
Soutenez et nous obtenons
association ce que
caritative nous
et notre appelons
mission. Faitesun descripteur
un don de fichier
à freeCodeCamp.org . dans
$file :
fread($file, filesize('test.txt'));
//or
while (!feof($file)) {
$data .= fgets($file, 5000);
}
feof() vérifie que nous n'avons pas atteint la fin du fichier car fgets lit 5000 octets à la fois.
Vous pouvez également lire un fichier ligne par ligne en utilisant fgets() :
while(!feof($file)) {
$line = fgets($file);
//do something
}
Pour écrire dans un fichier, vous devez d'abord l'ouvrir en mode écriture , puis utiliser
fwrite() :
$data = 'test';
$file = fopen('test.txt', 'w')
fwrite($file, $data);
fclose($file);
unlink('test.txt')
Ce sont les bases, mais bien sûr il y a plus de fonctions pour travailler avec les fichiers .
https://www.freecodecamp.org/news/the-php-handbook/ 59/71
18/04/2023 10:57 Le manuel PHP - Apprendre PHP pour les débutants
PHP propose diverses bibliothèques intégrées pour travailler avec des bases de données, par un
Faire don
exemple : Soutenez notre association caritative et notre mission. Faites un don à freeCodeCamp.org .
PostgreSQLName
MySQL /MariaDB
MongoDB
Je ne couvrirai pas cela dans le manuel car je pense que c'est un sujet important et qui
nécessiterait également que vous appreniez SQL.
Je suis également tenté de dire que si vous avez besoin d'une base de données, vous devez
utiliser un framework ou un ORM qui vous éviterait des problèmes de sécurité avec l'injection
SQL. Eloquent de Laravel en est un excellent exemple.
Voici un exemple de représentation JSON d'un objet contenant une chaîne et un nombre :
{
"name": "Flavio",
"age": 35
}
PHP nous propose deux fonctions utilitaires pour travailler avec JSON :
Exemple:
https://www.freecodecamp.org/news/the-php-handbook/ 60/71
18/04/2023 10:57 Le manuel PHP - Apprendre PHP pour les débutants
Pour envoyer des e-mails à grande échelle, nous ne pouvons pas compter sur cette solution,
car ces e-mails ont tendance à atteindre le dossier spam le plus souvent. Mais pour un test
rapide, c'est juste utile.
Installez-le sur votre machine ( Linux/Mac ou Windows ) et une fois que vous avez terminé,
vous devriez avoir une composer commande disponible sur votre terminal.
Maintenant, dans votre projet, vous pouvez exécuter composer require <lib> et il sera
installé localement. Par exemple, installons la bibliothèque Carbon qui nous aide à travailler
avec les dates en PHP
https://www.freecodecamp.org/news/the-php-handbook/ 61/71
18/04/2023 10:57 Le manuel PHP - Apprendre PHP pour les débutants
Faire un don
Une fois cela fait, vous trouverez quelques nouveautés dans le dossier composer.json qui
liste la nouvelle configuration des dépendances :
{
"require": {
"nesbot/carbon": "^2.58"
}
}
composer.lock est utilisé pour "verrouiller" les versions du package dans le temps, afin que la
même installation que vous ayez puisse être répliquée sur un autre serveur. Le vendor dossier
contient la bibliothèque qui vient d'être installée et ses dépendances.
<?php
require 'vendor/autoload.php';
use Carbon\Carbon;
echo Carbon::now();
https://www.freecodecamp.org/news/the-php-handbook/ 62/71
18/04/2023 10:57 Le manuel PHP - Apprendre PHP pour les débutants
Faire un don
Voir? Nous n'avons pas eu à télécharger manuellement un package sur Internet et à l'installer
quelque part... tout était rapide, rapide et bien organisé.
PHP est le langage de programmation avec la meilleure histoire de déploiement sur le Web.
Croyez-moi, tous les autres langages de programmation et écosystème souhaitent être aussi
simples que PHP.
La grande chose à propos de PHP, ce qu'il a réussi et lui a permis d'avoir l'incroyable succès
qu'il a eu, c'est le déploiement instantané.
Vous placez un fichier PHP dans un dossier servi par un serveur Web, et voilà , ça marche.
C'est encore quelque chose que beaucoup de gens font. Vous obtenez un hébergement
mutualisé pour 3 $/mois, téléchargez vos fichiers via FTP et le tour est joué.
Ces jours-ci, cependant, je pense que le déploiement de Git est quelque chose qui devrait être
intégré à chaque projet, et l'hébergement partagé devrait appartenir au passé.
Une solution consiste à toujours avoir votre propre VPS privé (Virtual Private Server), que
vous pouvez obtenir auprès de services comme DigitalOcean ou Linode.
Mais gérer votre propre VPS n'est pas une blague. Cela nécessite des connaissances sérieuses
et un investissement en temps, ainsi qu'un entretien constant.
https://www.freecodecamp.org/news/the-php-handbook/ 63/71
18/04/2023 10:57 Le manuel PHP - Apprendre PHP pour les débutants
Vous pouvez également utiliser le soi-disant PaaS (Platform as a Service), qui sont des plates-
Faire un don
formes qui se concentrent
Soutenez sur la prise
notre association en charge
caritative de tousFaites
et notre mission. les trucs
un donennuyeux (gestion. des
à freeCodeCamp.org
serveurs) et vous venez de télécharger votre application et elle fonctionne.
Des solutions comme DigitalOcean App Platform (qui est différente d'un VPS DigitalOcean),
Heroku et bien d'autres sont idéales pour vos premiers tests.
Ces services vous permettent de connecter votre compte GitHub et de le déployer chaque
fois que vous apportez une nouvelle modification à votre référentiel Git .
Il s'agit d'un flux de travail bien meilleur que les téléchargements FTP.
J'ai créé une application PHP simple avec juste un index.php fichier :
<?php
echo 'Hello!';
?>
J'ajoute le dossier parent à mon application GitHub Desktop, j'initialise un dépôt Git et je le
pousse vers GitHub :
https://www.freecodecamp.org/news/the-php-handbook/ 64/71
18/04/2023 10:57 Le manuel PHP - Apprendre PHP pour les débutants
https://www.freecodecamp.org/news/the-php-handbook/ 65/71
18/04/2023 10:57 Le manuel PHP - Apprendre PHP pour les débutants
Faire un don
Notez que vous payez 5 $ par mois, mais que la facturation est à l'heure. Vous pouvez donc
arrêter l'application à tout moment.
https://www.freecodecamp.org/news/the-php-handbook/ 66/71
18/04/2023 10:57 Le manuel PHP - Apprendre PHP pour les débutants
Faire un don
https://www.freecodecamp.org/news/the-php-handbook/ 67/71
18/04/2023 10:57 Le manuel PHP - Apprendre PHP pour les débutants
Ensuite, revenez en arrière et appuyez sur "Suivant" jusqu'à ce que le bouton "Créer des
Faire un don
ressources"Soutenez
apparaisse
notre pour créercaritative
association l'application.
et notre Vous n'avez
mission. Faites besoin d'aucune base de
un don à freeCodeCamp.org . données,
sinon cela coûterait 7 $ de plus par mois.
https://www.freecodecamp.org/news/the-php-handbook/ 68/71
18/04/2023 10:57 Le manuel PHP - Apprendre PHP pour les débutants
Faire un don
Conclusion
Vous avez atteint la fin du manuel PHP !
https://www.freecodecamp.org/news/the-php-handbook/ 69/71
18/04/2023 10:57 Le manuel PHP - Apprendre PHP pour les débutants
votre métier et à vous permettre de travailler sur votre prochaine grande idée. Faire un don
Flavio Copes
Lire plus de messages .
freeCodeCamp est une organisation caritative exonérée d'impôt 501(c)(3) soutenue par des
donateurs (numéro d'identification fiscale fédéral des États-Unis : 82-0779546)
Notre mission : aider les gens à apprendre à coder gratuitement. Nous y parvenons en créant des
milliers de vidéos, d'articles et de cours de codage interactifs, tous accessibles gratuitement au
public. Nous avons également des milliers de groupes d'étude freeCodeCamp à travers le monde.
Les dons à freeCodeCamp sont destinés à nos initiatives éducatives et aident à payer les serveurs,
les services et le personnel.
Méthodes du dictionnaire
Python
Notre charité
https://www.freecodecamp.org/news/the-php-handbook/ 70/71
18/04/2023 10:57 Le manuel PHP - Apprendre PHP pour les débutants
https://www.freecodecamp.org/news/the-php-handbook/ 71/71