forked from GNUsocial/gnu-social
		
	
		
			
	
	
		
			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];
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								}
							 |