gabogalro/request-helpers

Request helpers for native PHP

Installs: 11

Dependents: 0

Suggesters: 0

Security: 0

Stars: 0

Watchers: 0

Forks: 0

Open Issues: 0

pkg:composer/gabogalro/request-helpers

v1.1.0 2025-11-10 21:39 UTC

This package is auto-updated.

Last update: 2026-01-10 21:56:17 UTC


README

Descripción

request-helpers es una librería PHP que proporciona funciones útiles para manejar requests de manera más sencilla y eficiente con formatos JSON, formData, parametros, manejo de archivos y tokens.

La libreria verifica y valida el tipo de metodo por si sola automatizando el proceso.

Instalación

Para instalar request-helpers, puedes usar Composer. Ejecuta el siguiente comando en tu terminal:

composer require gabogalro/request-helpers

Usos para Request::json;

Ejemplo de json en POST, PUT o PATCH.

{
  "NombreCliente": "Juan",
  "CorreoCliente": "juan@correo.com"
}

Ejemplo de uso para manipular un JSON en POST, PUT O PATCH.

<?php

use gabogalro\requestHelpers\Request;

public function registrarCliente(){

  $request = Request::json();

  $data = [
    //el nombre de la izquierda es la variable dentro del array, debe coincidir con el nombre que se envia en el json
    //el nombre de la derecha es el nombre del campo en el json
    'nombreCliente' => $request['NombreCliente'],
    'correoCliente' => $request['CorreoCliente']
  ]

  echo json_encode($data, JSON_PRETTY_PRINT);
}

Respuesta esperada

{
  "nombreCliente": "Juan",
  "correoCliente": "juan@correo.com"
}

Ejemplo de uso para extraer un TOKEN en formato Bearer Token o JWT bearer.

<?php

use gabogalro\requestHelpers\Request;

public function login(){

  //esto extrae el token de la cabecera Authorization: Bearer token
  //permitiendonos asi manipularlo como un string para destruir, iniciar o validar una sesion
  $token = Request::token();

  if($token){
    echo "token: $token";
  }
}

Respuesta esperada

Advertencia: el token no es real, es solo un ejemplo para mostrar el funcionamiento de la libreria.

  "token": "eyJhbGciMjM5MDIyfQ.Sf"

Usos para Request::parameter;

Ejemplo de uso para manipular un parametro, sin buscar valor especifico

<?php

use gabogalro\requestHelpers\Request;

public function mifuncion(){
  //con esto podemos recibir parametros al endpoint, ejemplo {{url}}cliente/get?clienteId=1&&nombre=Juan
  //algun servicio o modelo
  $request = Request::parameter(); // -> devuelve un array asociativo
  // Acceder a cada valor individual
  //$clienteId = $request['clienteId'];
  //$nombre    = $request['nombre'];
  echo json_encode($request);
}

Respuesta esperada

{
  "clienteId": "1",
  "nombre": "Juan"
}

Ejemplo de uso para manipular un parametro buscando un valor en especifico

<?php

use gabogalro\requestHelpers\Request;

public function registrarCliente(){
  //con esto podemos recibir parametros al endpoint, ejemplo {{url}}cliente/get?clienteId=1&&nombre=Juan
  //algun servicio o modelo
  $request = Request::parameter('clienteId');
  echo $request;
}

Respuesta esperada

1 -> esto se puede guardar en una variable y usarla como se desee. Ejemplo $clienteId = Request::parameter('clienteId');

Usos para Request::formData;

NOTA IMPORTANTE: solo funciona con POST; PUT o PATCH ESTAN DESHABILITADOS YA QUE PHP NATIVO NO SOPORTA PUT/PATCH EN FORM DATA

Ejemplo form data

<form>
  <input type="text" name="nombre" value="Juan" />
  <input type="email" name="domicilio" value="domicilio" />
  <input type="text" name="puesto" value="puesto" />
</form>

Ejemplo de uso para manipular el formulario anterior en forma plana.

<?php

use gabogalro\requestHelpers\Request;

public function registrarCliente(){
  $request = Request::formData();
  echo json_encode($request, JSON_PRETTY_PRINT);
}

Respuesta esperada

{
  "nombre": "pepe",
  "puesto": "empleado",
  "domicilios": "domicilio"
}

Ejemplo de uso para manipular un formData con datos anidados

<?php

use gabogalro\requestHelpers\Request;

//ejemplo 1
public function registrarCliente(){
  // [
  //  'name' => 'pepe',
  //  'domicilios' => ['dom1', 'dom2'],
  //  'puesto' => 'empleado'
  // ]
  $request = Request::formData();
  $dataEmpleado = [
    'nombre' => $request['nombre'],
    'puesto' => $request['puesto'],
    'domicilios' => []
  ];
  foreach($request['domicilios'] as $domicilio){
    $dataEmpleado['domicilios'][] = $domicilio;
  }
   echo json_encode($dataEmpleado);
}

//ejemplo 2
use gabogalro\requestHelpers\Request;

public function registrarCliente() {
    $request = Request::formData();

    $dataEmpleado = [
        'nombre' => $request['nombre'],
        'puesto' => $request['puesto'],
        'domicilios' => $request['domicilios'] ?? []
    ];

    echo json_encode($dataEmpleado);
}

Respuesta esperada

{
  "nombre": "pepe",
  "puesto": "empleado",
  "domicilios": ["dom1", "dom2"]
}

Ejemplo de uso para manipular un formData que viene en forma de object

<?php

use gabogalro\requestHelpers\Request;

public function registrarCliente(){
    //   'empleados' => [
    //     [
    //         'name[0]' => 'pepe1',
    //         'domicilio[0]' => 'dom1',
    //         'puesto[0]' => 'empleado1',
    //     ],
    //     [
    //         'name[1]' => 'pepe2',
    //         'domicilio[1]' => 'dom2',
    //         'puesto[1]' => 'empleado2',
    //     ],
    //     [
    //         'name[2]' => 'pepe3',
    //         'domicilio[2]' => 'dom3',
    //         'puesto[2]' => 'empleado3',
    //     ],
    // ]
  $data = Request::formData();
  $empleados = [];
  foreach($data['empleados'] ?? [] as $empleado)
  {
    $empleados[] =
    [
      "nombre" => $empleado['name'] ?? null,
      "domicilio" => $empleado['domicilio'] ?? null,
      "puesto" => $empleado['puesto'] ?? null
    ];
    //ejemplo de uso en un procedimiento almacenado usando la libreria sql-helpers
    //DB::statement('exec sp_registrar_empleado ?, ?, ?'),$empleados;
  }
  json_encode($empleados);
}

Respuesta esperada

[
  {
    "nombre": "pepe1",
    "domicilio": "dom1",
    "puesto": "empleado1"
  },
  {
    "nombre": "pepe2",
    "domicilio": "dom2",
    "puesto": "empleado2"
  },
  {
    "nombre": "pepe3",
    "domicilio": "dom3",
    "puesto": "empleado3"
  }
]

Requisitos previos

  • PHP 5.4 o superior
  • Composer

License

MIT © gabogalro. See LICENSE for details.