Expand description
Rust bindings to PHP’s Server API (SAPI) for embedding PHP in Rust applications.
This crate provides a safe interface to execute PHP scripts from Rust, handling the request lifecycle, I/O callbacks, and superglobal population automatically.
§Execution Model
PHP runs in NTS (non-thread-safe) mode with one request executing at a time. Each request gets isolated state that’s cleaned up after execution.
§Example
use ripht_php_sapi::{RiphtSapi, WebRequest};
let php = RiphtSapi::instance();
let script = std::path::Path::new("/var/www/index.php");
let request = WebRequest::get()
.with_uri("/api/users?id=42")
.build(script)
.expect("...");
let result = php.execute(request).expect("execute");
println!("Status: {}, Body: {}", result.status_code(), result.body_string());Re-exports§
pub use adapters::AdapterError;pub use adapters::CliRequest;pub use adapters::CliRequestError;pub use adapters::Method;pub use adapters::PhpSapiAdapter;pub use adapters::WebRequest;pub use adapters::WebRequestError;pub use execution::ExecutionContext;pub use execution::ExecutionHooks;pub use execution::ExecutionMessage;pub use execution::ExecutionResult;pub use execution::NoOpHooks;pub use execution::OutputAction;pub use execution::ResponseHeader;pub use execution::StreamingCallback;pub use execution::SyslogLevel;pub use adapters::from_http_parts;pub use adapters::from_http_request;
Modules§
Structs§
- Executor
- Executes PHP scripts within an initialized SAPI.
- Ripht
Sapi - PHP SAPI instance. Initialize once, execute scripts repeatedly.
Enums§
- Execution
Error - Errors that can occur during PHP script execution.
- Sapi
Error - Errors from SAPI initialization and configuration.