Crate ripht_php_sapi

Crate ripht_php_sapi 

Source
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§

adapters
execution
prelude

Structs§

Executor
Executes PHP scripts within an initialized SAPI.
RiphtSapi
PHP SAPI instance. Initialize once, execute scripts repeatedly.

Enums§

ExecutionError
Errors that can occur during PHP script execution.
SapiError
Errors from SAPI initialization and configuration.