- #2765 Simplify queueing of internal middleware
ErrorMiddleware
andRoutingMiddleware
- #2759 Add
RouteContext
to enable access to the current route, route parser, and routing results - #2751 Add ability to set default error renderer content type on the
ErrorHandler
component - #2737 BC Change via
ErrorRendererInterface
changed to use invokable pattern to leverageCallableResolver
- #2734 Add support for content-type base error renderers and setting default error renderer
- #2716 Add automatic Slim-Http Request/Response decoration when library is in scope
- #2654
RouteParser::pathFor()
andRouteParser::relativePathFor()
are deprecated. UseRouteParser::urlFor()
andRouteParser::relativeUrlFor()
- #2642 Add
AppFactory
to enable PSR-7 implementation and ServerRequest creator auto-detection - #2641 Add
RouteCollectorProxyInterface
which extracts all the route mapping functionality from app into its own interface - #2640 Add
RouteParserInterface
and decouple FastRoute route parser entirely from core. The methodsrelativePathFor()
,urlFor()
andfullUrlFor()
are now located on this interface - #2639 Add
DispatcherInterface
and decouple FastRoute dispatcher entirely from core. This enables us to swap out our router implementation for any other router - #2638 Add
RouteCollector::fullUrlFor()
to give the ability to generate fully qualified URLs - #2634 Added ability to set invocation strategy on a per-route basis
- #2555 Added PSR-15 Middleware Support
- #2529 Slim no longer ships with a PSR-7 implementation. You need to provide a PSR-7 ServerRequest and a PSR-17 ResponseFactory to run Slim
- #2507 Method names are now case-sensitive in Router::map(), and so, by extension, in App::map()
- #2497 PSR-15 RequestHandlers can now be used as route callables
- #2496 A Slim App can now be used as PSR-15 Request Handler
- #2405 RoutingMiddleware now adds the
routingResults
request attribute to hold the results of routing - #2404 Slim 4 requires PHP 7.1 or higher
- #2425 Added $app->redirect()
- #2398 Added Middleware\ErrorMiddleware
- #2329 Added Middleware\MethodOverrideMiddleware
- #2288 Separate routing from dispatching
- #2254 Added Middleware\ContentLengthMiddleware
- #2166 Added Middleware\OutputBufferingMiddleware
- #2641 Deprecate
RouteCollector::pushGroup()
,RouteCollector::popGroup()
which gets replaced byRouteCollector::group()
- #2638 Deprecate
RouteCollector::pathFor()
which gets replaced byRouteCollector::urlFor()
preserving the orignal functionality - #2555 Double-Pass Middleware Support has been deprecated
- #2612 Remove Routable, refactored RouteGroup and Route interface
- #2589 Remove App::$settings altogether
- #2587 Remove Pimple as a dev-dependency
- #2398 Slim no longer has error handling built into App. Add ErrorMiddleware() as the outermost middleware
- #2375 Slim no longer sets the
default_mimetype
to an empty string, so you need to set it yourself in php.ini or your app usingini_set('default_mimetype', '');
- #2288
determineRouteBeforeAppMiddleware
setting is removed. Add RoutingMiddleware() where you need it now - #2254
addContentLengthHeader
setting is removed - #2221
Slim\Http
has been removed and Slim now depends on the separate Slim-Http component - #2166
outputBuffering
setting is removed - #2078 Remove App::subRequest()
- #2098 Remove CallableResolverTrait
- #2102 Remove container from router
- #2124 Remove Slim\Exception\SlimException
- #2174 Switch from Container-Interop to PSR-11
- #2290 Removed container. Set your own using
App::setContainer()
- #2560 Remove binding of $this to group()
- #2104 Settings are the top level array elements in
App::__construct()