junioalmeida/slim-framework-extends-request

Classe que extende Request para poder agregar uma validação ao método $request->getParam() de Slim Framework 3.

1.0.17 2017-10-09 00:44 UTC

This package is auto-updated.

Last update: 2025-04-29 00:37:19 UTC


README

Essa classe foi criada para extender a classe original \Slim\Http\Request e sobrescrever o método chamado getParam. A sobrescrita apenas agrega uma validação e em seguida chama o getParam() original repassando os mesmo parametros originais. Vale lembrar que essa função recebe parametros de GET, POST e também do BODY quando é enviado um JSON.

Validação agregada:

  • Se o usuário deixar de enviar um parametro, e não tiver seteado um default: uma Exceção é lancada.
  • Se é passado um valor default, nada é alterado no seu funcionamento padrão.

Instalação

1 - Adicionar nas dependencias este código:

// Configuração da nova classe Request para atribuir a validação
$container['request'] = function ($c) use ($app) {
    $Request = \JunioDeAlmeida\Slim\Request::createFromEnvironment($c['environment']);
    $Request->setApp($app);
    return $Request;
};


2 - Confira no arquivo /public/index.php se o nome da variavel que recebe a instancia da aplicação \Slim\App chama $app :

session_start();

// Instantiate the app
$settings = require __DIR__ . '/../src/settings.php';
$app = new \Slim\App($settings);

// Set up dependencies
require __DIR__ . '/../src/dependencies.php';

Caso não seja, adapte este trecho do código: function ($c) use ($app) { em:

$container['request'] = function ($c) use ($app) {


2 - Se julgar necessário, configure o arquivo settings com os seguintes possíveis parametros:

return [
    'settings' => [

        // ... here another settings

        // Parametros para customizar a validação de parametros obrigatórios
        'param_required' => [
            'exception_class' => '\Exception', // Classe de exception que será lancáda
            'exception_messege' => 'The "%s" parameter is required!', // Mensagem que será usada no lançamento
        ]
    ],
];