# Action
Namespace Chevere\Action
The Action component is in charge of providing context for executing any instruction. Its purpose is to provide a typed layer for handling input instructions to a system.
# Defining an Action
An action implements the Interfaces\ActionInterface
.
👉 You can extend Action
to quick create an action:
use Chevere\Action\Action;
final class SomeAction extends Action
{
// ...
}
# Attributes
Attributes can be used to provide context for Action (class) and run method parameters.
👉 Refer to Attribute for parameter attributes.
# Run
The run
method is used to define the logic that will be executed. In the example below the Regex
attribute adds input validation for email addresses on @chevere.org
only.
use Chevere\Attributes\Regex;
protected function run(
#[Regex('/^[\w-\.]+@chevere\.org$/')]
string $email
): int
{
// ...
return $id;
}
# Response Parameters
The acceptResponse
method is used to define the parameter which will be checked against the response typed in the run method.
use Chevere\Parameter\Interfaces\ParameterInterface;
use function Chevere\Parameter\integer;
public static function acceptResponse(): ParameterInterface
{
return integer(minimum: 1);
}
The example above defines to accept a response of type integer with a minimum value of 1
. If run
return is 0
if will raise an exception.
# Get Response
Use getResponse
method to run the action. It returns a CastInterface
object.
$response = $action
->getResponse(email: 'godlike@chevere.org');
$string = $response->string();