forked from GNUsocial/gnu-social
		
	
		
			
				
	
	
		
			41 lines
		
	
	
		
			1004 B
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			41 lines
		
	
	
		
			1004 B
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | |
| 
 | |
| declare(strict_types = 1);
 | |
| 
 | |
| 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];
 | |
|     }
 | |
| }
 |