Comment créer une API avec PHP Puro ?

DEV - 02/11
Ce projet va créer une API simple en utilisant seulement PHP dans un framework simple. Tout ce que nous allons...

Ce projet va créer une API simple en utilisant seulement PHP dans un framework simple. Tout ce que nous allons préciser sera :

  • PHP – Essentiel
  • Compositeur - Essentiel
  • Éditeur/IDE comme VScode ou PHPStorm
  • Docker - De préférence, mais pas essentiel
  • Facteur - De préférence, mais pas essentiel

Vamos começar definindo nosso archquivodocker-compose.ymlpour la configuration de notre banc de données. Si vous n'utilisez pas de docker pour créer un compte bancaire dans des conteneurs, une solution est d'installer un compte bancaire dans votre machine. Pour ce tutoriel, nous allons utiliserMySQL.

Configuration

Après la création de pâtes sur notre application, nous allons configurer ledocker-compose.yaml:

services : mysql : image : mysql : 9.1.0 ports : - '3306:3306' environnement : MYSQL_ROOT_PASSWORD : userroot MYSQL_USER : api_user MYSQL_PASSWORD : api_password MYSQL_DATABASE : api_example
Entrer en mode plein écran Quitter le mode plein écran

Nous allons vous demander d'archiver ces pièces pour expliquer :

services : mysql :
Entrer en mode plein écran Quitter le mode plein écran

Cet archivage est nous définissant les services qui seront utilisés. Vous avez besoin du nom de mysql pour ce service. Attention, le nom de ce service sera utilisé pour la connexion avec le banc dédié passé comme hôte

image : mysql:9.1.0
Entrer en mode plein écran Quitter le mode plein écran

Ensuite, vous avez défini quelle image sera utilisée pour la création de notre banque de données, pour ce projet vous utilisez la version 9.1.0 de MySQL. Vous pouvez découvrir cette et d’autres versions de Docker Hub.

port : - '3306:3306'
Entrer en mode plein écran Quitter le mode plein écran

Le port est envoyé comme 3306. Il s'agit du port configuré pour MySQL !

Vous pouvez noter que le port est comme le 3306 : 3306, ceci : cela signifie que nous devons fermer ce port sur notre machine locale et ne pas avoir de conteneur Docker, car nous pouvons y accéder directement sur notre machine.

environnement : MYSQL_ROOT_PASSWORD : userroot MYSQL_USER : api_user MYSQL_PASSWORD : api_password MYSQL_DATABASE : api_example
Entrer en mode plein écran Quitter le mode plein écran

Nous devons définir notre environnement comme informations d'identification pour notre service MySQL. Nous définissons ainsi l'utilisateur, le nom et le nom du banc de données utilisé comme variables d'ambiance :

MYSQL_USER : api_user // <--- Cet utilisateur est notre utilisateur
Entrer en mode plein écran Quitter le mode plein écran
MYSQL_PASSWORD: api_password // <--- Ce mot de passe est notre mot de passe
Entrer en mode plein écran Quitter le mode plein écran
MYSQL_DATABASE : api_example // <--- Este notre banco de dados
Entrer en mode plein écran Quitter le mode plein écran
MYSQL_ROOT_PASSWORD : userroot // <--- Está éto a Senha para o usuário root
Entrer en mode plein écran Quitter le mode plein écran

Pour démarrer notre conteneur, basta estar dentro da pasta onde se trouve o arquivodocker-compose.yamlTapez sur notre terminal ou sur la commande suivante :

docker compose -d
Entrer en mode plein écran Quitter le mode plein écran

Vous devez initialiser le service mysql dans notre conteneur. Si vous souhaitez accéder à MySQL dans le terminal, vous pouvez utiliser cette commande :

docker exécutable -itfrapper
Entrer en mode plein écran Quitter le mode plein écran

Après avoir choisi cette commande et ouvert l'entrée, vous entrez dans le conteneur où se trouve l'image mysql utilisée.

Le nom du conteneur est formé par le numéro nomedapasta-nomedohost. Dans ce cas, le nom de notre conteneur est fictif : create-api-php-mysql-1 est notre application créée dans le répertoire "create-api-php".

Nous crions également à un archivagecomposer.json, cet archive servira de base pour l'installation de bibliothèques externes qui seront utilisées dans le cadre du projet. Ce projet utilise-nous simplementDotenv.

{ "require": { "vlucas/phpdotenv": "^2.4" }, "autoload": { "psr-4": { "Src\\": "src/" } } }
Entrer en mode plein écran Quitter le mode plein écran

Cette ligne est nous ajoutée à la bibliothèque mais utilisée pour dotenv pas de php. Vous pouvez trouver le dépôt pour cette bibliothèque : Github Repositório Vlucas

"require": { "vlucas/phpdotenv": "^2.4" },
Entrer en mode plein écran Quitter le mode plein écran

Nous avons simplement décidé d'utiliser le chargement automatique avec la configuration du PSR-4. Comme les PSR les plus utilisés actuellement sont le PSR-12 et le PSR-4, ils envoient les 12 plus utilisés à ce moment-là. Plus tard, nous allons utiliser un PSR-4.

"autoload": { "psr-4": { "Src\\": "src/" } }
Entrer en mode plein écran Quitter le mode plein écran

Comment estes deux archives créées peuvent être envoyées au commandant

installation du compositeur
Entrer en mode plein écran Quitter le mode plein écran

Il installera la bibliothèque Dotenv et définira les configurations pour le PSR souhaité. Après que cette commande sera créée dans notre environnement ou dans nos archivescomposer.lock.

Pour que nous puissions faire du monde JavaScript, ces archives peuvent être comparées à package.json et package-lock.json.

Vous verrez aussi que vous avez ajouté des pâtes dans votre répertoire avec votre nomfournisseurCeci est localisé dans notre lib Dotenv et également un fichier très important :chargement automatique.php. Si l'archive ne nous précise pas exactement ou modifie n'importe quelle chose, elle sera responsable de la transaction en tant qu'informations du dossier entre nos archives actuelles.

Nous crions également à un archivage chamadobootstrap.phpCet archive est responsable de la initialisation de notre application et de la connexion de certains paramètres importants pour toute fonction de forme attendue :

?php require 'vendor/autoload.php'; use Dotenv\Dotenv; $dotenv = new DotEnv(__DIR__); $dotenv-charger();
Entrer en mode plein écran Quitter le mode plein écran

Nous pouvons crier ...
[Courte citation de 8% de l'article original]

Loading...