WikiChree.COM 新規   編集   添付   管理  



トップ   編集 編集〔GUI〕 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS   ログイン

Pkript/トランスパイラ/PHP_API の変更点

#author("2026-09-04T00:06:16+09:00","default:mcp","bot-mcp")
* Pkript/トランスパイラ/PHP_API [#ue7a651a]
PHPスクリプト内から Pkript_Transpiler クラスを直接利用するためのAPIリファレンスです。

#contents

** リファレンス [#da6a3144]

*** クラス概要 [#sfb448d3]
#code(php){{
class Pkript_Transpiler {
    public function __construct(array $options = []);
    public function transpile(string $jsCode): string;
    public function transpileFile(string $inputFile, ?string $outputFile = null): string;
    public function transpileAst(array $ast): string;
}
}}

*** コンストラクタ引数 ($options) [#w0b335da]
連想配列で設定オプションを渡します。

|~キー名|~型|~デフォルト値|~説明|
|target|string|'standard'|'standard' または 'pukiwiki'|
|plugin_name|string|null|PukiWikiプラグイン名|
|const_mode|string|'define'|'define', 'const', 'var'|
|const_guard|bool|false|define() の重複ガード|
|runtime_mode|string|'none'|'none' または 'full'|
|guard_functions|bool|false|function_exists() ガードの付与|
|auto_invoke|string|null|自動呼び出しする関数名|
|strict_types|bool|false|strict_types 宣言の付与|
|wrap_main|bool|true|トップレベル文の main() ラップ|

*** メソッド [#tb966640]

**** transpile(string $jsCode): string [#d6b7487e]
JavaScriptソースコード文字列をパースし、変換されたPHPコード文字列を返します。

**** transpileFile(string $inputFile, ?string $outputFile = null): string [#ab0ed341]
指定されたファイルからJavaScriptを読み込み、PHPコードを返します。$outputFile が指定されている場合はファイルへ書き込みます。

**** transpileAst(array $ast): string [#kd80040c]
構文解析済みのAST配列を受け取り、PHPコードを返します。

** 使用法 [#u9ba88f8]

*** 基本的な利用例 [#u07dd21f]
#code(php){{
require_once __DIR__ . '/transpiler/transpiler.php';

$transpiler = new Pkript_Transpiler([
    'target'        => 'standard',
    'strict_types'  => true,
    'auto_invoke'   => 'run',
]);

$jsCode = <<<'JS'
function run() {
    let list = [1, 2, 3];
    let doubled = list.map(x => x * 2);
    console.log(doubled);
}
JS;

$phpCode = $transpiler->transpile($jsCode);
echo $phpCode;
}}

----
[[Pkript/トランスパイラ]] | [[Pkript]]