getOperation(); if (!method_exists($operation, 'getPackage')) { return; } $installedPackage = $operation->getPackage(); if ($installedPackage->getName() !== 'wpackagist-plugin/wp-redis') { return; } $io = $event->getIO(); if (is_link(static::$objectCacheFilePath)) { $io->write('Symlink for object-cache.php already exists.'); return; } try { $result = symlink( './plugins/wp-redis/object-cache.php', static::$objectCacheFilePath, ); if (!$result) { throw new Exception(); } } catch (\Exception $e) { $io->writeError('Could not create object-cache.php symlink.'); return; } $io->write('Created object-cache.php symlink for wp-redis.'); } /** * Remove the object-cache.php symlink when wp-redis is uninstalled. * * @param PackageEvent $event The event being executed. * @return void */ public static function removeObjectCacheSymlink(PackageEvent $event): void { $installedPackage = $event->getOperation()->getPackage(); if ($installedPackage->getName() !== 'wpackagist-plugin/wp-redis') { return; } $io = $event->getIO(); try { $result = unlink(static::$objectCacheFilePath); if (!$result) { throw new \Exception(); } } catch (\Exception $e) { $io->writeError('Failed to remove object-cache.php symlink. It may have already been removed.'); return; } $io->write('Created object-cache.php symlink for wp-redis.'); } }