<?php
/**
* Part of the Joomla Framework Router Package
*
* @copyright Copyright (C) 2005 - 2021 Open Source Matters, Inc. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE
*/
namespace Joomla\Router\Exception;
/**
* Exception defining a method not allowed error.
*
* @since 2.0.0
*/
class MethodNotAllowedException extends \RuntimeException
{
/**
* Allowed methods for the given route
*
* @var string[]
* @since 2.0.0
*/
protected $allowedMethods = [];
/**
* Constructor.
*
* @param array $allowedMethods The allowed methods for the route.
* @param null $message The Exception message to throw.
* @param integer $code The Exception code.
* @param \Exception $previous The previous throwable used for the exception chaining.
*/
public function __construct(array $allowedMethods, $message = null, $code = 405, \Exception $previous = null)
{
$this->allowedMethods = array_map('strtoupper', $allowedMethods);
parent::__construct($message, $code, $previous);
}
/**
* Gets the allowed HTTP methods.
*
* @return array
*
* @since 2.0.0
*/
public function getAllowedMethods(): array
{
return $this->allowedMethods;
}
}