Intro Php

Vous êtes ici : >> PHP / Intro Php
Temps d'étude : 45 min. Niveau : Moyen.
Tags : Intro Php
Fichier(s) utile(s) pour ce cours : /
Pré-Requis
fléche Maîtrise des langages HTML et CSS (recommandé).
Objectifs
fléche Maîtriser la syntaxe et les instructions de base en PHP.

A quoi sert le Php ? Qu'est-ce que c'est ?

éléPHPant, logo de PHP, dessiné en 1998 par El Roubio Le PHP (Hypertext Preprocessor) est un langage de programmation (fonctionnel) à l'inverse des langages Html et Css qui sont des langages de conception (structure et mise en forme de page web).
Avec PHP, nous pouvons faire tous types de site et il n'y a plus de limite : moteur de recherche (type google), réseaux sociaux (type facebook), plateforme multimédia (type YouTube), site d'informations (type Wikipédia), boutique ecommerce (type amazon), petites annonces (type leboncoin), forum, blog, espace membre, etc.

Pour mieux comprendre, prenons le cas d'un formulaire :
1 formulaire est déclaré en html,
il est mis en forme en css (html + css = conception),
mais si nous voulons récupérer et exploiter les saisies postées par l'internaute nous aurons besoin du PHP qui est un langage permettant d'effectuer des traitements (et c'est bien là le principe, si nous faisons un formulaire c'est pour récupérer des données !).
Autrement dit, sans PHP nous ne pourrons pas faire fonctionner un formulaire.

Ensuite, si nous voulions sauvegardées ces données dans une base, nous aurons besoin du langage SQL.

D'autre part, le PHP permet de créer des sites web dynamiques ! Et c'est très utile !

Histoire de Php

La première version du langage PHP fut créée en 1994 par Rasmus Lerdorf et repris en 1997 par deux étudiants : Andi Gutmans et Zeev Suraski.
Dans le monde, plus de 300 millions de sites reposent sur la technologie Php. Ce chiffre ne cesse d'augmenter.

Je ne m'étale pas trop sur l'historique de PHP, pour ça il y a Wikipédia : Plus d'informations sur le langage PHP avec Wikipédia

Qu'est-ce qu'un site web statique ?

1 site statique est généralement réalisé avec les langages Html et Css.
La problématique c'est que ces sites ne sont pas pratiques à mettre à jour (exemple de mise à jour : ajouter une image, modifier du texte, ajouter un nouveau lien comme rubrique de menu, créer une nouvelle page).

explication PHP Vous me direz peut-être que c'est simple et rapide pour vous d'adapter votre code-source puisque vous êtes à l'aise en Html et Css mais ce n'est pas le cas de tous et encore moins des clients qui achèterons les sites web (ils sont généralement peu techniques et veulent pouvoir effectuer des réglages rapidement et efficacement).

Le principal inconvénient d'un site statique c'est qu'il faut quelques connaissances techniques car nous sommes obligés de repasser par le code-source de chaque fichier pour effectuer des modifications.

Gardez bien à l'esprit qu'un site est modifié en permanence ! Même quand vous pensez qu'il est "terminé" il ne l'est pas vraiment. Il faut donc trouver des solutions pour faciliter les modifications et les mises à jour : c'est là que le site dynamique (propulsé par PHP) rentre en jeu!

Qu'est-ce qu'un site web dynamique ?

1 site dynamique est 1 site dont les informations proviennent d'une base de données (pour cela il faudra mélanger le langage php et le langage sql ensemble).

fléche Attention
il ne faut pas confondre 1 site dynamique avec 1 site de mouvements ou d'animations et couleurs clinquantes dans la page web.


Pour obtenir un site dynamique, nous utiliserons le langage PHP, qui lui même accueillera le langage SQL afin d'obtenir des informations contenues dans la base de données.

Si nous arrivons a récupérer des données (provenant d'une base de données) sur notre site, nous pourrions aussi récupérer ces mêmes données pour un 2e site.

fléche Pourquoi 2 sites ? quel en serait l'intérêt ?
  • Le premier site sera destiné au grand public pour la consultation des informations par les internautes.
    un Front (aussi appelé, front-office ou front-end)


  • Le deuxième site sera protégé par authentification et destiné à la mise à jour et modification de contenu par l'administrateur (propriétaire du site).
    un Back (aussi appelé, back-office, back-end ou interface de gestion).


Nous appelons donc « un site dynamique » un site dont les informations sont contenues dans une base de données et qui possède 2 interfaces :
fléche un premier site FRONT (pour l'affichage du site normal),
fléche un deuxième site BACK (pour la gestion et assurer les réglages du premier site).


L'avantage d'un site dynamique c'est que les modifications seront beaucoup plus faciles et ne devrons pas obligatoirement être réalisées dans le code-source d'un fichier par une personne connaissant le code et ayant des compétences techniques.

Les modifications pourront être effectuées dans une interface de gestion backOffice simple et intuitive, et par tous !

Voici un schéma illustrant cette situation :

explication PHP

Dans une interface de gestion (BackOffice), nous retrouvons la plupart du temps un éditeur avec des icônes permettant de gérer les contenus :

explication PHP

Par exemple l'icone permettant de créer un lien ajoutera automatiquement les balises <a> </a> dans le code. Sans que le développeur n'ait besoin de l'écrire.

Dans la plupart des cas, il n'y a pas qu'1 seul sites web mais 2 site web (1 front et 1 back). C'est ce qu'on appelle un site web dynamique.

fléche Qu'est-ce qu'un site dynamique
Un site dynamique est un site modifiable sans avoir besoin de retourner dans le code-source obligatoirement.
Les sites web dynamiques sont majoritairement élaborés avec l'aide de php (d'autres langages de programmation peuvent être utilisés)


Le FRONT représente la partie que nous consultons en tant qu'internaute (pour l'affichage et la consultations des informations).

Le BACK reservé aux administateurs du site (gérants) permettant les mises à jour des informations.

Si nous voulions faire la liste des sites dynamiques incluant du php et du sql, la liste serait longue voire interminable, puisque tous les sites (ou presque) sont concernés.

Prenons la chose à l'envers, quels sont les sites statiques (et donc non dynamiques ) et n'incluant ni de Php ni de Sql ?
Des sites n'étant jamais mis à jour (assez rare), certains sites développés par les développeurs eux même pour se présenter (et encore ce n'est pas une majorité).

Contrairement aux idées reçues, la plupart du temps même un site vitrine est un site dynamique !
Les clients demandent un site vitrine car ils veulent se présenter mais aussi pouvoir effectuer des modifications via une interface de gestion BackOffice !
Sinon, sans connaissance technique, comment feraient-ils pour modifier les textes, les images et créer de nouvelles pages ?
Retenez le bien : La plupart du temps un site vitrine est un site dynamique !

Maintenant vous le savez, PHP est incontournable !

PHP est actuellement utilisé en version 7 sous forme de code procédural ou orienté objet.

fléche En résumé
Pour construire votre page web vous aurez besoin de Html et Css (partie structure et mise en forme).
Pour la rendre fonctionnelle et dynamique vous aurez besoin de Php et Sql (pour effectuer des sauvegardes et mener des opérations sur la base de données).
JavaScript permettra d'assurer la programmation côté client et viendra compléter les autres langages.


Architecture Client / Serveur avec un site statique

explication PHP

  1. - L’internaute effectue une demande (via une adresse URL).

  2. - Le serveur reçoit la demande et trouve le fichier (page web) intégrant uniquement du code Html et Css, il renvoie le contenu demandé à l'internaute.
C'est aussi simple que ça. Les sites statiques n'utilisent que du code html et css.

Architecture Client / Serveur avec un site dynamique

Comment fonctionne le Php ?

Lorsqu'une page web s'affiche sur votre écran, elle respecte un processus particulier décrit ci-dessous :

1- Un internaute souhaite accèder à une page web, il utilise un navigateur par lequel il sollicite une adresse url.

2- Cette adresse url pointe vers une ressource (fichiers contenant texte, image, code-source, etc.) hebergée par un serveur (emplacement de stockage applicatif).

3- Il arrive parfois que le serveur ait besoin de consulter une base de données pour intégrer des informations dans le contenu de la page web (requête SQL).

1 - navigateur de l'internaute :
explication PHP

2 - serveur stockant la ressource :
explication PHP

3 - données de la base :
explication PHP

Si l'on résume, et pour faire un schéma, techniquement voici comment se déroule la consultation de page web :

explication PHP

  1. - L’internaute effectue une demande (via une adresse URL).

  2. - Le serveur reçoit la demande et trouve le fichier (page web) intégrant code Html + Php, du coup il passe par l'interpréteur pour décoder les lignes de PHP.

  3. - L’interpréteur commence à décoder les instructions php et voit des requêtes SQL, il communique donc avec la base de données.

  4. - La base de données (SGBD) retourne les informations demandées.

  5. - L’interpréteur intégre les données envoyées par la base et termine de décoder les instructions php et le fichier (page web) est renvoyé au serveur au format 100% html (puisque l'interpréteur à transformé toutes les instructions Php en résultat Html).

  6. - Le serveur renvoie la page Html au navigateur, sur l'ordinateur de l'internaute.

Comprenez-vous pourquoi vous ne verrez jamais 1 ligne de code Php dans le code-source d'une page web ?
En effet, même si la page web contient du code php, ce code est décoder par l'intérpréteur de manière à ne renvoyer que du html au navigateur de l'internaute.

De toute façon, le navigateur ne pourrait pas comprendre des lignes PHP, ce n'est pas son rôle, il doit simplement afficher la page web et pour ça il a uniquement besoin de garder le code Html et Css.

Si du code Php est tout de même passé au navigateur, il le considérera comme du texte et ne l'exécutera pas, du coup votre programmation ne fonctionnera pas.

C'est aussi la raison pour laquelle vous ne pourrez jamais créer un fichier php sur votre bureau, ou le lancer directement et manuellement dans le navigateur, sans aucun serveur web ou interpréteur.

En effet, il est impératif que votre fichier contenant le code php respecte tout ce cycle (schéma au dessus : interprétation et exécution, échange avec la base de données éventuellement, etc.).

Afin de faire fonctionner notre code Php nous utilisons le serveur web WAMP (qui inclut tout ce dont nous avons besoin) :

Windows - système d'exploitation.
Apache - serveur web (HTTP).
Mysql - SGBD (Système de Gestion de Base de Données).
Php - Interpréteur Php.

fléche Bon à savoir
  • PHP est un langage exécuté côté serveur, ce ne sera donc pas une exécution par l'ordinateur ou le navigateur de l'internaute.

  • PHP est un langage interprété, ses instructions sont traitées séquentiellement par le serveur (pas de compilation)

  • PHP est open source, tout le monde peut l'utiliser et même vendre une de ces créations à l'aide du langage PHP.


Les sites dynamiques utilisent plusieurs langages : html, css, php, sql, javascript.

Les langages de programmation

Y'a t'il d'autres langages de programmation différents de Php pour construire un site web dynamique ?

Oui, d'autres langages exécutés côté serveur existent pour créer un site web dynamique : ASP (Active Server Page, développé par Microsoft), JSP (Java Server Pages, développé par Oracle), CGI (Common Gateway Interface) , etc.

Nous nous concentrerons d'abord sur Php dans le cadre de ce cours.

Qu'est-ce qu'un serveur ?

1 serveur est généralement un ordinateur qui héberge un site web, mis à disposition par un hébergeur (hébergeur = une société de service informatique).
Cet ordinateur reste toujours allumé, c'est ce qui permet une consultation 24h/24 et 7j/7.

Php procédural ou Php Orienté Objet ?

Deux techniques de programmation sont souvent utilisées :

  • L'Approche Procédurale (le code est écrit séquentiellement).

  • L'Approche Orientée Objet (le code est encapsulé dans des méthodes de classes et fonctionne via l'interaction d'objets).
Avant de s'intéresser aux avantages et inconvénients de ces deux techniques, sachez que certaines notions de bases sont forcément apprises en approche procédurale.

L'approche orientée objet est souvent priviligiée par les entreprises car cela permet d'encourager le travail collaboratif et simplifie grandement les mises à jour. (surtout pour les projets de grande envergure, développés sur plusieurs mois et par plusieurs personnes).

Techniquement, nous ne pouvons pas aller plus loin en terme de finalité et de rendu fonctionnel avec l'orienté objet par rapport au procédural. C'est avant tout une méthodologie de travail (et non pas une évolution pour créer davantage).

Développement : from scratch ? cms ? framework ?

A ce jour, il y a 3 grands moyens de créer un site web :

  • À la main (from scratch, en partant de 0),
  • avec l'appui d'un CMS,
  • avec l'aide d'un FRAMEWORK,
Lorsqu'on utilise un CMS ou un FRAMEWORK, le code peut être procédural ou orienté objet (et parfois le code reprend un peu des deux techniques).

Avant de s'intéresser à chacun de ces moyens, il est indispensable de bien connaitre et maitriser le PHP (dans sa forme basique).

Plan de cours

Notre plan de cours reprend les chapitres indispensables de la programmation et du PHP.

Toutefois, si vous êtes attirés par des boutiques ecommerce, des lightbox qui pop, des diaporamas qui slides, des sites dynamiques avec backOffice, des reseaux sociaux avec connexions membres et espace de profil accompagné d'avatar, etc. et le tout en responsive web design... ce ne sera pas pour tout de suite ! il y a quelques étapes à respecter et pour cela il va falloir s'armer de patience.

explication PHP

L'aprentissage prend du temps mais ce n'est pas une mauvaise chose car si tous ces sujets s'apprenaient en 10 minutes, ce serait payé au SMIC et ce ne serait pas un métier mais plutôt "un boulot". A l'issue de votre apprentissage vous aurez un vrai savoir-faire que vous pourrez valoriser financièrement sur le marché de l'emploi.

Avant de créer un site web, quel qu'il soit (du plus grand portail au plus simple site du type blog), vous devrez impérativement connaitre les sujets suivants :
  1. Intro : découverte et explications autour de PHP
  2. Instructions d'affichage
  3. Variable (et Constante) : Type / Déclaration / Affectation
  4. Syntaxe et concaténation
  5. Condition et Opérateurs
  6. Fonction prédéfinie
  7. Fonction utilisateur
  8. Boucle
  9. Inclusions de fichiers
  10. Array
  11. Classes et objets
  12. Les Superglobale
  13. Lien GET et Formulaire POST
  14. Cookie
  15. Session
  16. Requête SQL (Mysqli, Pdo)
  17. Réalisation d'un espace de dialogue (Cas Concret)
  18. Approche Sécurité : Espace membre
  19. Réalisation d'un site web (Cas concret : CRUD - tendance ecommerce)
  20. Evaluation
Ce sera notre plan de cours et notre défi : apprendre le php en 20 chapitres !

Avant de démarrer, je préfère prévenir surtout tout ceux qui ont un fort besoin de visibilité et de compréhension immédiate du contexte.
La question « A quoi ça sert ? » est à bannir. Il faut d'abord comprendre « Comment ça fonctionne ? ». le contexte viendra plus tard.

Partez du principe que tout sert à quelque chose, sinon cela n'existerait pas et nous n'en parlerions pas !

Nous pouvons expliquer à quoi sert ces différents chapitres les uns après les autres mais cela ne sera pas représentatif car cela dépend du contexte dans lequel ils sont utilisés.

C'est comme si je vous demandais : à quoi sert une brique ?

explication PHP

A première vue, comme ça... pas à grand chose !

Maintenant ça sert à quoi plusieurs briques ?

explication PHP

Plusieurs briques permettent de construire un mur. C'est concret !

Pour Php, c'est pareil, un sujet peut paraitre abstrait mais l'ensemble des sujets que nous allons aborder vous permettront de construire des sites web dynamiques.
Pour cela ne soyez pas trop impatient (et surtout n'essayez pas d'aller plus vite que votre compréhension, au risque de voir l'effet inverse se produire : retourner en arrière et être ralenti).

Etudions maintenant les mécanismes de PHP !

Environnement pour développer du code en PHP

Avant de construire un site web et écrire nos premières lignes en PHP, vous allez devoir préparer le terrain avec au minimum :

  • Un serveur web : WAMP (d'autres serveurs web existent : easyPhp, xampp, wamp est aussi décliné sous mac avec mamp et sous linux avec lamp)

  • Un éditeur de code : NOTEPAD (d'autres éditeurs type SublimeText existent, ou éventuellement un IDE (plus puissant mais pas nécessaire pour débuter) : Eclipse, Phpstorm, Zend, etc.)

  • Un navigateur (type Firefox ou Google Chrome) permettant la consultation de page web.

Créons notre premier fichier PHP

Avant de créer votre premier fichier, vous devez impérativement avoir installer WAMP et pouvoir accèder à http://localhost/.

Pour créer notre premier fichier PHP, nous allons nous rejoindre dans le dossier nommé /www/

Créons un premier dossier nommé /php/ :

explication PHP

Une fois à l'intérieur de votre dossier /www/php/, créons un nouveau fichier nommé entrainement.php.

explication PHP

Le dossier /www/ se nomme htdocs sous MAMP (pour mac).

Pour inscrire et introduire du code dans votre fichier entrainement.php, vous pouvez effectuer un clic droit sur le fichier avec votre souris et éditer le code avec l'aide de notepad :

explication PHP

Il est important que ce fichier possède l’extension « .php ».