Neos\Flow\Package\PackageManager::deactivatePackage PHP Метод

deactivatePackage() публичный Метод

Deactivates a package
public deactivatePackage ( string $packageKey ) : void
$packageKey string The package to deactivate
Результат void
    public function deactivatePackage($packageKey)
    {
        if (!$this->isPackageActive($packageKey)) {
            return;
        }
        $package = $this->getPackage($packageKey);
        if ($package->isProtected()) {
            throw new Exception\ProtectedPackageKeyException('The package "' . $packageKey . '" is protected and cannot be deactivated.', 1308662891);
        }
        unset($this->activePackages[$packageKey]);
        $composerName = $package->getComposerName();
        $this->movePackageToDeactivatedPackages($package->getPackagePath());
        $this->packageStatesConfiguration['packages'][$composerName]['state'] = self::PACKAGE_STATE_INACTIVE;
        $this->packageStatesConfiguration['packages'][$composerName]['packagePath'] = $this->buildInactivePackageRelativePath($package->getPackagePath());
        $this->registerPackageFromStateConfiguration($composerName, $this->packageStatesConfiguration['packages'][$composerName]);
        $this->savePackageStates($this->packageStatesConfiguration);
    }

Usage Example

 /**
  * @test
  */
 public function deactivatePackageEmitsPackageStatesUpdatedSignal()
 {
     $this->packageManager->createPackage('Some.Package');
     $this->mockDispatcher->expects($this->once())->method('dispatch')->with(PackageManager::class, 'packageStatesUpdated');
     $this->packageManager->deactivatePackage('Some.Package');
 }