pavlakis / slim-cli
Making a mock GET request through the CLI and enabling the same application entry point on CLI scripts.
Installs: 81 285
Dependents: 3
Suggesters: 0
Security: 0
Stars: 37
Watchers: 3
Forks: 5
Open Issues: 3
Requires
- php: >=5.5.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^2.2
- phpunit/phpunit: ^4.0
- slim/slim: ^3.0
This package is auto-updated.
Last update: 2024-10-08 03:44:45 UTC
README
Slim 3 Framework CLI Request Middleware
This middleware will transform a CLI call into a Request.
Install
Via Composer
composer require pavlakis/slim-cli
Usage
Pass the parameters in this order
route / method / query string
php public/index.php /status GET event=true
Add it in the middleware section of your application
$app->add(new \pavlakis\cli\CliRequest());
Adding custom parameters:
$app->add( new \pavlakis\cli\CliRequest( new EnvironmentProperties(['SERVER_PORT' => 9000]) ) );
Pass a route to test it with
$app->get('/status', 'PHPMinds\Action\EventStatusAction:dispatch') ->setName('status');
Check you're only using a CLI call
final class EventStatusAction { ... public function dispatch(Request $request, Response $response, $args) { // ONLY WHEN CALLED THROUGH CLI if (PHP_SAPI !== 'cli') { return $response->withStatus(404)->withHeader('Location', '/404'); } if (!$request->getParam('event')) { return $response->withStatus(404)->withHeader('Location', '/404'); } ... } }
Or we can use a PHP Server Interface (SAPI) Middleware to do the SAPI check adding by adding it to a route:
// By default returns a 403 if SAPI not part of the whitelist $app->get('/status', 'PHPMinds\Action\EventStatusAction:dispatch') ->add(new Pavlakis\Middleware\Server\Sapi(["cli"]))
Testing
$ composer test
Contributing
Please see CONTRIBUTING for details.
Credits
Based on Bobby DeVeaux's (@bobbyjason) Gulp Skeleton
License
The BSD 3-Clause License. Please see License File for more information.