pub struct PhpConfig {
pub extension_name: Option<String>,
pub feature_gate: Option<String>,
pub stubs: Option<StubsConfig>,
pub features: Option<Vec<String>>,
pub serde_rename_all: Option<String>,
pub exclude_functions: Vec<String>,
pub exclude_types: Vec<String>,
pub extra_dependencies: HashMap<String, Value>,
pub scaffold_output: Option<PathBuf>,
pub rename_fields: HashMap<String, String>,
pub run_wrapper: Option<String>,
pub extra_lint_paths: Vec<String>,
}Fields§
§extension_name: Option<String>§feature_gate: Option<String>Feature gate for ext-php-rs (default: “extension-module”).
All generated code is wrapped in #[cfg(feature = "...")].
stubs: Option<StubsConfig>Output directory for generated PHP facade / stubs (e.g., packages/php/src/).
features: Option<Vec<String>>§serde_rename_all: Option<String>Override the serde rename_all strategy for JSON field names (e.g. “camelCase”, “snake_case”). When set, this takes priority over the IR type-level serde_rename_all.
exclude_functions: Vec<String>Functions to exclude from PHP binding generation.
exclude_types: Vec<String>Types to exclude from PHP binding generation.
extra_dependencies: HashMap<String, Value>Additional Cargo dependencies for this language’s binding crate only.
scaffold_output: Option<PathBuf>Override the scaffold output directory for this language’s Cargo.toml and package files.
rename_fields: HashMap<String, String>Per-field name remapping for this language. Key is TypeName.field_name, value is the
desired binding field name. Applied after automatic keyword escaping.
run_wrapper: Option<String>Prefix wrapper for default tool invocations. When set, prepends this string to default commands across all pipelines (lint, test, build, etc.).
extra_lint_paths: Vec<String>Extra paths to append to default lint commands (format, check, typecheck).