| Server IP : 104.26.5.103 / Your IP : 216.73.216.4 Web Server : nginx/1.27.1 System : Linux in-5 5.15.0-143-generic #153-Ubuntu SMP Fri Jun 13 19:10:45 UTC 2025 x86_64 User : arabianexpress ( 1872) PHP Version : 8.0.30 Disable Function : exec,passthru,shell_exec,system,proc_open,popen,parse_ini_file,show_source MySQL : OFF | cURL : ON | WGET : OFF | Perl : OFF | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : /storage/v9321/rimskannur/public_html/wp-content/plugins/site-reviews/plugin/ |
Upload File : |
<?php
namespace GeminiLabs\SiteReviews;
trait HookProxy
{
/**
* Proxy for WordPress defined filter/action callbacks.
*
* Since we cannot ensure third-party code will pass the correct data declared
* by WordPress, this function allows us to maintain parameter type hints and
* prevents fatal errors without introducing complexity. If something goes wrong,
* the error is logged to the Site Reviews console.
*/
public function proxy(string $method): callable
{
$reflection = new \ReflectionMethod($this, $method);
if (!$reflection->isPublic()) {
throw new \BadMethodCallException("Method [{$method}] is either not public or does not exist.");
}
$callback = [$this, $method];
return static function (...$args) use ($callback, $method) {
try {
return call_user_func_array($callback, $args);
} catch (\TypeError $error) {
glsr_log()->error($error->getMessage())->debug($error);
// if (defined('WP_DEBUG') && \WP_DEBUG) {
// throw $error;
// }
}
if (str_starts_with($method, 'filter')) {
return array_shift($args); // return the unmodified first argument
}
};
}
}