La vision de ce projet est de permettre aux développeurs d'effectuer des opérations CRUD de base sans effort sans avoir besoin d'écrire du code PHP personnalisé. Les scripts sont conçus pour être dynamiques, permettant aux utilisateurs d'interagir avec l'API simplement en comprenant la documentation fournie et en faisant des demandes HTTP.
create.php )read.php )update.php )delete.php )file-upload.php )Cette documentation donne un aperçu d'un ensemble de scripts PHP conçus pour les opérations de base CRUD (créer, lire, mettre à jour, supprimer) et les téléchargements de fichiers. Les scripts sont destinés à être utilisés comme API pour gérer les données dans une base de données relationnelle.
Ce projet fournit un ensemble de scripts PHP conçus pour servir d'OPI simple pour effectuer des opérations CRUD (créer, lire, mettre à jour, supprimer) sur une base de données relationnelle. De plus, il comprend un script pour gérer les téléchargements de fichiers. Les scripts sont destinés à offrir une solution flexible et extensible pour gérer les interactions des données avec un serveur backend.
Avant d'utiliser les scripts, assurez-vous que la connexion de la base de données est correctement configurée. Les détails de la connexion peuvent être trouvés dans le fichier configuration/connection.php . Modifiez le fichier pour définir votre hôte de base de données, votre nom d'utilisateur, votre mot de passe et votre nom de base de données.
Exemple configuration/connection.php :
define ( ' DB_SERVER ' , ' YOUR_HOSTNAME ' );
define ( ' DB_USERNAME ' , ' YOUR_USERNAME ' );
define ( ' DB_PASSWORD ' , ' YOUR_PASSWORD ' );
define ( ' DB_NAME ' , ' YOUR_DATABASE ' );Description: Ce script gère la création de nouveaux enregistrements dans la base de données en fonction des données JSON fournies.
table (requis): le nom de la table de base de données pour insérer des données.validation (facultatif): règles de validation pour les données.data (requises): un tableau d'enregistrements à insérer. La validation est utilisée pour valider les données en fonction des règles fournies. Les règles de validation suivantes sont disponibles:
required : le champ ne doit pas être vide.string : le champ doit être une chaîne valide.name : Le champ doit être un nom valide et sans aucun entier ou des caractères spéciaux.email : Le champ doit être un format de messagerie valide.numeric : Le champ doit être numérique.min-length:X : Le champ doit comporter au moins x des caractères longs.max-length:X : Le champ doit être au plus x caractères.length:X : Le champ doit être exactement des caractères X longs.unique : La valeur du champ doit être unique dans le tableau spécifié | Il vérifiera l' id lors de la mise à jour de l'enregistrement, s'il est le même, il mettra simplement à jour la colonne. body dans la demande d'API {
"table" : " users " ,
"validation" : [
{
"name" : " required|string " ,
"email" : " required|email|unique " ,
"phone" : " required|numeric|unique|length:10 " ,
"password" : " required|min-length:6 " ,
"age" : " optional|numeric "
}
],
"data" : [
{
"name" : " Imdadullah " ,
"email" : " [email protected] " ,
"phone" : " 9992229990 " ,
"password" : " VerySecurePassword " ,
"age" : 22
}
]
}Description: Ce script récupère les données de la base de données en fonction des paramètres spécifiés.
table (requis): le nom de la table de base de données à interroger.select (requis): un tableau de colonnes à sélectionner. La valeur par défaut est toutes les colonnes (*).join (facultatif): un tableau de clauses de jointure pour effectuer des jointures.conditions (facultative): un tableau de conditions avec un objet avec on , type et value pour le filtrage des données.rawConditions (facultatif): un tableau de conditions brutes pour le filtrage des données, vous assurez-vous de passer des conditions ou rawConditions .order (facultatif): un objet avec on et type pour la commande de données.limit (facultatif): Limitez le nombre d'enregistrements renvoyés. body dans la demande d'API {
"table" : " users " ,
"select" : [ " id " , " name " , " email " , " age " ],
"order" : { "on" : " id " , "type" : " DESC " },
"conditions" : [
{
"on" : " age " ,
"type" : " >= " ,
"value" : " 18 "
},
{
"on" : " status " ,
"type" : " = " ,
"value" : " active "
},
{
"on" : " email " ,
"type" : " LIKE " ,
"value" : " @gmail.com% "
}
],
"limit" : 10
}body avec rawConditions dans la demande d'API {
"table" : " users " ,
"select" : [ " id " , " name " , " email " , " age " ],
"order" : { "on" : " id " , "type" : " DESC " },
"rawConditions" : [
" WHERE age >= '18' OR type = 'customer' AND status = 'active' "
]
}body avec paramètre JOIN Remarque: vous devrez mentionner chaque nom de table avec le nom de la colonne à JOIN
{
"table" : " users " ,
"select" : [
" users.name " ,
" users.email " ,
" items.title " ,
" items.price " ,
" purchases.amount " ,
" purchases.created_at AS purchased_date "
],
"conditions" : [
{
"on" : " purchases.item_id " ,
"type" : " = " ,
"value" : " 102 "
}
],
"join" : [
{
"table" : " purchases " ,
"on" : [ " purchases.user_id " , " users.id " ],
"type" : " LEFT "
},
{
"table" : " items " ,
"on" : [ " items.id " , " purchases.item_id " ],
"type" : " LEFT "
}
]
}Description: Ce script met à jour les enregistrements existants dans la base de données en fonction des paramètres spécifiés.
table (requis): le nom de la table de base de données à interroger.data (requises): un tableau de champs et de valeurs à mettre à jour.conditions (requises): un tableau de conditions pour identifier les enregistrements à mettre à jour.validation (facultatif): règles de validation pour les données. body dans la demande d'API {
"table" : " users " ,
"data" : [
{
"name" : " Imdadullah Babu " ,
"age" : 22
}
],
"validation" : [
{
"name" : " required|string " ,
"age" : " optional|numeric "
}
],
"conditions" : [
{
"on" : " id " ,
"type" : " = " ,
"value" : " 1 "
}
]
}Description: Ce script supprime les enregistrements de la base de données en fonction des paramètres spécifiés.
table (requis): le nom de la table de base de données à supprimer.conditions (requises): un tableau de conditions d'identification des enregistrements à supprimer. body dans la demande d'API {
"table" : " users " ,
"conditions" : [
{
"on" : " id " ,
"type" : " = " ,
"value" : " 1 "
}
]
}Description: Ce script gère le téléchargement de fichiers dans une destination spécifiée.
fileDestination (requis): le répertoire où les fichiers seront stockés.fileValidation (requis): une liste séparée par des virgules d'extensions de fichiers autorisées.Remarque: Vous pouvez télécharger plusieurs fichiers à la fois, et cela ne sera pas inséré dans votre table de base de données, vous obtiendrez l'URL en réponse et vous pouvez l'enregistrer dans la base de données.
< script >
const uploadButton = document.getElementById("button");
uploadButton.addEventListener("click", async function () {
const fileInput = document . getElementById ( "file" ) ;
const imageInput = document . getElementById ( "image" ) ;
const file = fileInput . files [ 0 ] ;
const image = imageInput . files [ 0 ] ;
const formData = new FormData ( ) ;
formData . append ( "file" , file ) ;
formData . append ( "image" , image ) ;
formData . append ( "fileDestination" , "files" ) ; // Files will be uploaded to the mentioned destination on the 'uploaded' directory
formData . append ( "fileValidation" , [ "jpg" , "png" , "pdf" ] ) ;
const request = await fetch ( "YOUR_API_REQUEST_ENDPOINT" , {
method : "POST" ,
body : formData ,
} ) ;
const response = await request . json ( ) ;
console . log ( response ) ;
} );
</ script > {
"file": "uploads/files/2024011984368.jpg",
"image": "uploads/files/2024011960039.jpg"
}
Remarque: Personnalisez et étendez les scripts en fonction des exigences de votre projet. Assurez-vous que les mesures de validation et de sécurité appropriées sont mises en œuvre dans un environnement de production.
Pour des mesures de sécurité supplémentaires ou une logique personnalisée, les développeurs peuvent étendre les fonctionnalités en ajoutant leur propre logique au fichier configuration/custom-functions.php . Cela fournit un espace pour intégrer la validation des jetons, l'authentification personnalisée ou toute autre mesure de sécurité en fonction des exigences du projet.
Ce projet a été développé par Imdadullah Babu, les scripts visent à fournir une base aux développeurs PHP pour intégrer les opérations de base de la base de données et les téléchargements de fichiers dans leurs projets sans écrire de codes reproductibles.
Ce projet est open-source et nous accueillons les contributions des développeurs du monde entier. Que vous soyez intéressé à ajouter de nouvelles fonctionnalités, à améliorer la documentation, à corriger les bogues ou à suggérer des améliorations, vos contributions sont précieuses.
Ensemble, nous pouvons rendre ce projet encore plus polyvalent et bénéfique pour la communauté des développeurs. Vos contributions, grandes ou petites, sont très appréciées.
Merci de faire partie de notre voyage open-source!