protected function setUp()
 {
     // Server
     $this->PR = new Process(Process::getPHPExecutable(), array("arguments" => array(__DIR__ . "/start-server.php", $GLOBALS["ip"], $GLOBALS["port"])));
     $this->PR->start();
     sleep(1);
 }
Пример #2
0
        /**
         * If the $appID is in the queue, then give the download status of it
         * If the updated value is less than 20 seconds ago, then restart the download
         */
        if (isset($appInstallQueue[$appID]) && $appInstallQueue[$appID]["updated"] > strtotime("-20 seconds")) {
            echo json_encode(array("statusID" => $appInstallQueue[$appID]["statusID"], "status" => $appInstallQueue[$appID]["status"]));
        } else {
            $appInfo = \Lobby\Server::store(array("get" => "app", "id" => $appID));
            /**
             * App doesn't exist on Lobby Store
             */
            if ($appInfo === "false") {
                echo json_encode(array("status" => "error", "error" => "App Doesn't Exist"));
            } else {
                $appName = $appInfo["name"];
                $Process = new Process(Process::getPHPExecutable(), array("arguments" => array(L_DIR . "/admin/ajax/install-app-bg.php", \Lobby::getLID(), base64_encode(serialize($_SERVER)), $appID)));
                /**
                 * Get the command used to execute install-app-bg.php
                 */
                $command = $Process->start(function () use($appID) {
                    /**
                     * This callback will close the connection between browser and server,
                     * http://stackoverflow.com/q/36968552/1372424
                     */
                    echo json_encode(array("statusID" => "download_intro", "status" => "Downloading <b>{$appID}</b>..."));
                });
                \Lobby::log("To install app '{$appID}', this command was executed : {$command}");
            }
        }
    }
}