aboutsummaryrefslogtreecommitdiffhomepage
path: root/crates/shirabe/src
diff options
context:
space:
mode:
authornsfisis <nsfisis@gmail.com>2026-07-02 05:12:39 +0900
committernsfisis <nsfisis@gmail.com>2026-07-02 05:12:39 +0900
commit7fd7df848cdbbd8792b0043799018d51408458fc (patch)
tree28aeeef87c3d86a662ed1328b53b1a2865df2c6d /crates/shirabe/src
parenteab3a31c5750013c53c0eb02adc976d6757dc9f7 (diff)
downloadphp-shirabe-7fd7df848cdbbd8792b0043799018d51408458fc.tar.gz
php-shirabe-7fd7df848cdbbd8792b0043799018d51408458fc.tar.zst
php-shirabe-7fd7df848cdbbd8792b0043799018d51408458fc.zip
feat(php-rpc): implement Runtime::has_constant/get_constant via php-rpc
Runtime::hasConstant/getConstant need a real PHP interpreter's defined()/ constant() to answer platform requirement checks (e.g. PHP_ZTS, PHP_INT_SIZE), which the shim can't provide since Rust constants aren't queryable by string. Extend shirabe-php-rpc's protocol to carry one string argument and return the full PHP scalar range, add defined/constant dispatch entries to the worker, and wire Runtime and get_php_version/get_php_binary onto them.
Diffstat (limited to 'crates/shirabe/src')
-rw-r--r--crates/shirabe/src/platform/runtime.rs8
1 files changed, 4 insertions, 4 deletions
diff --git a/crates/shirabe/src/platform/runtime.rs b/crates/shirabe/src/platform/runtime.rs
index 255aa9d..e4ff64a 100644
--- a/crates/shirabe/src/platform/runtime.rs
+++ b/crates/shirabe/src/platform/runtime.rs
@@ -3,8 +3,8 @@
use indexmap::IndexMap;
use shirabe_external_packages::composer::pcre::{CaptureKey, Preg};
use shirabe_php_shim::{
- PhpMixed, class_exists, constant, defined, function_exists, get_loaded_extensions,
- html_entity_decode, implode, instantiate_class, ltrim, phpversion, strip_tags, trim,
+ PhpMixed, class_exists, function_exists, get_loaded_extensions, html_entity_decode, implode,
+ instantiate_class, ltrim, phpversion, strip_tags, trim,
};
/// Seam over the PHP runtime so PlatformRepository can be tested against mocked
@@ -29,14 +29,14 @@ pub struct Runtime;
impl RuntimeInterface for Runtime {
fn has_constant(&self, constant_name: &str, class: Option<String>) -> bool {
- defined(&ltrim(
+ shirabe_php_rpc::has_constant(&ltrim(
&format!("{}::{}", class.as_deref().unwrap_or(""), constant_name),
Some(":"),
))
}
fn get_constant(&self, constant_name: &str, class: Option<String>) -> PhpMixed {
- constant(&ltrim(
+ shirabe_php_rpc::get_constant(&ltrim(
&format!("{}::{}", class.as_deref().unwrap_or(""), constant_name),
Some(":"),
))