Laravoole\Commands\LaravooleCommand::start PHP Method

start() protected method

protected start ( )
    protected function start()
    {
        if ($this->getPid()) {
            echo 'already running' . PHP_EOL;
            exit(1);
        }
        $mode = config('laravoole.base_config.mode');
        if (!$mode) {
            echo "Laravoole needs Swoole or Workerman." . PHP_EOL . "You can install Swoole by command:" . PHP_EOL . " pecl install swoole" . PHP_EOL . "Or you can install Workerman by command:" . PHP_EOL . " composer require workerman/workerman" . PHP_EOL;
            exit;
        }
        $wrapper = "Laravoole\\Wrapper\\{$mode}Wrapper";
        $handler_config = [];
        $params = $wrapper::getParams();
        foreach ($params as $paramName => $default) {
            if (is_int($paramName)) {
                $paramName = $default;
                $default = null;
            }
            $key = $paramName;
            $value = config("laravoole.handler_config.{$key}", function () use($key, $default) {
                return env("LARAVOOLE_" . strtoupper($key), $default);
            });
            if ($value !== null) {
                if ((is_array($value) || is_object($value)) && is_callable($value)) {
                    $value = $value();
                }
                $handler_config[$paramName] = $value;
            }
        }
        if (!strcasecmp('SwooleFastCGI', $mode)) {
            $handler_config['dispatch_mode'] = 2;
        }
        global $argv;
        $configs = ['host' => config('laravoole.base_config.host'), 'port' => config('laravoole.base_config.port'), 'mode' => config('laravoole.base_config.mode'), 'pid_file' => config('laravoole.base_config.pid_file'), 'root_dir' => base_path(), 'handler_config' => $handler_config, 'wrapper_config' => config('laravoole.wrapper_config'), 'argv' => $argv];
        $handle = popen('/usr/bin/env php ' . __DIR__ . '/../../src/Entry.php', 'w');
        fwrite($handle, serialize($configs));
        fclose($handle);
    }