blackcube / ssr
Server-side routing and rendering bridge for blackcube/dcore
1.0.0
2026-04-07 16:43 UTC
Requires
- php: ^8.1
- blackcube/dcore: ^1.0
- psr/http-message: ^2.0
- psr/http-server-middleware: ^1.0
- yiisoft/injector: ^1.2
Requires (Dev)
- codeception/codeception: ^5.3
- codeception/module-asserts: ^3.3
- httpsoft/http-message: ^1.1
- vlucas/phpdotenv: ^5.6
- yiisoft/aliases: ^3.1
- yiisoft/assets: ^5.1
- yiisoft/cache: ^3.2
- yiisoft/db-migration: ^2.0
- yiisoft/db-mysql: ^2.0
- yiisoft/di: ^1.4
- yiisoft/error-handler: ^4.3
- yiisoft/html: ^4.0
- yiisoft/request-provider: ^1.3
- yiisoft/session: ^3.0
- yiisoft/test-support: ^3.2
- yiisoft/view: ^12.2
- yiisoft/yii-view-renderer: ^7.4
Suggests
- illuminate/http: Required for LaravelSsrRoutingMiddleware (^12.0)
- php-di/php-di: DI container for Slim (^7.0)
- slim/psr7: PSR-7 implementation for Slim (^1.7)
- slim/slim: Required for SlimSsrRoutingMiddleware (^4.14)
- slim/twig-view: Twig template rendering for Slim (^3.4)
- yiisoft/aliases: Required for YiiSsrRoutingMiddleware (^3.1)
- yiisoft/assets: Required for YiiSsrRoutingMiddleware — JSON-LD asset injection (^5.1)
- yiisoft/cache: Required for HandlerRegistry caching (^3.2)
- yiisoft/html: Required for YiiSsrRoutingMiddleware — XeoInjection HTML tags (^3.12)
- yiisoft/request-provider: Required for YiiSsrRoutingMiddleware (^1.3)
- yiisoft/session: Required for YiiSsrRoutingMiddleware (^3.0)
- yiisoft/view: Required for YiiSsrRoutingMiddleware — XeoInjection view layer (^12.2)
- yiisoft/yii-view-renderer: Required for YiiSsrRoutingMiddleware — WebViewRenderer injections (^7.4)
This package is auto-updated.
Last update: 2026-04-07 17:21:34 UTC
README
Server-side routing bridge for Blackcube CMS. Maps dcore slugs to PHP handlers, injects SEO metadata, handles errors — all through PSR-15 middleware.
Where ssr sits
┌────────────────────────────┐
│ your app (Yii/Slim/Laravel) │
└──────────────┬─────────────┘
↓
┌──────────────────────┐
│ ssr ← you are here │
│ routing, SEO, handlers│
└───────────┬──────────┘
↓
┌──────────┐
│ dcore │
│ (data) │
└──────────┘
↓
DB
Quickstart
composer require blackcube/ssr
#[RoutingHandler(route: 'page')] final class PageHandler implements RequestHandlerInterface { public function __construct( private readonly Content $content, private readonly WebViewRenderer $viewRenderer, ) {} public function handle(ServerRequestInterface $request): ResponseInterface { return $this->viewRenderer->render('page', ['content' => $this->content]); } }
Documentation
- Installation — requirements, configuration, DI wiring
- Routing — middleware, handler registry, attributes, dispatch modes
- SEO — Xeo injection, meta tags, Open Graph, Twitter Cards, JSON-LD
- Errors — fallback handler, throwable factory, error handler registration
- Integration — PSR and Yii integration, Quill helper
License
BSD-3-Clause. See LICENSE.md.