mago_analyzer/plugin/libraries/stdlib/
mod.rs1pub mod array;
4pub mod closure;
5pub mod r#enum;
6pub mod json;
7pub mod random;
8pub mod spl;
9pub mod string;
10pub mod url;
11
12use crate::plugin::Plugin;
13use crate::plugin::PluginMeta;
14use crate::plugin::PluginRegistry;
15
16pub struct StdlibPlugin;
18
19static META: PluginMeta = PluginMeta::new(
20 "stdlib",
21 "PHP Standard Library",
22 "Type providers for PHP built-in functions (strlen, array_*, json_*, etc.)",
23 &["standard", "std", "php-stdlib"],
24 true,
25);
26
27impl Plugin for StdlibPlugin {
28 fn meta(&self) -> &'static PluginMeta {
29 &META
30 }
31
32 fn register(&self, registry: &mut PluginRegistry) {
33 registry.register_function_provider(string::StrlenProvider);
34 registry.register_function_provider(json::JsonEncodeProvider);
35 registry.register_function_provider(random::RandProvider);
36 registry.register_function_provider(random::RandomIntProvider);
37 registry.register_function_provider(random::RandomBytesProvider);
38 registry.register_function_provider(spl::IteratorToArrayProvider);
39 registry.register_function_provider(array::ArrayColumnProvider);
40 registry.register_function_provider(array::ArrayFilterProvider);
41 registry.register_function_provider(array::ArrayMergeProvider);
42 registry.register_function_provider(array::CompactProvider);
43 registry.register_function_provider(url::ParseUrlProvider);
44
45 registry.register_method_provider(closure::ClosureGetCurrentProvider);
46 registry.register_method_provider(r#enum::EnumCasesProvider);
47 }
48}