PHPEASY est un cadre PHP centré sur l'API. Code aussi proche du langage PHP lui-même plutôt qu'un cadre.
I. Intro
Ii Pré-requis
Iii. Installation
C'est pour quelqu'un qui aime la vanille PHP et sa simplicité. De nos jours, vous devez suivre les normes de codage (POO, solide, sèche, etc.) et les cadres MVC pour effectuer le développement Web à l'aide de PHP. Les frameworks PHP sont livrés avec trop de fichiers, de configurations, de classes et de dépendances. J'ai fait ce mini-framework afin que les développeurs PHP puissent faire du développement Web plus rapidement tout en maîtrisant et en profitant du langage PHP lui-même (oui! Pas besoin d'apprendre autant de bibliothèques).
Composer - Ouvrez un terminal à l'intérieur de votre dossier racine ou HTDOCS et exécutez la commande ci-dessous.
composer create-project vgalvoso/phpeasy my_phpeasy
Vous pouvez changer [my_phpeasy] en n'importe quel nom de projet que vous souhaitez.
Ouvrez maintenant votre navigateur et allez sur http: // localhost / my_phpeasy
Créer des vues dans le dossier de vue.
Les routes de vue seront automatiquement créées en fonction de la structure du dossier de vue.
Regardez les exemples ci-dessous.
Vous pouvez OMMIT le nom de fichier si le fichier de vue est nommé [index.php]:
(SPA) Les applications à page unique sont composées de composants de vue.
Les composants de la vue sont accessibles uniquement via les demandes AJAX.
Appelez simplement Core / Helper / Component (); en haut du fichier de vue pour le spécifier comme un composant Afficher.
Exemple: afficher / admin / users_table.php
< ?= Core/Helper/component(); ? >
< table >
< thead >
< tr >
< th > Username </ th >
< th > First Name </ th >
< th > Last Name </ th >
</ tr >
</ thead >
< tbody id =" users_tbl " >
< tr > < td > No Contents </ td > </ tr >
</ tbody >
</ table > PHPEASY prend en charge l'API REST.
Toutes les API sont placées à l'intérieur du dossier de l'API.
Les routes de l'API seront automatiquement créées via la structure du fichier de dossier API et les fonctions implémentées dans le fichier PHP nommé avec Http Verbes EG (get (), post (), patch ()).
Ainsi, par exemple, vous avez omis la fonction delete (), vous ne pouvez pas appeler Delete API / Users / {id}.
Voici un exemple d'API REST USERS.
Chemin de fichier API: [api / users.php]
Routes:
<?php
use Core DAL ;
use function Core Helper error ;
use function Core Helper getRequestBody ;
use function Core Helper response ;
use function Core Helper startAPI ;
startAPI ();
function get (){
$ db = new DAL ();
//GET user by id
if ( defined ( ' URI_PARAM ' )){
$ query = " SELECT * FROM users WHERE id = :id " ;
$ param = [ " id " => URI_PARAM ];
if (! $ user = $ db -> getItem ( $ query , $ param ))
response ([]);
response ([ $ user ]);
}
//GET All users
$ query = " SELECT * FROM users " ;
$ users = $ db -> getItems ( $ query );
response ( $ users );
}
function post (){
$ db = new DAL ();
$ rq = ( object ) getRequestBody ();
$ values = [
" username " => $ rq -> username ,
" firstname " => $ rq -> firstname ,
" lastname " => $ rq -> lastname ,
" usertype " => $ rq -> usertype ,
" password " => password_hash ( $ rq -> password , PASSWORD_BCRYPT )
];
if (! $ db -> insert ( " users " , $ values ))
error ( $ db -> getError ());
response ( " New User added! " );
}
function delete (){
if (! defined ( ' URI_PARAM ' ))
error ( " Invalid Request! Please specify user id " );
$ db = new DAL ();
$ id = URI_PARAM ;
if (! $ db -> delete ( " users " , " id=:id " ,[ " id " => $ id ]))
error ( $ db -> getError ());
response ( " User Deleted Successfuly! " );
}
function patch (){
if (! defined ( ' URI_PARAM ' ))
error ( " Invalid Request! Please specify user id " );
$ db = new DAL ();
$ id = URI_PARAM ;
$ rq = ( object ) getRequestBody ();
$ values = [
" firstname " => $ rq -> firstname ,
" lastname " => $ rq -> lastname ];
$ params = [ " id " => $ id ];
$ db = new DAL ();
if (! $ db -> update ( " users " , " id=:id " , $ values , $ params ))
error ( $ db -> getError ());
response ( " User Updated Successfuly " );
}
//EOF Les API de Phpeasy encouragent un style de codage procédural,
Voici donc la liste des fonctions que vous pouvez utiliser dans les implémentations API:
Initialisez un fichier PHP en tant qu'API REST.
Après avoir appelé cette fonction, vous pouvez implémenter les verbes http en fonction.
Exemple:
<?php
use function Core Helper startAPI ;
startAPI ();
function get (){
//Handle GET request to api/users
}Une réponse d'erreur sera reçue si vous essayez de demander à l'aide de méthodes HTTP autres que GET.
Obtenez le corps de demande et convertissez-le en tableau d'assocat.
Exemple:
<?php
use Core Helper getRequestBody ;
$ rq = getRequestBody ();
$ username = $ rq [ " username " ];
$ password = $ rq [ " password " ];
//you can convert it to object for easy access
//$rq = (object)$rq;
//$username = $rq->username;
//$password = $rq->password; Valider un tableau de paire de valeurs de clé en fonction des règles de validation.
$inputs - tableau associatif à valider.$validations - Tableau associatif contenant des clés qui correspondaient aux clés dans $ les données et les valeurs sont les règles de validation.Exemple:
<?php
use function Core Helper getRequestBody ;
use function Core Validator validate ;
$ rq = getRequestBody ();
$ dataRules = [ " uname " => " required|string " ,
" upass " => " required|string " ,
" firstName " => " required|string " ,
" lastName " => " required|string " ];
validate ( $ rq , $ dataRules );Réponse de sortie avec un code d'état 400 et un message d'erreur
$message - String | Message d'erreur du tableau Définir le type de contenu et le code d'état puis la sortie du contenu et de la sortie du script
$content String | Array - Le contenu à sortir$statusCode int - le code d'état de la réponse (par défaut 200)$contentType String - Le type de contenu (application par défaut / JSON). Types de contenu disponibles: [Application / JSON | Plain / Texte | texte / html] Inclure la vue spécifiée
$route - Affichage du chemin du fichierPrincipalement utilisé pour appeler le composant spa
Rediriger vers la vue spécifiée.
Si le chemin n'est pas spécifié, redirigez en fonction de la session.
$view la chaîne - chemin vers la vue Syntaxe plus courte pour htmlSpecialChars ()
$string - chaîne pour désinfecterGénérer un code alphanumérique randomisé
$length - longueur du code à générer (par défaut 6) Extraire les touches et les valeurs d'objet et stocker le tableau de session
$object - l'objet pour extraire l'exemple: <?php
use Core DAL ;
$ db = new DAL ();
if (! $ user = $ db -> getItem ( 1 ))
invalid ( " User does not exist! " );
objToSession ( $ userInfo );Générer un nouveau nom de fichier et télécharger le fichier
string $uploadFile $ _file keystring $uploadPath L'emplacement pour le fichier de téléchargement doit ajouter "/" à la finObtenir / définir une variable de session
$sessionVar - clé de session$value - Définit une valeur de session si NULL Convertissez un tableau d'objets en tableau indexé contenant des valeurs d'élément spécifié.
$objArr - Array Si iBjects à convertir$item - article d'objet à extraire PHPEASY introduit la classe DAL () pour les opérations de base de données. Prend en charge MySQL, MSSQL et SQLite.
Définir les configurations de la base de données dans config / database.php
Vous trouverez ci-dessous les fonctions dal ()
$ db = new DAL ();Exécute une instruction INSERT;
$table - le nom du tableau à insérer$values - tableau associatif contenant des clés qui correspondent aux champs de table et aux valeurs à insérer.Exemple:
$ values = [ " username " => $ uname ,
" password " => $ upass ,
" firstname " => $ firstName ,
" lastname " => $ lastName ];
$ db -> insert ( " users " , $ values );Exécute l'instruction de mise à jour
string $table la table pour mettre à jourstring $condition par exemple. id =: idarray $values Associative Array contenant des valeurs pour mettre à jour par exemple. ["age" => 27]array $params Valeurs pour les conditions, par exemple. ["id" => 1]Exemple:
$ values = [
" firstname " => $ firstName ,
" lastname " => $ lastName ];
$ params = [ " id " => 1 ];
$ db = new DAL ();
$ db -> update ( " users " , " id=:id " , $ values , $ params );Exécute l'instruction Delete
string $table la table pour supprimerstring $condition à l'aide d'une instruction préparée, par exemple. id =: id et nom =: nomarray $params Valeurs pour les conditions, par exemple. ["id" => 1, "nom" => "Juan dela cruz"]Exemple:
$ delete ( " users " , " id=:id " ,[ " id " => 1 ]);Sélectionnez plusieurs éléments
string $query Selectarray $inputs Paramètres pour la déclaration préparée par défaut (null)Exemple:
$ db = new DAL ();
$ sql = " SELECT * FROM users WHERE lastname = :surname " ;
$ params = [ " surname " => $ lastName ];
$ users = $ db -> getItems ( $ sql , $ params );Sélectionnez une requête unique
string $query Selectarray $inputs Paramètres pour la déclaration préparée par défaut (null)Exemple:
$ db = new DAL ();
$ sql = " SELECT * FROM users WHERE id=:userId " ;
$ params = [ " userId " => 1 ];
$ users = $ db -> getItem ( $ sql , $ params );Démarrez une transaction de base de données.
Commissez la transaction de la base de données.
Transaction de la base de données de retour.
Renvoie les erreurs de base de données
Insérer Lastid dans la base de données
string $field Spécifiez un champ LASID, NULL par défaut Obtenez le furteur de la base de données actuellement utilisé.
- api/getAllUser.php
```php
<?php
$db = new DAL();
$users = new Users($db);
$usersList = $users->getAll();
Vous pouvez utiliser des modèles ou ne pas en fonction des exigences du projet.
La classe DAL est accessible directement dans les fichiers API, vous pouvez exécuter une requête directement sur l'implémentation de l'API sans créer de modèle.
PHPEASY est progressif, vous pouvez ajouter des modèles, des services si vous le souhaitez, mettez simplement à jour le fichier composer.json si vous avez ajouté un autre répertoire.
Voir