getComposer(); $extra = $composer->getPackage()->getExtra(); $servicesToKeep = isset($extra['google/apiclient-services']) ? $extra['google/apiclient-services'] : []; if ($servicesToKeep) { $vendorDir = $composer->getConfig()->get('vendor-dir'); $serviceDir = \sprintf('%s/google/apiclient-services/src/Google/Service', $vendorDir); if (!\is_dir($serviceDir)) { // path for google/apiclient-services >= 0.200.0 $serviceDir = \sprintf('%s/google/apiclient-services/src', $vendorDir); } self::verifyServicesToKeep($serviceDir, $servicesToKeep); $finder = self::getServicesToRemove($serviceDir, $servicesToKeep); $filesystem = $filesystem ?: new \Google\Site_Kit_Dependencies\Symfony\Component\Filesystem\Filesystem(); if (0 !== ($count = \count($finder))) { $event->getIO()->write(\sprintf('Removing %s google services', $count)); foreach ($finder as $file) { $realpath = $file->getRealPath(); $filesystem->remove($realpath); $filesystem->remove($realpath . '.php'); } } } } /** * @throws InvalidArgumentException when the service doesn't exist */ private static function verifyServicesToKeep($serviceDir, a