32 lines
1 KiB
PHP
32 lines
1 KiB
PHP
|
|
<?php
|
||
|
|
declare(strict_types=1);
|
||
|
|
|
||
|
|
namespace Phred\Providers\Core;
|
||
|
|
|
||
|
|
use DI\Container;
|
||
|
|
use DI\ContainerBuilder;
|
||
|
|
use Phred\Http\Routing\RouteRegistry;
|
||
|
|
use Phred\Support\Contracts\ConfigInterface;
|
||
|
|
use Phred\Support\Contracts\ServiceProviderInterface;
|
||
|
|
use Phred\Http\Controllers\OpenApiJsonController;
|
||
|
|
use Phred\Http\Controllers\OpenApiUiController;
|
||
|
|
|
||
|
|
final class OpenApiServiceProvider implements ServiceProviderInterface
|
||
|
|
{
|
||
|
|
public function register(ContainerBuilder $builder, ConfigInterface $config): void
|
||
|
|
{
|
||
|
|
// No special bindings needed for OpenApi controllers as they can be autowired
|
||
|
|
}
|
||
|
|
|
||
|
|
public function boot(Container $container): void
|
||
|
|
{
|
||
|
|
RouteRegistry::add(static function ($r, $router): void {
|
||
|
|
$router->group('/_phred', static function ($router): void {
|
||
|
|
$router->get('/openapi', OpenApiJsonController::class);
|
||
|
|
$router->get('/openapi.json', OpenApiJsonController::class);
|
||
|
|
$router->get('/docs', OpenApiUiController::class);
|
||
|
|
});
|
||
|
|
});
|
||
|
|
}
|
||
|
|
}
|