diff --git a/src/Downloader.php b/src/Downloader.php
index a2b23ba..0d798a2 100644
--- a/src/Downloader.php
+++ b/src/Downloader.php
@@ -52,9 +52,10 @@ public function downloadPatch(Patch $patch)
}
foreach ($this->getDownloaders() as $downloader) {
- if (in_array(get_class($downloader), $this->disabledDownloaders, true)) {
+ $class = "\\" . get_class($downloader);
+ if (in_array($class, $this->disabledDownloaders, true)) {
$this->io->write(
- ' - Skipping downloader ' . get_class($downloader) . '',
+ ' - Skipping downloader ' . $class . '',
true,
IOInterface::VERBOSE
);
diff --git a/src/Patcher.php b/src/Patcher.php
index ce7114a..35f4fd5 100644
--- a/src/Patcher.php
+++ b/src/Patcher.php
@@ -41,9 +41,10 @@ public function __construct(Composer $composer, IOInterface $io, array $disabled
public function applyPatch(Patch $patch, string $path): bool
{
foreach ($this->getPatchers() as $patcher) {
- if (in_array(get_class($patcher), $this->disabledPatchers, true)) {
+ $class = "\\" . get_class($patcher);
+ if (in_array($class, $this->disabledPatchers, true)) {
$this->io->write(
- ' - Skipping patcher ' . get_class($patcher) . '',
+ ' - Skipping patcher ' . $class . '',
true,
IOInterface::VERBOSE
);
diff --git a/src/Resolver.php b/src/Resolver.php
index b1d9630..1824303 100644
--- a/src/Resolver.php
+++ b/src/Resolver.php
@@ -45,9 +45,11 @@ public function loadFromResolvers(): PatchCollection
// Let each resolver discover patches and add them to the PatchCollection.
/** @var ResolverInterface $resolver */
foreach ($this->getPatchResolvers() as $resolver) {
- if (in_array(get_class($resolver), $this->disabledResolvers, true)) {
+ $class = "\\" . get_class($resolver);
+
+ if (in_array($class, $this->disabledResolvers, true)) {
$this->io->write(
- ' - Skipping resolver ' . get_class($resolver) . '',
+ ' - Skipping resolver ' . $class . '',
true,
IOInterface::VERBOSE
);
diff --git a/tests/_data/fixtures/disable-dependency-patches/composer.json b/tests/_data/fixtures/disable-dependency-patches/composer.json
new file mode 100644
index 0000000..7c13947
--- /dev/null
+++ b/tests/_data/fixtures/disable-dependency-patches/composer.json
@@ -0,0 +1,33 @@
+{
+ "name": "cweagans/composer-patches-test-project",
+ "description": "Project for use in cweagans/composer-patches acceptance tests.",
+ "type": "project",
+ "license": "BSD-3-Clause",
+ "repositories": [
+ {
+ "type": "path",
+ "url": "../../../../"
+ },
+ {
+ "type": "path",
+ "url": "../../dep-test-package"
+ }
+ ],
+ "require": {
+ "cweagans/composer-patches": "*@dev",
+ "cweagans/composer-patches-testrepo": "~1.0",
+ "cweagans/dep-test-package": "*@dev"
+ },
+ "config": {
+ "allow-plugins": {
+ "cweagans/composer-patches": true
+ }
+ },
+ "extra": {
+ "composer-patches": {
+ "disable-resolvers": [
+ "\\cweagans\\Composer\\Resolver\\Dependencies"
+ ]
+ }
+ }
+}
diff --git a/tests/_data/fixtures/no-patchers-available/composer.json b/tests/_data/fixtures/no-patchers-available/composer.json
index c0555c9..2b68989 100644
--- a/tests/_data/fixtures/no-patchers-available/composer.json
+++ b/tests/_data/fixtures/no-patchers-available/composer.json
@@ -16,11 +16,9 @@
"extra": {
"composer-patches": {
"disable-patchers": [
- "cweagans\\Composer\\Patcher\\BsdPatchPatcher",
- "cweagans\\Composer\\Patcher\\GitPatcher",
- "cweagans\\Composer\\Patcher\\GitInitPatcher",
- "cweagans\\Composer\\Patcher\\GnuGPatchPatcher",
- "cweagans\\Composer\\Patcher\\GnuPatchPatcher"
+ "\\cweagans\\Composer\\Patcher\\FreeformPatcher",
+ "\\cweagans\\Composer\\Patcher\\GitPatcher",
+ "\\cweagans\\Composer\\Patcher\\GitInitPatcher"
]
},
"patches": {
diff --git a/tests/acceptance/DisableDependencyPatchesCept.php b/tests/acceptance/DisableDependencyPatchesCept.php
new file mode 100644
index 0000000..8e30932
--- /dev/null
+++ b/tests/acceptance/DisableDependencyPatchesCept.php
@@ -0,0 +1,17 @@
+wantTo('disable resolving patches from dependencies (and test disabling resolvers in general)');
+$I->amInPath(codecept_data_dir('fixtures/disable-dependency-patches'));
+$I->runComposerCommand('install', ['-vvv']);
+$I->dontSeeInComposerOutput('Resolving patches from dependencies');
+$I->dontSeeInComposerOutput('Patching cweagans/commposer-patches-testrepo');
+$I->dontSeeFileFound('OneMoreTest.php', 'vendor/cweagans/composer-patches-testrepo/src');
+$I->openFile('patches.lock.json');
+$I->seeInThisFile('6142bfcb78f54dfbf5247ae5e463f25bdb8fff1890806e2e45aa81a59c211653');