public function setUp() { $_SERVER['SCRIPT_NAME'] = '/index.php'; $_SERVER['PHWOOLCON_PHALCON_VERSION'] = Version::getId(); /* @var Di $di */ $di = $this->di = Di::getDefault(); Events::register($di); DiFix::register($di); Db::register($di); Cache::register($di); Log::register($di); Config::register($di); Counter::register($this->di); Aliases::register($di); I18n::register($di); Cookies::register($di); Session::register($di); Cache::flush(); Config::clearCache(); parent::setUp(); $class = get_class($this); Log::debug("================== Running {$class}::{$this->getName()}() ... =================="); Timer::start(); }
public function onReceive(SwooleServer $server, $fd, $fromId, $data) { if ($this->debug) { $this->debugData = []; Timer::start(); } $length = unpack('N', $data)[1]; $data = unserialize(substr($data, -$length)); $_REQUEST = $_GET = $_POST = isset($data['request']) ? $data['request'] : []; $_COOKIE = isset($data['cookies']) ? $data['cookies'] : []; $_FILES = isset($data['files']) ? $data['files'] : []; $_SERVER = isset($data['server']) ? $data['server'] : []; foreach ($this->environmentVariables as $k => $v) { $_SERVER[$k] = $v; } $this->reset(); ob_start(); $response = Router::dispatch(); $extraContent = ob_get_clean(); $headers = $this->parseResponseHeaders($response); $body = $response->getContent(); $result = serialize(['headers' => $headers, 'body' => $body . $extraContent, 'meta' => $this->debug ? $this->getDebugInfo($server) : ['service' => 1]]); $server->send($fd, pack('N', $outputLength = strlen($result)), $fromId); if ($outputLength >= $this->config['buffer_output_size']) { foreach (str_split($result, $this->config['chunk_output_size']) as $chunk) { $server->send($fd, $chunk, $fromId); } } else { $server->send($fd, $result, $fromId); } }