maximaster / cli-ent
Guzzle handler to imitate HTTP calls through CLI
v2.0.2
2024-12-11 14:38 UTC
Requires
- php: ^8.3
- ext-json: *
- guzzle/parser: ^3.9
- guzzlehttp/guzzle: ^6.2 || ^7.2
- guzzlehttp/promises: ^1.3
- guzzlehttp/psr7: ^2.7
- symfony/process: ^7.0
Requires (Dev)
- phan/phan: ^5.4
- phpunit/phpunit: ^8.5
This package is auto-updated.
Last update: 2025-03-13 13:23:49 UTC
README
Guzzle handler to imitate HTTP calls through CLI.
Installing
composer require maximaster/cli-ent
Reasoning
Imagine that you have a legacy CMS which can be installed only through web interface. By using the handler you can install such a CMS using CLI just by calling needed http queries like you would do it through web interface, but without running webserver.
Usage
<?php use GuzzleHttp\Client; use GuzzleHttp\HandlerStack; use Guzzle\Parser\Cookie\CookieParser; use Maximaster\CliEnt\CliEntHandler; use Maximaster\CliEnt\GlobalsParser; use Guzzle\Parser\Message\MessageParser; $cliEntHandler = new CliEntHandler( new GlobalsParser(new CookieParser()), new MessageParser(), '/var/www', function (array &$globals) { // you can mofify global variables here before execution $globals['_ENV'] = ['a' => 'Lorem', 'b' => 'ipsum']; $globals['_SERVER']['DOCUMENT_ROOT'] = '/var/www'; } ); $client = new Client(['handler' => HandlerStack::create($cliEntHandler)]); $response = $client->get('http://localhost/install.php'); // etc
Developing
composer run test
to run tests;composer run lint
to lint;