diff --git a/composer/Plugin/VendorHardening/VendorHardeningPlugin.php b/composer/Plugin/VendorHardening/VendorHardeningPlugin.php index 285e92d2713f840d75a4dd9d8c38bdc2c97401ce..a7815c5db738b056219f3059c6596a81a4b5846d 100644 --- a/composer/Plugin/VendorHardening/VendorHardeningPlugin.php +++ b/composer/Plugin/VendorHardening/VendorHardeningPlugin.php @@ -1,5 +1,7 @@ <?php +declare(strict_types=1); + namespace Drupal\Composer\Plugin\VendorHardening; use Composer\Composer; @@ -58,7 +60,7 @@ class VendorHardeningPlugin implements PluginInterface, EventSubscriberInterface /** * {@inheritdoc} */ - public function activate(Composer $composer, IOInterface $io) { + public function activate(Composer $composer, IOInterface $io): void { $this->composer = $composer; $this->io = $io; @@ -69,19 +71,19 @@ public function activate(Composer $composer, IOInterface $io) { /** * {@inheritdoc} */ - public function deactivate(Composer $composer, IOInterface $io) { + public function deactivate(Composer $composer, IOInterface $io): void { } /** * {@inheritdoc} */ - public function uninstall(Composer $composer, IOInterface $io) { + public function uninstall(Composer $composer, IOInterface $io): void { } /** * {@inheritdoc} */ - public static function getSubscribedEvents() { + public static function getSubscribedEvents(): array { return [ ScriptEvents::POST_AUTOLOAD_DUMP => 'onPostAutoloadDump', ScriptEvents::POST_UPDATE_CMD => 'onPostCmd', @@ -99,7 +101,7 @@ public static function getSubscribedEvents() { * @param \Composer\Script\Event $event * The Composer event. */ - public function onPostAutoloadDump(Event $event) { + public function onPostAutoloadDump(Event $event): void { $this->writeAccessRestrictionFiles($this->composer->getConfig()->get('vendor-dir')); } @@ -109,7 +111,7 @@ public function onPostAutoloadDump(Event $event) { * @param \Composer\Script\Event $event * The Composer event. */ - public function onPostCmd(Event $event) { + public function onPostCmd(Event $event): void { $this->cleanAllPackages(); } @@ -119,7 +121,7 @@ public function onPostCmd(Event $event) { * @param \Composer\Installer\PackageEvent $event * The package event. */ - public function onPrePackageInstall(PackageEvent $event) { + public function onPrePackageInstall(PackageEvent $event): void { /** @var \Composer\Package\CompletePackage $package */ $package = $event->getOperation()->getPackage(); $this->removeBinBeforeCleanup($package); @@ -131,7 +133,7 @@ public function onPrePackageInstall(PackageEvent $event) { * @param \Composer\Installer\PackageEvent $event * The package event. */ - public function onPrePackageUpdate(PackageEvent $event) { + public function onPrePackageUpdate(PackageEvent $event): void { /** @var \Composer\Package\CompletePackage $package */ $package = $event->getOperation()->getTargetPackage(); $this->removeBinBeforeCleanup($package); @@ -143,7 +145,7 @@ public function onPrePackageUpdate(PackageEvent $event) { * @param \Composer\Installer\PackageEvent $event * The package event. */ - public function onPostPackageInstall(PackageEvent $event) { + public function onPostPackageInstall(PackageEvent $event): void { $this->cleanPackage($event->getOperation()->getPackage()); } @@ -153,7 +155,7 @@ public function onPostPackageInstall(PackageEvent $event) { * @param \Composer\Installer\PackageEvent $event * The package event. */ - public function onPostPackageUpdate(PackageEvent $event) { + public function onPostPackageUpdate(PackageEvent $event): void { $this->cleanPackage($event->getOperation()->getTargetPackage()); } @@ -166,7 +168,7 @@ public function onPostPackageUpdate(PackageEvent $event) { * @param \Composer\Package\BasePackage $package * The package we're cleaning up. */ - protected function removeBinBeforeCleanup(BasePackage $package) { + protected function removeBinBeforeCleanup(BasePackage $package): void { // We can process AliasPackage and Package objects, and they share the // BasePackage parent class. However, since there is no common interface for // these package types that allow for the setBinaries() method, and since @@ -208,7 +210,7 @@ protected function removeBinBeforeCleanup(BasePackage $package) { * @return string[] * Bin files to remove, with the file as both the key and the value. */ - protected function findBinOverlap($binaries, $clean_paths) { + protected function findBinOverlap(array $binaries, array $clean_paths): array { // Make a filesystem model to explore. This is a keyed array that looks like // all the places that will be removed by cleanup. 'tests/src' becomes // $filesystem['tests']['src'] = TRUE; @@ -250,7 +252,7 @@ protected function findBinOverlap($binaries, $clean_paths) { * @return \Composer\Package\PackageInterface[] * The list of installed packages. */ - protected function getInstalledPackages() { + protected function getInstalledPackages(): array { return $this->composer->getRepositoryManager()->getLocalRepository()->getPackages(); } @@ -264,7 +266,7 @@ protected function getInstalledPackages() { * Path to the install path for the package, relative to the project. This * accounts for changes made by composer/installers, if any. */ - protected function getInstallPathForPackage(PackageInterface $package) { + protected function getInstallPathForPackage(PackageInterface $package): string { return $this->composer->getInstallationManager()->getInstallPath($package); } @@ -273,7 +275,7 @@ protected function getInstallPathForPackage(PackageInterface $package) { * * This applies in the context of a post-command event. */ - public function cleanAllPackages() { + public function cleanAllPackages(): void { // Get a list of all the packages available after the update or install // command. $installed_packages = []; @@ -309,7 +311,7 @@ public function cleanAllPackages() { * @param \Composer\Package\PackageInterface $package * The package to clean. */ - public function cleanPackage(PackageInterface $package) { + public function cleanPackage(PackageInterface $package): void { // Normalize package names to lower case. $package_name = strtolower($package->getName()); if (isset($this->packagesAlreadyCleaned[$package_name])) { @@ -332,7 +334,7 @@ public function cleanPackage(PackageInterface $package) { * @param string $paths_for_package * List of directories in $package_name to remove */ - protected function cleanPathsForPackage(PackageInterface $package, $paths_for_package) { + protected function cleanPathsForPackage(PackageInterface $package, $paths_for_package): void { // Whatever happens here, this package counts as cleaned so that we don't // process it more than once. $package_name = strtolower($package->getName()); @@ -373,7 +375,7 @@ protected function cleanPathsForPackage(PackageInterface $package, $paths_for_pa * @param string $vendor_dir * Path to vendor directory. */ - public function writeAccessRestrictionFiles($vendor_dir) { + public function writeAccessRestrictionFiles(string $vendor_dir): void { $this->io->writeError('<info>Hardening vendor directory with .htaccess and web.config files.</info>'); // Prevent access to vendor directory on Apache servers. FileSecurity::writeHtaccess($vendor_dir, TRUE); diff --git a/core/.deprecation-ignore.txt b/core/.deprecation-ignore.txt index 34c1eed83a7ff13eafbbc8e7249e660cb2f106bc..92d3da6177c9b789129312147ff952e7ae2c7916 100644 --- a/core/.deprecation-ignore.txt +++ b/core/.deprecation-ignore.txt @@ -7,8 +7,6 @@ # Skip some dependencies' DebugClassLoader forward compatibility warnings. %Method "Behat\\[^"]+" might add "[^"]+" as a native return type declaration in the future. Do the same in (child class|implementation) "[^"]+" now to avoid errors or add an explicit @return annotation to suppress this message% -%Method "Composer\\EventDispatcher\\EventSubscriberInterface::getSubscribedEvents\(\)" might add "[^"]+" as a native return type declaration in the future. Do the same in (child class|implementation) "[^"]+" now to avoid errors or add an explicit @return annotation to suppress this message% -%Method "Composer\\Plugin\\PluginInterface::(activate|deactivate|uninstall)\(\)" might add "[^"]+" as a native return type declaration in the future. Do the same in (child class|implementation) "[^"]+" now to avoid errors or add an explicit @return annotation to suppress this message% %Method "Doctrine\\Common\\Annotations\\Reader::[^"]+" might add "[^"]+" as a native return type declaration in the future. Do the same in (child class|implementation) "[^"]+" now to avoid errors or add an explicit @return annotation to suppress this message% %Method "Twig\\Extension\\ExtensionInterface::[^"]+" might add "[^"]+" as a native return type declaration in the future. Do the same in (child class|implementation) "[^"]+" now to avoid errors or add an explicit @return annotation to suppress this message% %Method "Twig\\Loader\\FilesystemLoader::findTemplate\(\)" might add "[^"]+" as a native return type declaration in the future. Do the same in (child class|implementation) "[^"]+" now to avoid errors or add an explicit @return annotation to suppress this message%