<?php
declare (strict_types=1 );
namespace App ;
use Psr \Http \Message \ResponseInterface as Response ;
use Psr \Http \Message \ServerRequestInterface as Request ;
use Slim \Factory \AppFactory ;
require __DIR__ .'/vendor/autoload.php ' ;
$ app = AppFactory ::create ();
$ app ->addRoutingMiddleware ();
$ app ->addErrorMiddleware (true , true , true );
$ app ->get ('/hello/{name} ' , function (Request $ request , Response $ response , $ args ) {
$ name = $ args ['name ' ];
$ response ->getBody ()->write ("Hello, $ name " );
return $ response ;
});
$ app ->run ();
Keep Controller (RequestHandler) signature
<?php
declare (strict_types=1 );
namespace App ;
use Chubbyphp \Framework \Application ;
use Chubbyphp \Framework \Middleware \ExceptionMiddleware ;
use Chubbyphp \Framework \Middleware \RouteMatcherMiddleware ;
use Chubbyphp \Framework \RequestHandler \SlimCallbackRequestHandler ;
use Chubbyphp \Framework \Router \FastRoute \RouteMatcher ;
use Chubbyphp \Framework \Router \Route ;
use Chubbyphp \Framework \Router \Routes ;
use Psr \Http \Message \ServerRequestInterface ;
use Slim \Psr7 \Factory \ResponseFactory ;
use Slim \Psr7 \Factory \ServerRequestFactory ;
require __DIR__ .'/vendor/autoload.php ' ;
$ responseFactory = new ResponseFactory ();
$ app = new Application ([
new ExceptionMiddleware ($ responseFactory , true ),
new RouteMatcherMiddleware (new RouteMatcher (new Routes ([
Route ::get ('/hello/{name} ' , 'hello ' , new SlimCallbackRequestHandler (
static function (Request $ request , Response $ response , $ args ) {
$ name = $ args ['name ' ];
$ response ->getBody ()->write ("Hello, $ name " );
return $ response ;
},
$ responseFactory
))
])), $ responseFactory ),
]);
$ app ->emit ($ app ->handle ((new ServerRequestFactory ())->createFromGlobals ()));
Use PSR-15 Controller (RequestHandler) signature
<?php
declare (strict_types=1 );
namespace App ;
use Chubbyphp \Framework \Application ;
use Chubbyphp \Framework \Middleware \ExceptionMiddleware ;
use Chubbyphp \Framework \Middleware \RouteMatcherMiddleware ;
use Chubbyphp \Framework \RequestHandler \CallbackRequestHandler ;
use Chubbyphp \Framework \Router \FastRoute \RouteMatcher ;
use Chubbyphp \Framework \Router \Route ;
use Chubbyphp \Framework \Router \Routes ;
use Psr \Http \Message \ServerRequestInterface ;
use Slim \Psr7 \Factory \ResponseFactory ;
use Slim \Psr7 \Factory \ServerRequestFactory ;
require __DIR__ .'/vendor/autoload.php ' ;
$ responseFactory = new ResponseFactory ();
$ app = new Application ([
new ExceptionMiddleware ($ responseFactory , true ),
new RouteMatcherMiddleware (new RouteMatcher (new Routes ([
Route ::get ('/hello/{name} ' , 'hello ' , new CallbackRequestHandler (
static function (ServerRequestInterface $ request ) use ($ responseFactory ) {
$ name = $ request ->getAttribute ('name ' );
$ response = $ responseFactory ->createResponse ();
$ response ->getBody ()->write ("Hello, $ name " );
return $ response ;
}
))
])), $ responseFactory ),
]);
$ app ->emit ($ app ->handle ((new ServerRequestFactory ())->createFromGlobals ()));