public function VendorHardeningPlugin::cleanAllPackages in Drupal 8
Same name and namespace in other branches
- 9 composer/Plugin/VendorHardening/VendorHardeningPlugin.php \Drupal\Composer\Plugin\VendorHardening\VendorHardeningPlugin::cleanAllPackages()
- 10 composer/Plugin/VendorHardening/VendorHardeningPlugin.php \Drupal\Composer\Plugin\VendorHardening\VendorHardeningPlugin::cleanAllPackages()
Clean all configured packages.
This applies in the context of a post-command event.
Parameters
string $vendor_dir: Path to vendor directory
1 call to VendorHardeningPlugin::cleanAllPackages()
- VendorHardeningPlugin::onPostCmd in composer/
Plugin/ VendorHardening/ VendorHardeningPlugin.php - POST_UPDATE_CMD and POST_INSTALL_CMD event handler.
File
- composer/
Plugin/ VendorHardening/ VendorHardeningPlugin.php, line 265
Class
- VendorHardeningPlugin
- A Composer plugin to clean out your project's vendor directory.
Namespace
Drupal\Composer\Plugin\VendorHardeningCode
public function cleanAllPackages($vendor_dir) {
// Get a list of all the packages available after the update or install
// command.
$installed_packages = [];
foreach ($this
->getInstalledPackages() as $package) {
// Normalize package names to lower case.
$installed_packages[strtolower($package
->getName())] = $package;
}
// Get all the packages that we should clean up but haven't already.
$cleanup_packages = array_diff_key($this->config
->getAllCleanupPaths(), $this->packagesAlreadyCleaned);
// Get all the packages that are installed that we should clean up.
$packages_to_be_cleaned = array_intersect_key($cleanup_packages, $installed_packages);
if (!$packages_to_be_cleaned) {
$this->io
->writeError('<info>Vendor directory already clean.</info>');
return;
}
$this->io
->writeError('<info>Cleaning vendor directory.</info>');
foreach ($packages_to_be_cleaned as $package_name => $paths_for_package) {
$this
->cleanPathsForPackage($vendor_dir, $package_name, $paths_for_package);
}
}