namespace JsonRPC; | |
/** | |
* Class MiddlewareHandler | |
* | |
* @package JsonRPC | |
* @author Frederic Guillot | |
*/ | |
class MiddlewareHandler | |
{ | |
/** | |
* Procedure Name | |
* | |
* @access protected | |
* @var string | |
*/ | |
protected $procedureName = ''; | |
/** | |
* Username | |
* | |
* @access protected | |
* @var string | |
*/ | |
protected $username = ''; | |
/** | |
* Password | |
* | |
* @access protected | |
* @var string | |
*/ | |
protected $password = ''; | |
/** | |
* List of middleware to execute before to call the method | |
* | |
* @access protected | |
* @var MiddlewareInterface[] | |
*/ | |
protected $middleware = array(); | |
/** | |
* Set username | |
* | |
* @access public | |
* @param string $username | |
* @return $this | |
*/ | |
public function withUsername($username) | |
{ | |
if (! empty($username)) { | |
$this->username = $username; | |
} | |
return $this; | |
} | |
/** | |
* Set password | |
* | |
* @access public | |
* @param string $password | |
* @return $this | |
*/ | |
public function withPassword($password) | |
{ | |
if (! empty($password)) { | |
$this->password = $password; | |
} | |
return $this; | |
} | |
/** | |
* Set procedure name | |
* | |
* @access public | |
* @param string $procedureName | |
* @return $this | |
*/ | |
public function withProcedure($procedureName) | |
{ | |
$this->procedureName = $procedureName; | |
return $this; | |
} | |
/** | |
* Add a new middleware | |
* | |
* @access public | |
* @param MiddlewareInterface $middleware | |
* @return MiddlewareHandler | |
*/ | |
public function withMiddleware(MiddlewareInterface $middleware) | |
{ | |
$this->middleware[] = $middleware; | |
return $this; | |
} | |
/** | |
* Execute all middleware | |
* | |
* @access public | |
*/ | |
public function execute() | |
{ | |
foreach ($this->middleware as $middleware) { | |
$middleware->execute($this->username, $this->password, $this->procedureName); | |
} | |
} | |
} | |