La visión de este proyecto es capacitar a los desarrolladores para realizar operaciones básicas de CRUD sin esfuerzo sin la necesidad de escribir un código PHP personalizado. Los scripts están diseñados para ser dinámicos, lo que permite a los usuarios interactuar con la API simplemente comprendiendo la documentación proporcionada y haciendo solicitudes HTTP.
create.php )read.php )update.php )delete.php )file-upload.php )Esta documentación proporciona una descripción general de un conjunto de scripts PHP diseñados para operaciones básicas de CRUD (crear, leer, actualizar, eliminar) y cargas de archivos. Los scripts están destinados a ser utilizados como API para administrar datos en una base de datos relacional.
Este proyecto proporciona un conjunto de scripts PHP diseñados para servir como una API simple para realizar operaciones de CRUD (crear, leer, actualizar, eliminar) en una base de datos relacional. Además, incluye un script para manejar cargas de archivos. Los scripts están destinados a ofrecer una solución flexible y extensible para administrar las interacciones de datos con un servidor de backend.
Antes de usar los scripts, asegúrese de que la conexión de la base de datos esté configurada correctamente. Los detalles de conexión se pueden encontrar en el archivo configuration/connection.php . Modifique el archivo para establecer el nombre de su host de base de datos, nombre de usuario, contraseña y base de datos.
Ejemplo configuration/connection.php :
define ( ' DB_SERVER ' , ' YOUR_HOSTNAME ' );
define ( ' DB_USERNAME ' , ' YOUR_USERNAME ' );
define ( ' DB_PASSWORD ' , ' YOUR_PASSWORD ' );
define ( ' DB_NAME ' , ' YOUR_DATABASE ' );Descripción: Este script maneja la creación de nuevos registros en la base de datos basada en los datos JSON proporcionados.
table (requerida): el nombre de la tabla de la base de datos para insertar datos.validation (opcional): reglas de validación para los datos.data (requeridos): una matriz de registros que se insertarán. La validation se utiliza para validar los datos en función de las reglas proporcionadas. Las siguientes reglas de validación están disponibles:
required : El campo no debe estar vacío.string : el campo debe ser una cadena válida.name : El campo debe ser un nombre válido y sin ningún entero o caracteres especiales.email : El campo debe ser un formato de correo electrónico válido.numeric : el campo debe ser numérico.min-length:X : El campo debe tener al menos x caracteres de largo.max-length:X : El campo debe tener como máximo X caracteres de largo.length:X : El campo debe ser exactamente X caracteres de largo.unique : el valor de campo debe ser único dentro de la tabla especificada | Verificará la id al actualizar el registro, si es igual, simplemente actualizará la columna. body de ejemplo en solicitud de 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
}
]
}Descripción: Este script recupera datos de la base de datos en función de los parámetros especificados.
table (requerida): el nombre de la tabla de la base de datos para consultar.select (requerido): una matriz de columnas para seleccionar. El valor predeterminado es todas las columnas (*).join (opcional): una variedad de cláusulas de unión para realizar uniones.conditions (opcional): una matriz de condiciones con objeto con on , type y value para filtrar datos.rawConditions (opcional): una variedad de condiciones sin procesar para filtrar datos, asegurarse de que pase las conditions o rawConditions .order (opcional): un objeto con on y type para ordenar datos.limit (opcional): Límite el número de registros devueltos. body de ejemplo en solicitud de 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 con rawConditions en solicitud de API {
"table" : " users " ,
"select" : [ " id " , " name " , " email " , " age " ],
"order" : { "on" : " id " , "type" : " DESC " },
"rawConditions" : [
" WHERE age >= '18' OR type = 'customer' AND status = 'active' "
]
}body de ejemplo con parámetro JOIN Nota: Tendrá que mencionar cada nombre de la tabla junto con el nombre de la columna para usar 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 "
}
]
}Descripción: Este script actualiza los registros existentes en la base de datos en función de los parámetros especificados.
table (requerida): el nombre de la tabla de la base de datos para consultar.data (requeridos): una matriz de campos y valores a actualizar.conditions (requeridas): una variedad de condiciones para identificar registros para actualizar.validation (opcional): reglas de validación para los datos. body de ejemplo en solicitud de API {
"table" : " users " ,
"data" : [
{
"name" : " Imdadullah Babu " ,
"age" : 22
}
],
"validation" : [
{
"name" : " required|string " ,
"age" : " optional|numeric "
}
],
"conditions" : [
{
"on" : " id " ,
"type" : " = " ,
"value" : " 1 "
}
]
}Descripción: Este script elimina los registros de la base de datos en función de los parámetros especificados.
table (requerida): el nombre de la tabla de la base de datos para eliminar.conditions (requeridas): una variedad de condiciones para identificar registros para eliminar. body de ejemplo en solicitud de API {
"table" : " users " ,
"conditions" : [
{
"on" : " id " ,
"type" : " = " ,
"value" : " 1 "
}
]
}Descripción: Este script maneja la carga de archivos a un destino especificado.
fileDestination (requerido): el directorio donde se almacenarán los archivos.fileValidation (requerido): una lista separada por comas de extensiones de archivos permitidas.Nota: Puede cargar varios archivos a la vez, y esto no se insertará en la tabla de su base de datos, obtendrá la URL como respuesta y puede guardarla en la base de datos.
< 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"
}
Nota: Personalice y amplíe los scripts en función de los requisitos de su proyecto. Asegúrese de implementar las medidas de validación y seguridad adecuadas en un entorno de producción.
Para medidas de seguridad adicionales o lógica personalizada, los desarrolladores pueden extender la funcionalidad agregando su propia lógica al archivo configuration/custom-functions.php . Esto proporciona un espacio para incorporar la validación del token, la autenticación personalizada o cualquier otra medida de seguridad de acuerdo con los requisitos del proyecto.
Este proyecto fue desarrollado por Imdadullah Babu, los scripts tienen como objetivo proporcionar una base para que los desarrolladores de PHP integren las operaciones básicas de las bases de datos y las cargas de archivos en sus proyectos sin escribir códigos repetibles.
Este proyecto es de código abierto, y damos la bienvenida a las contribuciones de los desarrolladores de todo el mundo. Ya sea que esté interesado en agregar nuevas funciones, mejorar la documentación, solucionar errores o sugerir mejoras, sus contribuciones son valiosas.
Juntos, podemos hacer que este proyecto sea aún más versátil y beneficioso para la comunidad de desarrolladores. Sus contribuciones, grandes o pequeñas, son muy apreciadas.
¡Gracias por ser parte de nuestro viaje de código abierto!