Skip to content

Commit 45cf96a

Browse files
committed
Allow overwriting wordpress-core type packages
1 parent cfe149c commit 45cf96a

File tree

3 files changed

+19
-1
lines changed

3 files changed

+19
-1
lines changed

composer.json

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,9 @@
4141
"conflict": {
4242
"composer/installers": "<1.0.6"
4343
},
44+
"replace": {
45+
"johnpbloch/wordpress-core-installer":"*"
46+
},
4447
"scripts": {
4548
"test:phpunit": "phpunit",
4649
"test": [

src/johnpbloch/Composer/WordPressCoreInstaller.php

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,8 @@ public function getInstallPath( PackageInterface $package ) {
6767
}
6868
if (
6969
! empty( self::$_installedPaths[ $installationDir ] ) &&
70-
$prettyName !== self::$_installedPaths[ $installationDir ]
70+
$prettyName !== self::$_installedPaths[ $installationDir ] &&
71+
$package->getType() !== self::TYPE
7172
) {
7273
$conflict_message = $this->getConflictMessage( $prettyName, self::$_installedPaths[ $installationDir ] );
7374
throw new \InvalidArgumentException( $conflict_message );

tests/phpunit/WordPressCoreInstallerTest.php

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -136,6 +136,20 @@ public function testTwoPackagesCannotShareDirectory() {
136136
$installer->getInstallPath( $package1 );
137137
$installer->getInstallPath( $package2 );
138138
}
139+
140+
public function testTwoPackagesCannotShareDirectoryUnlessWpCoreType() {
141+
$composer = $this->createComposer();
142+
$installer = new WordPressCoreInstaller( new NullIO(), $composer );
143+
$package1 = new Package( 'johnpbloch/wordpress', '4.9.8', '4.9.8' );
144+
$package1->setType('wordpress-core');
145+
$package2 = new Package( 'roots/wordpress', '5.0', '5.0' );
146+
$package2->setType('wordpress-core');
147+
148+
$installer->getInstallPath( $package1 );
149+
$installer->getInstallPath( $package2 );
150+
151+
$this->assertTrue(true); // no exceptions thrown
152+
}
139153

140154
/**
141155
* @dataProvider dataProviderSensitiveDirectories

0 commit comments

Comments
 (0)