38 lines
975 B
PHP
38 lines
975 B
PHP
|
<?php
|
||
|
|
||
|
namespace Component\FreeNetwork\Util;
|
||
|
|
||
|
use App\Core\Controller;
|
||
|
use Symfony\Component\HttpFoundation\Request;
|
||
|
use Symfony\Component\HttpFoundation\RequestStack;
|
||
|
use XML_XRD;
|
||
|
|
||
|
abstract class XrdController extends Controller
|
||
|
{
|
||
|
protected string $default_mimetype = Discovery::JRD_MIMETYPE;
|
||
|
|
||
|
protected XML_XRD $xrd;
|
||
|
|
||
|
/*
|
||
|
* Configures $this->xrd which will later be printed. Must be
|
||
|
* implemented by child classes.
|
||
|
*/
|
||
|
abstract protected function setXRD();
|
||
|
|
||
|
public function __construct(RequestStack $requestStack)
|
||
|
{
|
||
|
parent::__construct($requestStack);
|
||
|
|
||
|
if ($this->request->headers->get('format', null) === null) {
|
||
|
$this->request->headers->set('format', $this->default_mimetype);
|
||
|
}
|
||
|
|
||
|
$this->xrd = new XML_XRD();
|
||
|
}
|
||
|
|
||
|
public function handle(Request $request): array
|
||
|
{
|
||
|
$this->setXRD();
|
||
|
return ['xrd' => $this->xrd, 'default_mimetype' => $this->default_mimetype];
|
||
|
}
|
||
|
}
|