/** * @param SharedPackageInstallerConfig $config */ public function __construct(SharedPackageInstallerConfig $config) { $packageList = $config->getPackageList(); foreach ($packageList as $packageName) { if ('*' === $packageName) { $this->areAllShared = true; } } if (!$this->areAllShared) { $this->packageCallbacks = $this->createCallbacks($packageList); } }
/** * @param PackageInterface $package * * @throws FilesystemException */ protected function removePackageVendorSymlink(PackageInterface $package) { if ($this->config->isSymlinkEnabled() && $this->filesystem->removeSymlink($this->getPackageVendorSymlink($package))) { $this->io->write(array(' - Deleting symlink for <info>' . $package->getPrettyName() . '</info> ' . '(<fg=yellow>' . $package->getPrettyVersion() . '</fg=yellow>)', '')); $symlinkParentDirectory = dirname($this->getPackageVendorSymlink($package)); $this->filesystem->removeEmptyDirectory($symlinkParentDirectory); } }
/** * @test */ public function isSharedPackageWithPackageList() { $this->config->expects($this->once())->method('getPackageList')->willReturn(array('foo/bar', 'bar/*')); $solver = $this->createSolver(); // False $this->assertFalse($solver->isSharedPackage($this->createPackageMock('unknown/unknown'))); // True // Package with "shared-package" type $this->assertTrue($solver->isSharedPackage($this->createPackageMock('unknown/unknown', SharedPackageInstaller::PACKAGE_TYPE))); // Packages in the package list $this->assertTrue($solver->isSharedPackage($this->createPackageMock('foo/bar'))); $this->assertTrue($solver->isSharedPackage($this->createPackageMock('bar/foo'))); }