| Server IP : 104.26.4.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;
use GeminiLabs\SiteReviews\Contracts\HooksContract;
class Hooks implements HooksContract
{
public function run(): void
{
$dir = glsr()->path('plugin/Hooks');
if (!is_dir($dir)) {
return;
}
$iterator = new \DirectoryIterator($dir);
foreach ($iterator as $fileinfo) {
if (!$fileinfo->isFile()) {
continue;
}
try {
$hooks = "GeminiLabs\SiteReviews\Hooks\\{$fileinfo->getBasename('.php')}";
$reflect = new \ReflectionClass($hooks);
if ($reflect->isInstantiable()) {
glsr()->singleton($hooks); // make singleton
glsr($hooks)->run();
glsr($hooks)->runDeferred();
}
} catch (\ReflectionException $e) {
glsr_log()->error($e->getMessage());
}
}
$this->runIntegrations();
}
public function runIntegrations(): void
{
$dir = glsr()->path('plugin/Integrations');
if (!is_dir($dir)) {
return;
}
$iterator = new \DirectoryIterator($dir);
foreach ($iterator as $fileinfo) {
if (!$fileinfo->isDir() || $fileinfo->isDot()) {
continue;
}
try {
$hooks = "GeminiLabs\SiteReviews\Integrations\\{$fileinfo->getBasename()}\Hooks";
$reflect = new \ReflectionClass($hooks);
if ($reflect->isInstantiable()) {
glsr()->singleton($hooks);
add_action('plugins_loaded', function () use ($hooks) {
glsr($hooks)->run();
}, 100); // run integrations late
glsr($hooks)->runDeferred();
}
} catch (\ReflectionException $e) {
glsr_log()->error($e->getMessage());
}
}
}
}