Skip to content
This repository has been archived by the owner on Jan 16, 2019. It is now read-only.

Commit

Permalink
move request classes from stubbles/input
Browse files Browse the repository at this point in the history
  • Loading branch information
mikey179 committed Jun 11, 2016
1 parent 23ea530 commit d57bbd4
Show file tree
Hide file tree
Showing 8 changed files with 370 additions and 7 deletions.
4 changes: 3 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
6.0.0 (201?-??-??)
6.0.0 (2016-??-??)
------------------

### BC breaks
Expand All @@ -13,6 +13,8 @@
* `stubbles\console\Executor::execute()` now takes a callable as optional second argument which receives each single line
* all methods now have an optional parameter `$redirect` with which output redirection can be influenced
* added `stubbles\console\Executor::outputOf()`
* moved `stubbles\input\console\ConsoleRequest` from stubbles/input to `stubbles\console\input\ConsoleRequest`
* moved `stubbles\input\console\BaseConsoleRequest` from stubbles/input to `stubbles\console\input\BaseConsoleRequest`


5.1.0 (2015-08-03)
Expand Down
120 changes: 120 additions & 0 deletions src/main/php/input/BaseConsoleRequest.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,120 @@
<?php
/**
* This file is part of stubbles.
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*
* @package stubbles\console
*/
namespace stubbles\console\input;
use stubbles\input\AbstractRequest;
use stubbles\input\Params;
use stubbles\input\ValueReader;
use stubbles\input\ValueValidator;
/**
* Request implementation for command line.
*
* @api
* @since 2.0.0
*/
class BaseConsoleRequest extends AbstractRequest implements ConsoleRequest
{
/**
* list of environment variables
*
* @type \stubbles\input\Params
*/
private $env;

/**
* constructor
*
* @param array $params
* @param array $env
*/
public function __construct(array $params, array $env)
{
parent::__construct(new Params($params));
$this->env = new Params($env);
}

/**
* creates an instance from raw data
*
* Will use $_SERVER['argv'] for params and $_SERVER for env.
*
* @api
* @return \stubbles\input\console\ConsoleRequest
*/
public static function fromRawSource()
{
return new self($_SERVER['argv'], $_SERVER);
}

/**
* returns the request method
*
* @return string
*/
public function method()
{
return 'cli';
}

/**
* return a list of all environment names registered in this request
*
* @return string[]
*/
public function envNames()
{
return $this->env->names();
}

/**
* returns list of errors for environment parameters
*
* @return \stubbles\input\ParamErrors
*/
public function envErrors()
{
return $this->env->errors();
}

/**
* checks whether a request param is set
*
* @param string $envName
* @return bool
*/
public function hasEnv($envName)
{
return $this->env->contain($envName);
}

/**
* checks whether a request value from parameters is valid or not
*
* @param string $envName name of environment value
* @return \stubbles\input\ValueValidator
*/
public function validateEnv($envName)
{
return new ValueValidator($this->env->value($envName));
}

/**
* returns request value from params for validation
*
* @param string $envName name of environment value
* @return \stubbles\input\ValueReader
*/
public function readEnv($envName)
{
return new ValueReader(
$this->env->errors(),
$this->env->get($envName)
);
}
}
57 changes: 57 additions & 0 deletions src/main/php/input/ConsoleRequest.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
<?php
/**
* This file is part of stubbles.
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*
* @package stubbles\console
*/
namespace stubbles\console\input;
use stubbles\input\Request;
/**
* Interface for command line requests.
*
* @api
* @since 2.0.0
*/
interface ConsoleRequest extends Request
{
/**
* return a list of all environment names registered in this request
*
* @return string[]
*/
public function envNames();

/**
* returns list of errors for environment parameters
*
* @return \stubbles\input\errors\ParamErrors
*/
public function envErrors();

/**
* checks whether a request param is set
*
* @param string $envName
* @return bool
*/
public function hasEnv($envName);

/**
* checks whether a request value from parameters is valid or not
*
* @param string $envName name of environment value
* @return \stubbles\input\ValueValidator
*/
public function validateEnv($envName);

/**
* returns request value from params for validation
*
* @param string $envName name of environment value
* @return \stubbles\input\ValueReader
*/
public function readEnv($envName);
}
1 change: 0 additions & 1 deletion src/main/php/input/RequestParser.php
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@
* @package stubbles\console
*/
namespace stubbles\console\input;
use stubbles\input\console\ConsoleRequest;
use stubbles\input\broker\RequestBroker;
use stubbles\input\errors\messages\ParamErrorMessages;
/**
Expand Down
4 changes: 2 additions & 2 deletions src/main/php/ioc/ArgumentParser.php
Original file line number Diff line number Diff line change
Expand Up @@ -8,11 +8,11 @@
* @package stubbles\console
*/
namespace stubbles\console\ioc;
use stubbles\console\input\BaseConsoleRequest;
use stubbles\console\input\ConsoleRequest;
use stubbles\console\input\UserInputProvider;
use stubbles\input\Request;
use stubbles\input\broker\RequestBroker;
use stubbles\input\console\ConsoleRequest;
use stubbles\input\console\BaseConsoleRequest;
use stubbles\ioc\Binder;
use stubbles\ioc\module\BindingModule;
/**
Expand Down
Loading

0 comments on commit d57bbd4

Please sign in to comment.