Closed luffe339 closed 3 months ago
get_method 方法不存在
有一个思路,你可以尝试一下(我没试过):
https://docs.rs/phper-sys/0.13.1/phper_sys/type.zend_class_entry.html
修改zend_class_entry.constructor.internal_function.handler
有一个思路,你可以尝试一下(我没试过):
https://docs.rs/phper-sys/0.13.1/phper_sys/type.zend_class_entry.html
修改zend_class_entry.constructor.internal_function.handler 好的,谢谢,我试试,刚学rust
// 从全局查找 PHP 的 PDO 类 if let Ok(pdo_class) = ClassEntry::from_globals("PDO") { // 获取原始的 PDO 构造函数 if let Ok(original_constructor) = pdo_class.get_method("construct", Visibility::Public) { // 添加一个新的 construct 方法 pdo_class.add_method("_construct", Visibility::Public, move |this, arguments, | { // 进行自定义逻辑,比如拦截 PDO 数据库连接信息 if let Some(arg0) = arguments.get(0) { let dsn = arg0.as_str().unwrap_or(""); println!("Intercepted PDO::__construct with DSN: {}", dsn); }