aboutsummaryrefslogtreecommitdiffhomepage
path: root/crates/shirabe-php-rpc
diff options
context:
space:
mode:
Diffstat (limited to 'crates/shirabe-php-rpc')
-rw-r--r--crates/shirabe-php-rpc/php/worker.php5
-rw-r--r--crates/shirabe-php-rpc/src/lib.rs8
2 files changed, 13 insertions, 0 deletions
diff --git a/crates/shirabe-php-rpc/php/worker.php b/crates/shirabe-php-rpc/php/worker.php
index cb2bf48d..d7d8f251 100644
--- a/crates/shirabe-php-rpc/php/worker.php
+++ b/crates/shirabe-php-rpc/php/worker.php
@@ -22,6 +22,11 @@ $dispatch = [
$re->info();
return (string) ob_get_clean();
},
+ 'phpinfo' => static function ($what) {
+ ob_start();
+ phpinfo((int) $what);
+ return (string) ob_get_clean();
+ },
];
$read_exact = static function ($conn, int $len): ?string {
$buf = '';
diff --git a/crates/shirabe-php-rpc/src/lib.rs b/crates/shirabe-php-rpc/src/lib.rs
index d5d1dafa..9ba02629 100644
--- a/crates/shirabe-php-rpc/src/lib.rs
+++ b/crates/shirabe-php-rpc/src/lib.rs
@@ -58,6 +58,14 @@ pub fn get_extension_info(name: &str) -> String {
}
}
+/// PHP `phpinfo($what)` output, captured via `ob_start()`/`ob_get_clean()`.
+pub fn get_phpinfo(what: i64) -> String {
+ match call("phpinfo", &what.to_string()) {
+ PhpMixed::String(s) => s,
+ other => panic!("PHP RPC: `phpinfo` did not return a string: {other:?}"),
+ }
+}
+
/// PHP `phpversion($extension)`.
pub fn phpversion(extension: &str) -> Option<String> {
match call("phpversion", extension) {