Pour cet article spécifique, je vais vous épargner les arrière-plans et les inspirations du framework. Vous pouvez toujours les trouver dans la documentation officielle du framework ici.
Cependant, mettons-nous au travail et rédigeons une API simple en moins de 20 minutes.
Les sections suivantes supposent que vous utilisez PHP 8.1+, que le composeur est déjà configuré et que vous disposez d'une base de données SGBDR, de préférence MySQL et Postgres.
Nous allons créer une API qui : -
Crée une tâche
Supprime une tâche
Marque une tâche comme terminée
Requêtes terminées
Interroge une ou plusieurs tâches incomplètes aléatoires
Renvoie une liste de toutes les tâches
Renvoie une liste de tâches paginées
Met à jour une tâche
Renvoie un seul élément de tâche
Renvoie les tâches en retard
Cela semble simple, mais à la fin de la journée, vous serez en mesure d'effectuer toutes les opérations CRUD dans Pionia, de filtrer les données et d'interagir avec les API Pionia.
Notre projet s'appellera todoApp.
Pour commencer, nous devrons amorcer un projet Pionia à l'aide de la commande suivante.
compositeur créer-projet pionia/pionia-app todoAppEn cas d'installation réussie, vous devriez avoir un répertoire similaire à celui-ci, mais il manque quelques dossiers. Notre dossier principal est app/services. D'autres dossiers peuvent être ajoutés si nécessaire, notamment en utilisant notrepioniacommande.
Pionia n'utilise pas de modèles et peut donc fonctionner uniquement avec des bases de données existantes. Pour commencer, vous devez créer votre base de données, que ce soit dans Postgres, SQLite, MySQL ou toute autre base de données prise en charge par PHP PDO.
Pour ce guide, nous utiliserons MySQL et créerons une base de données appeléetodo_app_db. Dans tonmysqlla console exécute ce qui suit.
CRÉER UNE BASE DE DONNÉES todo_app_db ; utilisez todo_app_db ;Ensuite, ajoutons le tableau avec lequel nous allons travailler.
créer une table à faire (identifiant bigint auto_increment, titre varchar (225) nul, texte de description nul, horodatage créé_at par défaut CURRENT_TIMESTAMP nul, date de début non nulle, date de fin_date non nulle, booléen terminé par défaut faux nul, contrainte table_name_pk clé primaire (id));Tout cela sort du cadre de Pionia. Revenons maintenant à Pionia.
Nous avons déjà notre ciblage de commutateur par défaut/api/v1/déjà inscrit. Ceci peut être consulté dans leroutes.phpdéposer.
utilisez Pionia\Core\Routing\PioniaRouter ; $router = nouveau PioniaRouter(); $router->addSwitchFor("application\switches\MainApiSwitch"); return $router->getRoutes();Et si nous regardonsapplication\switches\MainApiSwitch, nous constatons qu'il enregistre leService utilisateur. Laissons tomber cela et créons notre service. N'oubliez pas de supprimer également l'importation -utilisez application\services\UserService ;
public function registerServices() : array { return [ 'user' => new UserService(), // supprime ceci ]; }...
[Courte citation de 8% de l'article original]