Architecture d’un site web avec MySQL et PHP
Architecture d’un site web avec MySQL et PHP
-
Objectifs
- connaitre l’utilité et le fonctionnement des logiciels libres PHP et MySQL
-
Présentation
- Un site web est l’ensemble de pages et, le cas échéant, des logiciels qui les génèrent automatiquement, hébergés chez un même serveur et qui constituent un service aux utilisateurs.
- L’ensemble des pages d’un site se trouve généralement sous un même nom de domaine (apcpedagogie.com par exemple). De façon plus précise il s’agit d’un serveur d’informations inscrit sur le WEB (World Wide Web) ou la toile grâce à son identifiant (URL) sa présentation (page HTML) et ses procédures d’accès (HTTP pour Hypertext Transfer Protocol).
- MySQL est un système de base de données gratuit et rapide, fonctionnant sous Windows et Linux.
- Etant donné que la majorité des serveurs Web (dont le fameux serveur Apache) fonctionnent sous Windows et Linux, MySQL est de ce fait le système de base de données le plus utilisé avec PHP.
- PHP et MySQL sont disponibles gratuitement. Cela signifie une chose essentielle : vous n’aurez pas à débourser un millime pour construire votre site web !
- Lorsque le serveur web est couplé avec un interpréteur PHP, l’architecture sera :
- Il s’agit d’une architecture à trois composantes, chacune réalisant une des trois tâches fondamentales d’une application.
- Navigateur: Interface graphique sont rôle est de permettre à l’utilisateur de visualiser et d’interagir avec l’information ;
- MySQL : Serveur de données
- Fichiers PHP : Serveur d’application associé à Apache qui se charge de transférer les documents produits sur l’Internet.
- L’internaute saisit l’adresse internet d’une page PHP dans le navigateur, par exemple :cours_PHP.php
- Cette adresse est envoyée à un ordinateur appartenant de votre fournisseur d’accès à Internet (par la ligne téléphonique, ou fibre optique, ou cable réseau). Elle est analysée par les équipements d’entrée pour localiser le serveur sur lequel se trouve la page demandée
- Le serveur reçoit et analyse la page
- Les parties entre balises PHP (<?php ….. ?>) sont envoyées au module PHP pour y être exécutées
- Les instructions faisant référence aux bases de données sont transférées au module base de données
- Le module base de données renvoie les données
- Le module PHP intègre ces données, et renvoie au serveur HTTP le code HTML généré
- Les données sont renvoyées par le serveur
- Puis acheminées jusqu’au le poste client, la page est affichée
-
PHP et MySQL architecture typique
- Lors de la création d’un site web avec MySQL et PHP, voici une architecture typique :
- La base de données MySQL :
- La base de données stocke toutes les données nécessaires au fonctionnement du site. Elle peut être gérée via un système de gestion de base de données (SGBD) tel que MySQL, qui permet de créer des tables, des champs, des index, etc.
- Le serveur web :
- Le serveur web est responsable de l’exécution de PHP et de l’envoi de pages web aux clients. Il peut s’agir d’un serveur web open-source comme Apache ou Nginx.
- Les scripts PHP :
- Les scripts PHP sont des programmes qui s’exécutent sur le serveur web pour générer des pages web dynamiques en interagissant avec la base de données MySQL. Les scripts PHP peuvent être utilisés pour collecter des informations auprès des utilisateurs, stocker et récupérer des données à partir de la base de données, etc.
- La couche de présentation :
- La couche de présentation est responsable de la façon dont les informations sont présentées aux utilisateurs. Elle peut utiliser des technologies telles que HTML, CSS et JavaScript pour créer une interface utilisateur graphique et dynamique.
- En général, l’architecture d’un site web avec MySQL et PHP se compose donc de trois éléments principaux : une base de données MySQL, un serveur web et des scripts PHP. Ces éléments sont utilisés pour créer une application web qui peut stocker et récupérer des informations auprès des utilisateurs, offrant ainsi une expérience utilisateur dynamique et interactive.
-
MySQL, SQL et APIs
-
MySQL est un SGBD
- MySQL est ce qu’on appelle un SGBD (système de gestion de base de données ) open source, c’est-à-dire un logiciel qui permet de stocker et de gérer des données de manière efficace et sécurisée. Il est capable de gérer des bases de données de grande taille, avec des millions de lignes, et offre des fonctionnalités telles que la création de tables, la gestion des index, la gestion des transactions, la gestion des utilisateurs et des permissions, la sauvegarde et la restauration de données, etc.
- MySQL est l’un des SGBD les plus populaires au monde, et est utilisé par de nombreuses entreprises et organisations pour stocker et gérer leurs données. Il est compatible avec de nombreux langages de programmation, dont PHP, Python, Java, etc. et est disponible sur plusieurs systèmes d’exploitation, tels que Windows, Linux, macOS, etc.
-
Le SQL
- Le langage qui permet de communiquer avec la base de données s’appelle le SQL.
- Le SQL (Structured Query Language) est un langage informatique standard utilisé pour communiquer avec les bases de données relationnelles, y compris MySQL. Le SQL permet de créer, modifier, interroger et supprimer des données dans une base de données. Il est utilisé pour effectuer des opérations telles que la création de tables et de colonnes, l’insertion de données, la sélection de données, la mise à jour de données et la suppression de données.
- MySQL est un SGBD qui prend en charge le langage SQL, ce qui signifie que vous pouvez utiliser le SQL pour communiquer avec votre base de données MySQL. Il existe de nombreux outils et applications qui utilisent le SQL pour interagir avec MySQL, y compris les outils d’administration de base de données tels que phpMyAdmin, les frameworks PHP tels que Laravel et Symfony, les applications web, etc.
-
Notion des APIs en PHP
- Un des grands atouts de PHP est sa très riche collection d’interfaces (API) avec tout un ensemble de SGBD. En particulier il est possible à partir d’un script PHP de se connecter à un serveur pour récupérer des données que l’on va ensuite afficher dans des documents HTML.
- En PHP, une API (Application Programming Interface) est un ensemble de fonctions et de méthodes qui permettent à un développeur de créer des applications tierces qui peuvent communiquer avec une application ou un service existant.
- En général, une API expose des méthodes pour effectuer des opérations spécifiques, telles que la récupération de données, la création de nouvelles données, la mise à jour ou la suppression de données existantes, etc. Les développeurs peuvent alors utiliser ces méthodes pour interagir avec l’application ou le service via des requêtes HTTP.
- Il existe de nombreuses API en PHP pour différentes applications et services, tels que les API de réseaux sociaux (Facebook, Twitter, etc.), les API de services de stockage en nuage (Dropbox, Google Drive, etc.), les API de services de messagerie (SendGrid, MailChimp, etc.), les API de services SGBD (Système de Gestion de Base de Données) permettent aux développeurs d’interagir avec des bases de données via des méthodes d’API, plutôt que d’utiliser directement le langage SQL.et bien plus encore.
- L’utilisation d’une API en PHP peut offrir de nombreux avantages, tels que la réduction du temps de développement, l’amélioration de la sécurité, la simplification de la gestion des données et l’augmentation de l’interopérabilité.
- Pour utiliser une API en PHP, vous devez généralement vous inscrire et obtenir des clés d’API ou des jetons d’accès, qui vous permettent d’authentifier votre application ou service auprès de l’API. Vous pouvez ensuite utiliser les méthodes exposées par l’API pour interagir avec les données de l’application ou du service.
-
Les API de services SGBD
- Les API de services SGBD (Système de Gestion de Base de Données) permettent aux développeurs d’interagir avec des bases de données via des méthodes d’API, plutôt que d’utiliser directement le langage SQL.
- Voici quelques exemples d’API de services SGBD en PHP :
- API MySQLi :
- L’API MySQLi fournit une interface améliorée pour communiquer avec les bases de données MySQL. Elle prend en charge les fonctionnalités les plus récentes de MySQL et fournit des fonctionnalités telles que la gestion des transactions, la préparation des requêtes et la liaison des variables.
- API PDO (PHP Data Objects) :
- L’API PDO est une abstraction de base de données générique qui peut être utilisée pour accéder à plusieurs types de bases de données, y compris MySQL, PostgreSQL, SQLite, etc. Elle fournit une interface cohérente pour communiquer avec les bases de données et facilite la migration vers une autre base de données.
- API PostgreSQL :
- L’API PostgreSQL est spécifique à PostgreSQL et fournit des méthodes pour se connecter à une base de données PostgreSQL, exécuter des requêtes SQL, gérer les transactions, etc.
- API SQLite :
- L’API SQLite est spécifique à SQLite et fournit des méthodes pour se connecter à une base de données SQLite, exécuter des requêtes SQL, gérer les transactions, etc.
- En utilisant ces API, les développeurs peuvent interagir avec des bases de données de manière plus pratique et plus sûre, en évitant les vulnérabilités de sécurité liées à l’utilisation directe de SQL non sécurisé. Ces API sont souvent incluses dans les frameworks de développement web tels que Laravel, Symfony, CodeIgniter, etc.
-
Utiliser MySQL et PHP en local
- Dans l’apprentissage du langage PHP le serveur et le client seront sur un seul et même ordinateur sans passer par Internet. On peut dire dans ce cas là que l’on travaille "en local".
- Dans notre cas on vous propose de travailler "en local", l’installation vous permettra d’avoir votre propre serveur. Pourquoi ? Parce que c’est le plus simple pour apprendre et visualiser son travail. Vous devez savoir que le serveur local s’appellera "localhost" par défaut ou "127.0.0.1".
- La solution que nous vous conseillons fortement est l’installation d’Apache/PHP/MySQL à l’aide du « package » WampServer, en effet cette solution installera tout ce dont vous avez besoin pour commencer sans vous soucier trop des différents paramétrages.
- Ce "package" comprend : Apache + PHP + MySQL + PHPMyAdmin + SQLiteManager