PhPeasy es un marco PHP centrado en la API. Codifique el lenguaje PHP en sí mismo en lugar de un marco.
I. Introducción
II. Requisitos previos
Iii. Instalación
Esto es para alguien que ama la vainilla PHP y su simplicidad. Hoy en día debe seguir los estándares de codificación (OOP, sólido, seco, etc.) y los marcos MVC para hacer desarrollo web utilizando PHP. PHP Frameworks viene con demasiados archivos, configuraciones, clases y dependencias. Hice este mini marco para que los desarrolladores de PHP puedan hacer el desarrollo web más rápido mientras dominan y disfrutan del lenguaje PHP (sí! No es necesario aprender tantas bibliotecas).
Compositor: abra un terminal dentro de su carpeta root o htdocs y ejecute el comando a continuación.
composer create-project vgalvoso/phpeasy my_phpeasy
Puede cambiar [my_phpeasy] a cualquier nombre del proyecto que desee.
Ahora abra su navegador y vaya a http: // localhost/my_phpeasy
Crea vistas dentro de la carpeta View.
Las rutas de vista se crearán automáticamente en función de la estructura de la carpeta View.
Mire los ejemplos a continuación.
Puede omitir el nombre del archivo si el archivo de vista se llama [index.php]:
(SPA) Las aplicaciones de una sola página están compuestas de componentes de vista.
Los componentes de la vista son accesibles solo a través de solicitudes de AJAX.
Solo llame al núcleo/helper/componente (); En la parte superior de la vista, el archivo para especificarlo como un componente de vista.
Ejemplo: Ver/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 admite REST API.
Todas las API se colocan dentro de la carpeta API.
Las rutas API serán automáticas creadas a través de la estructura del archivo de la carpeta API y las funciones implementadas dentro del archivo PHP nombrado con Verbos HTTP EG (get (), post (), parche ()).
Entonces, por ejemplo, omitió la función Delete (), no puede llamar a API/Uss/{ID}.
Aquí hay un ejemplo de una API REST de usuarios.
Ruta del archivo API: [API/Users.php]
Rutas:
<?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 Las API en PhPeasy fomentan un estilo de codificación de procedimiento,
Así que aquí está la lista de funciones que puede usar en implementaciones de API:
Inicialice un archivo PHP como API REST.
Después de llamar a esta función, puede implementar verbos HTTP como función.
Ejemplo:
<?php
use function Core Helper startAPI ;
startAPI ();
function get (){
//Handle GET request to api/users
}La respuesta de error se recibirá si intenta solicitar utilizando métodos HTTP que no sean GET.
Obtenga el cuerpo de solicitud y conviértalo en una matriz de asociación.
Ejemplo:
<?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; Valide una matriz de pares de valor clave basada en reglas de validación.
$inputs : matriz asociativa a ser validada.$validations : la matriz asociativa que contiene claves que coinciden con claves en $ datos y valores son las reglas de validación.Ejemplo:
<?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 );Respuesta de salida con 400 código de estado y mensaje de error
$message - Cadena | Mensaje de error de matriz Establecer el tipo de contenido y el código de estado y luego salir del script de contenido y salir
$content | Array: el contenido a la salida$statusCode int - el código de estado de respuesta (predeterminado 200)$contentType String: el tipo de contenido (aplicación predeterminada/JSON). Tipos de contenido disponibles: [Aplicación/JSON | Plain/Text | texto/html] Incluir una vista especificada
$route String - Ver ruta de archivoSe utiliza principalmente para llamar al componente de spa
Redirigir a la vista especificada.
Si no se especifica la ruta, redirige según la sesión.
$view cadena - ruta para ver Sintaxis más corta para htmlspecialchars ()
$string - cadena para desinfectarGenerar un código alfanumérico aleatorizado
$length - Longitud del código que se generará (predeterminado 6) Extraer claves y valores de objeto y almacenar a la matriz de sesión
$object : el objeto para extraer ejemplo: <?php
use Core DAL ;
$ db = new DAL ();
if (! $ user = $ db -> getItem ( 1 ))
invalid ( " User does not exist! " );
objToSession ( $ userInfo );Genere el nuevo nombre de archivo y cargue el archivo
string $uploadFile $ _file clavestring $uploadPath ubicación para el archivo de carga debe agregar "/" al finalObtener/establecer una variable de sesión
$sessionVar - Clave de sesión$value - establece un valor de sesión si es nulo Convierta una matriz de objetos a una matriz indexada que contiene valores del elemento especificado.
$objArr - matriz si se convierte$item - Objeto Artículo para extraer PhPeasy presenta la clase Dal () para operaciones de bases de datos. Admite MySQL, MSSQL y SQLite.
Establecer configuraciones de base de datos en config/database.php
A continuación se muestran funciones dal ()
$ db = new DAL ();Ejecuta una declaración de inserción;
$table : el nombre de la tabla que se insertará$values : matriz asociativa que contiene claves que coinciden con los campos de tabla y los valores a insertar.Ejemplo:
$ values = [ " username " => $ uname ,
" password " => $ upass ,
" firstname " => $ firstName ,
" lastname " => $ lastName ];
$ db -> insert ( " users " , $ values );Ejecuta la declaración de actualización
string $table la tabla para actualizarstring $condition EG. ID =: IDarray $values Asociative Matray que contiene valores para actualizar EG. ["age" => 27]array $params Valores para condiciones, por ejemplo. ["ID" => 1]Ejemplo:
$ values = [
" firstname " => $ firstName ,
" lastname " => $ lastName ];
$ params = [ " id " => 1 ];
$ db = new DAL ();
$ db -> update ( " users " , " id=:id " , $ values , $ params );Ejecución de la instrucción Eliminar
string $table la tabla para eliminarstring $condition utilizando la declaración preparada Eg. id =: id y nombre =: nombrearray $params Valores para condiciones, por ejemplo. ["ID" => 1, "Nombre" => "Juan Dela Cruz"]Ejemplo:
$ delete ( " users " , " id=:id " ,[ " id " => 1 ]);Seleccione varios elementos
string $queryarray $inputs Parámetros para la declaración preparada por defecto (nulo)Ejemplo:
$ db = new DAL ();
$ sql = " SELECT * FROM users WHERE lastname = :surname " ;
$ params = [ " surname " => $ lastName ];
$ users = $ db -> getItems ( $ sql , $ params );Seleccione una consulta de una sola fila
string $queryarray $inputs Parámetros para la declaración preparada por defecto (nulo)Ejemplo:
$ db = new DAL ();
$ sql = " SELECT * FROM users WHERE id=:userId " ;
$ params = [ " userId " => 1 ];
$ users = $ db -> getItem ( $ sql , $ params );Iniciar una transacción de base de datos.
Conjunto de la transacción de la base de datos.
Transacción de base de datos de reversión.
Devuelve los errores de la base de datos
Inserte a LastId en la base de datos
string $field especificar un campo LastID, predeterminado NULL Obtenga la base de datos friver que se usa actualmente.
- api/getAllUser.php
```php
<?php
$db = new DAL();
$users = new Users($db);
$usersList = $users->getAll();
Puede usar modelos o no dependiendo de los requisitos del proyecto.
La clase DAL es accesible directamente en los archivos API, puede ejecutar una consulta directamente sobre la implementación de API sin crear un modelo.
PhPeasy es progresivo, puede agregar modelos, servicios si lo desea, simplemente actualice el archivo composer.json si agregó otro directorio.
Ver