Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ composer.lock
.idea
.fleet
.vscode
.devcontainer
cache
file.db
.phpunit.result.cache
4 changes: 2 additions & 2 deletions examples/basic-auth-custom/index.php
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,12 @@
require __DIR__ . "/vendor/autoload.php";

use Dumbo\Dumbo;
use Dumbo\Helpers\BasicAuth;
use Dumbo\Middleware\BasicAuthMiddleware;

$app = new Dumbo();

$app->use(
BasicAuth::basicAuth([
BasicAuthMiddleware::basicAuth([
"verifyUser" => function ($username, $password, $context) {
// You could call a database here...
$validUsers = [
Expand Down
4 changes: 2 additions & 2 deletions examples/basic-auth-multiple-users/index.php
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,12 @@
require __DIR__ . "/vendor/autoload.php";

use Dumbo\Dumbo;
use Dumbo\Helpers\BasicAuth;
use Dumbo\Middleware\BasicAuthMiddleware;

$app = new Dumbo();

$app->use(
BasicAuth::basicAuth([
BasicAuthMiddleware::basicAuth([
"users" => [
["username" => "user1", "password" => "pass1"],
["username" => "user2", "password" => "pass2"],
Expand Down
4 changes: 2 additions & 2 deletions examples/basic-auth-nested/index.php
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,12 @@
require __DIR__ . "/vendor/autoload.php";

use Dumbo\Dumbo;
use Dumbo\Helpers\BasicAuth;
use Dumbo\Middleware\BasicAuthMiddleware;

$app = new Dumbo();
$api = new Dumbo();

$api->use(BasicAuth::basicAuth("user:password"));
$api->use(BasicAuthMiddleware::basicAuth("user:password"));

$api->get("/", function ($context) {
return $context->html("<h1>Welcome to the protected area!</h1>");
Expand Down
4 changes: 2 additions & 2 deletions examples/basic-auth/index.php
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,11 @@
require __DIR__ . "/vendor/autoload.php";

use Dumbo\Dumbo;
use Dumbo\Helpers\BasicAuth;
use Dumbo\Middleware\BasicAuthMiddleware;

$app = new Dumbo();

$app->use(BasicAuth::basicAuth("user:password"));
$app->use(BasicAuthMiddleware::basicAuth("user:password"));

$app->get("/", function ($context) {
return $context->html("<h1>Welcome to the protected area!</h1>");
Expand Down
4 changes: 2 additions & 2 deletions examples/bearer-auth-nested-route/index.php
Original file line number Diff line number Diff line change
Expand Up @@ -3,14 +3,14 @@
require __DIR__ . "/vendor/autoload.php";

use Dumbo\Dumbo;
use Dumbo\Helpers\BearerAuth;
use Dumbo\Middleware\BearerAuthMiddleware;

$app = new Dumbo();
$api = new Dumbo();

$token = "mysupersecret";

$api->use(BearerAuth::bearerAuth($token));
$api->use(BearerAuthMiddleware::bearerAuth($token));

$api->get("/", function ($context) {
return $context->json([
Expand Down
4 changes: 2 additions & 2 deletions examples/bearer-auth/index.php
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,12 @@
require __DIR__ . "/vendor/autoload.php";

use Dumbo\Dumbo;
use Dumbo\Helpers\BearerAuth;
use Dumbo\Middleware\BearerAuthMiddleware;

$app = new Dumbo();
$token = "mysupersecret";

$app->use(BearerAuth::bearerAuth($token));
$app->use(BearerAuthMiddleware::bearerAuth($token));

$app->get("/", function ($context) {
return $context->json([
Expand Down
6 changes: 3 additions & 3 deletions examples/body-limit/index.php
Original file line number Diff line number Diff line change
Expand Up @@ -3,15 +3,15 @@
require __DIR__ . "/vendor/autoload.php";

use Dumbo\Dumbo;
use Dumbo\Helpers\BodyLimit;
use Dumbo\Middleware\BodyLimitMiddleware;

$app = new Dumbo();

// Limit the body size to 1MB
$app->use(BodyLimit::limit(1024 * 1024));
$app->use(BodyLimitMiddleware::limit(1024 * 1024));

// Or apply it with custom response
// $app->use(BodyLimit::limit(1024 * 1024, function($context) {
// $app->use(BodyLimitMiddleware::limit(1024 * 1024, function($context) {
// return $context->json(['error' => 'Body too large'], 413);
// }));

Expand Down
4 changes: 2 additions & 2 deletions examples/compress/index.php
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,12 @@
require __DIR__ . "/vendor/autoload.php";

use Dumbo\Dumbo;
use Dumbo\Helpers\Compress;
use Dumbo\Middleware\CompressMiddleware;

$app = new Dumbo();

$app->use(
Compress::compress([
CompressMiddleware::compress([
"threshold" => 1024, // Minimum size to compress (bytes)
"encoding" => "gzip", // Preferred encoding (gzip or deflate)
])
Expand Down
4 changes: 2 additions & 2 deletions examples/logger/index.php
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
require __DIR__ . "/vendor/autoload.php";

use Dumbo\Dumbo;
use Dumbo\Helpers\Logger;
use Dumbo\Middleware\LoggerMiddleware;
use Monolog\Formatter\LineFormatter;
use Monolog\Logger as MonologLogger;
use Monolog\Handler\StreamHandler;
Expand All @@ -19,7 +19,7 @@
$handler->setFormatter($formatter);
$logger->pushHandler($handler);

$app->use(Logger::logger($logger));
$app->use(LoggerMiddleware::logger($logger));

$app->get("/", function ($context) {
return $context->html("<h1>We've just logged something on the console!</h1>");
Expand Down
6 changes: 3 additions & 3 deletions examples/request-id/index.php
Original file line number Diff line number Diff line change
Expand Up @@ -3,15 +3,15 @@
require __DIR__ . "/vendor/autoload.php";

use Dumbo\Dumbo;
use Dumbo\Helpers\RequestId;
use Dumbo\Middleware\RequestIdMiddleware;

$app = new Dumbo();

$app->use(RequestId::requestId());
$app->use(RequestIdMiddleware::requestId());

// Or apply it with custom options
// $app->use(
// RequestId::requestId([
// RequestIdMiddleware::requestId([
// "headerName" => "X-Custom-Request-Id",
// "limitLength" => 128,
// "generator" => function ($context) {
Expand Down
4 changes: 2 additions & 2 deletions examples/static-assets/index.php
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,11 @@
require __DIR__ . "/vendor/autoload.php";

use Dumbo\Dumbo;
use Dumbo\Helpers\StaticFiles;
use Dumbo\Middleware\StaticFilesMiddleware;

$app = new Dumbo();

$app->use("/", StaticFiles::serve(__DIR__ . "/assets"));
$app->use("/", StaticFilesMiddleware::serve(__DIR__ . "/assets"));

// $app->get("/", StaticFiles::serve(__DIR__ . "/assets"));

Expand Down
1 change: 0 additions & 1 deletion src/Context.php
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@
namespace Dumbo;

use Closure;
use Dumbo\Helpers\View;
use GuzzleHttp\Psr7\Response;
use Psr\Http\Message\ResponseInterface;
use Psr\Http\Message\ServerRequestInterface;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
<?php

namespace Dumbo\Helpers;
namespace Dumbo\Middleware;

use Dumbo\Context;
use Psr\Http\Message\ResponseInterface;

class BasicAuth
class BasicAuthMiddleware
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@lucasacoutinho should we omit Middleware from the names here? It might look cleaner when using them? Wdyt

{
private const STATUS_UNAUTHORIZED = 401;
private const HEADER_AUTHORIZATION = "Authorization";
Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
<?php

namespace Dumbo\Helpers;
namespace Dumbo\Middleware;

use Dumbo\Context;
use Psr\Http\Message\ResponseInterface;

class BearerAuth
class BearerAuthMiddleware
{
private const STATUS_UNAUTHORIZED = 401;
private const HEADER_AUTHORIZATION = "Authorization";
Expand Down
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
<?php

namespace Dumbo\Helpers;
namespace Dumbo\Middleware;

use Dumbo\Context;
use Dumbo\HTTPException;
use Psr\Http\Message\ResponseInterface;

class BodyLimit
class BodyLimitMiddleware
{
/**
* Create a middleware that limits the size of the request body
Expand Down
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
<?php

namespace Dumbo\Helpers;
namespace Dumbo\Middleware;

use Dumbo\Context;
use GuzzleHttp\Psr7\Utils;
use Psr\Http\Message\ResponseInterface;
use Psr\Http\Message\StreamInterface;

class Compress
class CompressMiddleware
{
private const STR_REGEX = '/^\s*(?:text\/[^;\s]+|application\/(?:javascript|json|xml|xml-dtd|ecmascript|dart|postscript|rtf|tar|toml|vnd\.dart|vnd\.ms-fontobject|vnd\.ms-opentype|wasm|x-httpd-php|x-javascript|x-ns-proxy-autoconfig|x-sh|x-tar|x-virtualbox-hdd|x-virtualbox-ova|x-virtualbox-ovf|x-virtualbox-vbox|x-virtualbox-vdi|x-virtualbox-vhd|x-virtualbox-vmdk|x-www-form-urlencoded)|font\/(?:otf|ttf)|image\/(?:bmp|vnd\.adobe\.photoshop|vnd\.microsoft\.icon|vnd\.ms-dds|x-icon|x-ms-bmp)|message\/rfc822|model\/gltf-binary|x-shader\/x-fragment|x-shader\/x-vertex|[^;\s]+?\+(?:json|text|xml|yaml))(?:[;\s]|$)/i';

Expand Down
3 changes: 1 addition & 2 deletions src/Middleware/CsrfMiddleware.php
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@
use InvalidArgumentException;
use Psr\Http\Message\ResponseInterface;


class CsrfMiddleware
{
private const SAFE_METHODS = ['GET', 'HEAD', 'OPTIONS', 'TRACE'];
Expand Down Expand Up @@ -124,4 +123,4 @@ private static function handleError(Context $ctx, ?callable $errorHandler): Resp
'error' => 'Invalid CSRF token',
], 403);
}
}
}
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
<?php

namespace Dumbo\Helpers;
namespace Dumbo\Middleware;

use Dumbo\Context;
use Psr\Http\Message\ResponseInterface;
use Psr\Log\LoggerInterface;

class Logger
class LoggerMiddleware
{
public const LOG_PREFIX_INCOMING = "-->";
public const LOG_PREFIX_OUTGOING = "<--";
Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
<?php

namespace Dumbo\Helpers;
namespace Dumbo\Middleware;

use Dumbo\Context;
use Psr\Http\Message\ResponseInterface;

class RequestId
class RequestIdMiddleware
{
private const DEFAULT_HEADER_NAME = "X-Request-Id";
private const DEFAULT_LIMIT_LENGTH = 255;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,10 @@
<?php

namespace Dumbo\Helpers;
namespace Dumbo\Middleware;

use Dumbo\Context;
use Psr\Http\Message\ResponseInterface;

class StaticFiles
class StaticFilesMiddleware
{
/**
* Create a handler for serving static files
Expand Down
8 changes: 4 additions & 4 deletions tests/Helpers/JWTTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@
namespace Dumbo\Tests\Helpers;

use Dumbo\Helpers\JWT;
use Exception;
use PHPUnit\Framework\TestCase;
use Firebase\JWT\ExpiredException;

class JWTTest extends TestCase
{
Expand Down Expand Up @@ -35,7 +35,7 @@ public function testExpiredToken()

$token = JWT::sign($payload, self::SECRET, self::ALG);

$this->expectException(\Exception::class);
$this->expectException(Exception::class);
$this->expectExceptionMessage("Expired token");
JWT::verify($token, self::SECRET, self::ALG);
}
Expand All @@ -46,7 +46,7 @@ public function testInvalidSignature()

$token = JWT::sign($payload, self::SECRET, self::ALG);

$this->expectException(\Exception::class);
$this->expectException(Exception::class);
$this->expectExceptionMessage("Invalid token");
JWT::verify($token, "wrong_secret", self::ALG);
}
Expand Down Expand Up @@ -74,7 +74,7 @@ public function testDecode()

public function testInvalidTokenFormat()
{
$this->expectException(\Exception::class);
$this->expectException(Exception::class);
$this->expectExceptionMessage("Invalid token format");
JWT::decode("invalid.token");
}
Expand Down
Loading