TypePHP 编译器
https://swoole.com/aot/
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
29 lines
746 B
29 lines
746 B
<?php
|
|
use PhpAot\Php\Translator;
|
|
|
|
function main(int $argc, array $argv): void
|
|
{
|
|
define("ROOT_PATH", getcwd());
|
|
define('DEBUG', true);
|
|
|
|
require ROOT_PATH . '/vendor/autoload.php';
|
|
|
|
global $translator;
|
|
|
|
$translator = new Translator(ROOT_PATH);
|
|
if (empty($argv[1])) {
|
|
$translator->showUsage();
|
|
exit(0);
|
|
}
|
|
|
|
$translator->setIndent(' ');
|
|
// 扫描所有 PHP 文件,预处理
|
|
$path = $argv[1];
|
|
$files = $translator->prepare($path);
|
|
// 生成 C++ 文件
|
|
$sourceFiles = $translator->convert($files);
|
|
// 编译所有 C++ 文件
|
|
$objectFiles = $translator->compile($sourceFiles);
|
|
// 连接所有目标文件,生成可执行文件
|
|
$translator->build($objectFiles);
|
|
}
|
|
|