mirror of
https://github.com/zhamao-robot/zhamao-framework.git
synced 2026-03-17 20:54:52 +08:00
126 lines
4.6 KiB
PHP
Executable File
126 lines
4.6 KiB
PHP
Executable File
#!/usr/bin/env php
|
|
<?php
|
|
|
|
use Framework\FrameworkLoader;
|
|
use Scheduler\Scheduler;
|
|
|
|
require __DIR__ . '/../src/Framework/FrameworkLoader.php';
|
|
require __DIR__ . '/../src/Scheduler/Scheduler.php';
|
|
|
|
Swoole\Coroutine::set([
|
|
'max_coroutine' => 30000,
|
|
]);
|
|
global $vendor_mode;
|
|
$vendor_mode = false;
|
|
if (mb_strpos(__DIR__, getcwd()) !== false && substr(str_replace(getcwd(), "", __DIR__), 0, 8) == "/vendor/") {
|
|
define("LOAD_MODE", 1); //composer项目模式
|
|
define("LOAD_MODE_COMPOSER_PATH", getcwd());
|
|
} else {
|
|
define("LOAD_MODE", 0); //正常模式
|
|
}
|
|
|
|
date_default_timezone_set("Asia/Shanghai");
|
|
|
|
switch ($argv[1] ?? '') {
|
|
case 'scheduler':
|
|
case 'timer':
|
|
go(function () {
|
|
try {
|
|
new Scheduler(Scheduler::REMOTE);
|
|
} catch (Exception $e) {
|
|
die($e->getMessage());
|
|
}
|
|
});
|
|
break;
|
|
case 'phar-build':
|
|
array_shift($argv);
|
|
require_once 'phar-build';
|
|
break;
|
|
case 'systemd':
|
|
array_shift($argv);
|
|
require_once 'systemd';
|
|
break;
|
|
case 'init':
|
|
array_shift($argv);
|
|
if (LOAD_MODE != 1) {
|
|
echo "initialization must be started with composer-project mode!\n";
|
|
exit(1);
|
|
}
|
|
$cwd = LOAD_MODE_COMPOSER_PATH;
|
|
echo "Copying default module file ...";
|
|
@mkdir($cwd . "/config");
|
|
@mkdir($cwd . "/src");
|
|
@mkdir($cwd . "/src/Custom");
|
|
@mkdir($cwd . "/src/Module");
|
|
@mkdir($cwd . "/src/Module/Example");
|
|
copy($cwd . "/vendor/zhamao/framework/config/global.php", $cwd . "/config/global.php");
|
|
copy($cwd . "/vendor/zhamao/framework/.gitignore", $cwd . "/.gitignore");
|
|
copy($cwd . "/vendor/zhamao/framework/config/file_header.json", $cwd . "/config/file_header.json");
|
|
copy($cwd . "/vendor/zhamao/framework/config/motd.txt", $cwd . "/config/motd.txt");
|
|
copy($cwd . "/vendor/zhamao/framework/src/Module/Example/Hello.php", $cwd . "/src/Module/Example/Hello.php");
|
|
copy($cwd . "/vendor/zhamao/framework/src/Module/Middleware/TimerMiddleware.php", $cwd . "/src/Module/Middleware/TimerMiddleware.php");
|
|
$autoload = [
|
|
"psr-4" => [
|
|
"Module\\" => "src/Module",
|
|
"Custom\\" => "src/Custom"
|
|
],
|
|
"files" => [
|
|
"src/Custom/global_function.php"
|
|
]
|
|
];
|
|
$scripts = [
|
|
"server" => "vendor/bin/start server",
|
|
"server:log-debug" => "vendor/bin/start server --log-debug",
|
|
"server:log-verbose" => "vendor/bin/start server --log-verbose",
|
|
"server:log-info" => "vendor/bin/start server --log-info",
|
|
"server:log-warning" => "vendor/bin/start server --log-warning",
|
|
"server:debug-mode" => "vendor/bin/start server --debug-mode",
|
|
"systemd" => "vendor/bin/start systemd"
|
|
];
|
|
echo PHP_EOL;
|
|
if (file_exists($cwd . "/composer.json")) {
|
|
echo "Updating composer.json ...";
|
|
$composer = json_decode(file_get_contents($cwd . "/composer.json"), true);
|
|
if (!isset($composer["autoload"])) {
|
|
$composer["autoload"] = $autoload;
|
|
}
|
|
if(!isset($composer["scripts"])) {
|
|
$composer["scripts"] = $scripts;
|
|
}
|
|
file_put_contents($cwd."/composer.json", json_encode($composer, 64|128|256));
|
|
echo PHP_EOL;
|
|
} else {
|
|
echo("Error occurred. Please check your updates.\n");
|
|
exit(1);
|
|
}
|
|
echo "success!\n";
|
|
break;
|
|
case '':
|
|
case 'framework':
|
|
case 'server':
|
|
if (!is_dir(__DIR__ . '/../vendor/') && LOAD_MODE == 0) {
|
|
echo "Warning: you have not update composer!\n";
|
|
exec("composer update", $out, $var);
|
|
if ($var != 0) {
|
|
echo "You need to run \"composer update\" at root of zhamao-framework!\n";
|
|
die;
|
|
}
|
|
}
|
|
$loader = new FrameworkLoader($argv);
|
|
break;
|
|
case '--help':
|
|
case '-h':
|
|
echo "\nUsage: " . $argv[0] . " [OPTION]\n";
|
|
echo "\nzhamao-framework start script, provides several startup arguments.";
|
|
echo "\n\n -h, --help\t\tShow this help menu";
|
|
echo "\n framework, server\tstart main framework, this is default option";
|
|
echo "\n phar-build\t\tbuild a new phar archive";
|
|
echo "\n init\t\t\tinitialize framework structure in this directory";
|
|
echo "\n systemd\t\tgenerate a new systemd \".service\" file to use\n\n";
|
|
break;
|
|
default:
|
|
echo "Unknown option \"{$argv[1]}\"!\n\"--help\" for more information\n";
|
|
break;
|
|
}
|
|
|