CLI process manager for modern Request-Response PHP Applications - with a builtin load-balancer.
andig on master
Add option to toggle extra work… (compare)
So, i trying setup basic app, based on PSR-7 and Zend\Stratigility. I repeat example from php-pm/php-pm-psr7 but i have error:
Uncaught Symfony\Component\Debug\Exception\FatalThrowableError: Type error: Argument 2 passed to Zend\Stratigility\MiddlewarePipe::process() must be an instance of Interop\Http\ServerMiddleware\DelegateInterface, null given, called in php-pm/vendor/zendframework/zend-stratigility/src/MiddlewarePipe.php on line 86 in php-pm/vendor/zendframework/zend-stratigility/src/MiddlewarePipe.php:99
Pls. i need help =(
public function createResponse(FilesystemInterface $filesystem): StreamedResponse
{
$response = new StreamedResponse();
$response->headers->makeDisposition(ResponseHeaderBag::DISPOSITION_INLINE,$this->getAsciiFilename());
$response->headers->set("Content-Type",$this->getMimeType());
$response->headers->set("Content-Length", $this->getSize());
$response->setCallback(function () use ($filesystem) {
$resource = $this->readStream($filesystem);
fpassthru($resource);
fclose($resource);
});
return $response;
}
string(4217) "Symfony\Component\Debug\Exception\ContextErrorException: Warning: Cannot modify header information - headers already sent by (output started at /var/www/vendor/symfony/symfony/src/Symfony/Component/HttpFoundation/Response.php:1276) in /ppm/vendor/php-pm/httpkernel-adapter/Bridges/HttpKernel.php:231
Stack trace:
#0 /ppm/vendor/php-pm/httpkernel-adapter/Bridges/HttpKernel.php(101): PHPPM\Bridges\HttpKernel->mapResponse(Object(Symfony\Component\HttpFoundation\StreamedResponse))
#1 /ppm/vendor/php-pm/php-pm/src/ProcessSlave.php(406): PHPPM\Bridges\HttpKernel->handle(Object(React\Http\Io\ServerRequest))
#2 /ppm/vendor/php-pm/php-pm/src/ProcessSlave.php(367): PHPPM\ProcessSlave->handleRequest(Object(React\Http\Io\ServerRequest))
#3 /ppm/vendor/react/http/src/Io/MiddlewareRunner.php(52): PHPPM\ProcessSlave->onRequest(Object(React\Http\Io\ServerRequest), Object(Closure))
#4 /ppm/vendor/react/http/src/Io/MiddlewareRunner.php(48): React\Http\Io\MiddlewareRunner->call(Object(React\Http\Io\ServerRequest), 3)
#5 /ppm/vendor/react/http/src/Middleware/RequestBodyParserMiddleware.php(34): React\Http\Io\MiddlewareRunner->React\Http\Io\{closure}(Object(React\Http\Io\ServerRequest))
#6 /ppm/vendor/react/http/src/Io/MiddlewareRunner.php(52): React\Http\Middleware\RequestBodyParserMiddleware->__invoke(Object(React\Http\Io\ServerRequest), Object(Closure))
#7 /ppm/vendor/react/http/src/Io/MiddlewareRunner.php(48): React\Http\Io\MiddlewareRunner->call(Object(React\Http\Io\ServerRequest), 2)
#8 /ppm/vendor/react/http/src/Middleware/RequestBodyBufferMiddleware.php(44): React\Http\Io\MiddlewareRunner->React\Http\Io\{closure}(Object(React\Http\Io\ServerRequest))
#9 /ppm/vendor/react/http/src/Io/MiddlewareRunner.php(52): React\Http\Middleware\RequestBodyBufferMiddleware->__invoke(Object(React\Http\Io\ServerRequest), Object(Closure))
#10 /ppm/vendor/react/http/src/Io/MiddlewareRunner.php(48): React\Http\Io\MiddlewareRunner->call(Object(React\Http\Io\ServerRequest), 1)
#11 /ppm/vendor/react/http/src/Middleware/LimitConcurrentRequestsMiddleware.php(91): React\Http\Io\MiddlewareRunner->React\Http\Io\{closure}(Object(React\Http\Io\ServerRequest))
#12 /ppm/vendor/react/http/src/Io/MiddlewareRunner.php(52): React\Http\Middleware\LimitConcurrentRequestsMiddleware->__invoke(Object(React\Http\Io\ServerRequest), Object(Closure))
#13 /ppm/vendor/react/http/src/Io/MiddlewareRunner.php(40): React\Http\Io\MiddlewareRunner->call(Object(React\Http\Io\ServerRequest), 0)
#14 /ppm/vendor/react/http/src/StreamingServer.php(236): React\Http\Io\MiddlewareRunner->__invoke(Object(React\Http\Io\ServerRequest))
#15 /ppm/vendor/react/http/src/StreamingServer.php(178): React\Http\StreamingServer->handleRequest(Object(React\Socket\Connection), Object(React\Http\Io\ServerRequest))
#16 /ppm/vendor/evenement/evenement/src/Evenement/EventEmitterTrait.php(123): React\Http\StreamingServer->React\Http\{closure}(Object(React\Http\Io\ServerRequest), '')
#17 /ppm/vendor/react/http/src/Io/RequestHeaderParser.php(59): Evenement\EventEmitter->emit('headers', Array)
#18 /ppm/vendor/react/http/src/Io/RequestHeaderParser.php(47): React\Http\Io\RequestHeaderParser->parseAndEmitRequest(792)
#19 /ppm/vendor/evenement/evenement/src/Evenement/EventEmitterTrait.php(123): React\Http\Io\RequestHeaderParser->feed('GET /dashboard/...')
#20 /ppm/vendor/react/stream/src/Util.php(71): Evenement\EventEmitter->emit('data', Array)
#21 /ppm/vendor/evenement/evenement/src/Evenement/EventEmitterTrait.php(123): React\Stream\Util::React\Stream\{closure}('GET /dashboard/...')
#22 /ppm/vendor/react/stream/src/DuplexResourceStream.php(193): Evenement\EventEmitter->emit('data', Array)
#23 [internal function]: React\Stream\DuplexResourceStream->handleData(Resource id #2619, Object(React\EventLoop\StreamSelectLoop))
#24 /ppm/vendor/react/event-loop/src/StreamSelectLoop.php(236): call_user_func(Array, Resource id #2619, Object(React\EventLoop\StreamSelectLoop))
#25 /ppm/vendor/react/event-loop/src/StreamSelectLoop.php(205): React\EventLoop\StreamSelectLoop->waitForStreamActivity(96262)
#26 /ppm/vendor/php-pm/php-pm/src/ProcessSlave.php(326): React\EventLoop\StreamSelectLoop->run()
#27 /tmp/dbgoOgHAf(25): PHPPM\ProcessSlave->run()
#28 {main}"
[09/Jan/2018:16:46:06 +0000] 127.0.0.1 - - "GET /dashboard/17/download_certificate HTTP/1.0" 500 38 "http://localhost/dashboard/17/"
Starting PHP-PM with 8 workers, using StreamSelectLoop ...
8 workers (starting at 5501) up and ready. Application is ready at http://127.0.0.1:8080/
--- Worker 5501 stderr ---
string(4263) "Error: Call to undefined method Laravel\Lumen\Application::getProvider() in /var/www/vendor/php-pm/httpkernel-adapter/Bootstraps/Laravel.php:128
Stack trace:
#0 /var/www/vendor/php-pm/httpkernel-adapter/Bootstraps/Laravel.php(119): PHPPM\Bootstraps\Laravel->resetProvider('\\Illuminate\\Coo...')
#1 /var/www/vendor/php-pm/httpkernel-adapter/Bridges/HttpKernel.php(113): PHPPM\Bootstraps\Laravel->postHandle(Object(Laravel\Lumen\Application))
#2 /var/www/vendor/php-pm/php-pm/src/ProcessSlave.php(431): PHPPM\Bridges\HttpKernel->handle(Object(React\Http\Io\ServerRequest))
#3 /var/www/vendor/php-pm/php-pm/src/ProcessSlave.php(392): PHPPM\ProcessSlave->handleRequest(Object(React\Http\Io\ServerRequest))
#4 /var/www/vendor/react/http/src/Io/MiddlewareRunner.php(49): PHPPM\ProcessSlave->onRequest(Object(React\Http\Io\ServerRequest))
#5 /var/www/vendor/react/http/src/Io/MiddlewareRunner.php(54): React\Http\Io\MiddlewareRunner->call(Object(React\Http\Io\ServerRequest), 3)
#6 /var/www/vendor/react/http/src/Middleware/RequestBodyParserMiddleware.php(34): React\Http\Io\MiddlewareRunner->React\Http\Io\{closure}(Object(React\Http\Io\ServerRequest))
#7 /var/www/vendor/react/http/src/Io/MiddlewareRunner.php(59): React\Http\Middleware\RequestBodyParserMiddleware->__invoke(Object(React\Http\Io\ServerRequest), Object(Closure))
#8 /var/www/vendor/react/http/src/Io/MiddlewareRunner.php(54): React\Http\Io\MiddlewareRunner->call(Object(React\Http\Io\ServerRequest), 2)
#9 /var/www/vendor/react/http/src/Middleware/RequestBodyBufferMiddleware.php(44): React\Http\Io\MiddlewareRunner->React\Http\Io\{closure}(Object(React\Http\Io\ServerRequest))
#10 /var/www/vendor/react/http/src/Io/MiddlewareRunner.php(59): React\Http\Middleware\RequestBodyBufferMiddleware->__invoke(Object(React\Http\Io\ServerRequest), Object(Closure))
#11 /var/www/vendor/react/http/src/Io/MiddlewareRunner.php(54): React\Http\Io\MiddlewareRunner->call(Object(React\Http\Io\ServerRequest), 1)
#12 /var/www/vendor/react/http/src/Middleware/LimitConcurrentRequestsMiddleware.php(91): React\Http\Io\MiddlewareRunner->React\Http\Io\{closure}(Object(React\Http\Io\ServerRequest))
#13 /var/www/vendor/react/http/src/Io/MiddlewareRunner.php(59): React\Http\Middleware\LimitConcurrentRequestsMiddleware->__invoke(Object(React\Http\Io\ServerRequest), Object(Closure))
#14 /var/www/vendor/react/http/src/Io/MiddlewareRunner.php(40): React\Http\Io\MiddlewareRunner->call(Object(React\Http\Io\ServerRequest), 0)
#15 /var/www/vendor/react/http/src/StreamingServer.php(237): React\Http\Io\MiddlewareRunner->__invoke(Object(React\Http\Io\ServerRequest))
#16 /var/www/vendor/react/http/src/StreamingServer.php(176): React\Http\StreamingServer->handleRequest(Object(React\Socket\Connection), Object(React\Http\Io\ServerRequest))
#17 /var/www/vendor/evenement/evenement/src/Evenement/EventEmitterTrait.php(123): React\Http\StreamingServer->React\Http\{closure}(Object(React\Http\Io\ServerRequest), '')
#18 /var/www/vendor/react/http/src/Io/RequestHeaderParser.php(59): Evenement\EventEmitter->emit('headers', Array)
#19 /var/www/vendor/react/http/src/Io/RequestHeaderParser.php(47): React\Http\Io\RequestHeaderParser->parseAndEmitRequest(134)
#20 /var/www/vendor/evenement/evenement/src/Evenement/EventEmitterTrait.php(123): React\Http\Io\RequestHeaderParser->feed('GET / HTTP/1.1\r...')
#21 /var/www/vendor/react/stream/src/Util.php(71): Evenement\EventEmitter->emit('data', Array)
#22 /var/www/vendor/evenement/evenement/src/Evenement/EventEmitterTrait.php(123): React\Stream\Util::React\Stream\{closure}('GET / HTTP/1.1\r...')
#23 /var/www/vendor/react/stream/src/DuplexResourceStream.php(193): Evenement\EventEmitter->emit('data', Array)
#24 [internal function]: React\Stream\DuplexResourceStream->handleData(Resource id #241, Object(React\EventLoop\StreamSelectLoop))
#25 /var/www/vendor/react/event-loop/src/StreamSelectLoop.php(236):