/** * Construct an instance of Drest Request object * @param mixed $request_object preferred router type * @param array $adapterClasses - an array of adapter classes available * @throws RequestException */ public function __construct($request_object = null, array $adapterClasses = null) { // If none are passed use the default system adapters $adapterClasses = is_array($adapterClasses) ? $adapterClasses : self::$defaultAdapterClasses; $defaultClass = 'Symfony\\Component\\HttpFoundation\\Request'; if (is_null($request_object)) { if (!class_exists($defaultClass)) { throw RequestException::noRequestObjectDefinedAndCantInstantiateDefaultType($defaultClass); } // Default to using symfony's request object /* @var \Symfony\Component\HttpFoundation\Request $defaultClass */ $this->adapter = new Adapter\Symfony2($defaultClass::createFromGlobals()); } else { if (is_object($request_object)) { foreach ($adapterClasses as $adapterClass) { /* @var Adapter\AdapterInterface $adapterClass */ $adaptedClassName = $adapterClass::getAdaptedClassName(); if ($request_object instanceof $adaptedClassName) { $adaptedObj = new $adapterClass($request_object); if ($adaptedObj instanceof Adapter\AdapterAbstract) { $this->adapter = $adaptedObj; return; } } } throw RequestException::unknownAdapterForRequestObject($request_object); } else { throw RequestException::invalidRequestObjectPassed(); } } }
/** * @see \DrestCommon\Request\Adapter\AdapterInterface::getHttpMethod() */ public function getHttpMethod() { $const = 'METHOD_' . $this->getRequest()->getMethod(); if (!defined('DrestCommon\\Request\\Request::' . $const)) { throw RequestException::unknownHttpVerb(get_class($this)); } return constant('DrestCommon\\Request\\Request::' . $const); }