aboutsummaryrefslogtreecommitdiffhomepage
path: root/crates
diff options
context:
space:
mode:
authornsfisis <nsfisis@gmail.com>2026-05-15 23:02:16 +0900
committernsfisis <nsfisis@gmail.com>2026-05-16 10:00:39 +0900
commit8142c4b61eef2047148b331550a413e532e7bd33 (patch)
tree2e67d29baf70c493108d5667c820642ba482dc7e /crates
parent4bd01675e90f55d41063a010a22806d3f73013a1 (diff)
downloadphp-shirabe-8142c4b61eef2047148b331550a413e532e7bd33.tar.gz
php-shirabe-8142c4b61eef2047148b331550a413e532e7bd33.tar.zst
php-shirabe-8142c4b61eef2047148b331550a413e532e7bd33.zip
feat(port): port Runtime.php
Diffstat (limited to 'crates')
-rw-r--r--crates/shirabe-php-shim/src/lib.rs24
-rw-r--r--crates/shirabe/src/platform/runtime.rs48
2 files changed, 72 insertions, 0 deletions
diff --git a/crates/shirabe-php-shim/src/lib.rs b/crates/shirabe-php-shim/src/lib.rs
index e85f665..ad408ec 100644
--- a/crates/shirabe-php-shim/src/lib.rs
+++ b/crates/shirabe-php-shim/src/lib.rs
@@ -493,3 +493,27 @@ pub fn array_merge(array1: PhpMixed, array2: PhpMixed) -> PhpMixed {
pub fn substr_replace(string: &str, replace: &str, start: usize, length: usize) -> String {
todo!()
}
+
+pub fn constant(name: &str) -> PhpMixed {
+ todo!()
+}
+
+pub fn get_loaded_extensions() -> Vec<String> {
+ todo!()
+}
+
+pub fn phpversion(extension: &str) -> Option<String> {
+ todo!()
+}
+
+pub fn ob_start() -> bool {
+ todo!()
+}
+
+pub fn ob_get_clean() -> Option<String> {
+ todo!()
+}
+
+pub fn html_entity_decode(s: &str) -> String {
+ todo!()
+}
diff --git a/crates/shirabe/src/platform/runtime.rs b/crates/shirabe/src/platform/runtime.rs
index 246774c..4c9c3f5 100644
--- a/crates/shirabe/src/platform/runtime.rs
+++ b/crates/shirabe/src/platform/runtime.rs
@@ -1 +1,49 @@
//! ref: composer/src/Composer/Platform/Runtime.php
+
+use anyhow::Result;
+use shirabe_php_shim::PhpMixed;
+
+#[derive(Debug)]
+pub struct Runtime;
+
+impl Runtime {
+ pub fn has_constant(&self, constant_name: &str, class: Option<&str>) -> bool {
+ todo!()
+ }
+
+ pub fn get_constant(&self, constant_name: &str, class: Option<&str>) -> PhpMixed {
+ todo!()
+ }
+
+ pub fn has_function(&self, f: &str) -> bool {
+ todo!()
+ }
+
+ pub fn invoke(&self, callable: Box<dyn Fn(Vec<PhpMixed>) -> PhpMixed>, arguments: Vec<PhpMixed>) -> PhpMixed {
+ todo!()
+ }
+
+ pub fn has_class(&self, class: &str) -> bool {
+ todo!()
+ }
+
+ pub fn construct(&self, class: &str, arguments: Vec<PhpMixed>) -> Result<PhpMixed> {
+ todo!()
+ }
+
+ pub fn get_extensions(&self) -> Vec<String> {
+ todo!()
+ }
+
+ pub fn get_extension_version(&self, extension: &str) -> String {
+ todo!()
+ }
+
+ pub fn get_extension_info(&self, extension: &str) -> Result<String> {
+ todo!()
+ }
+
+ pub fn parse_html_extension_info(html: &str) -> String {
+ todo!()
+ }
+}