コード例 #1
0
 public function testUpdateWithDeletion()
 {
     TestConfigCleaner::removeExtFile();
     copy(__DIR__ . '/../../data/more-extensions.php', __DIR__ . '/../../testapp/config/extensions.php');
     ExtensionFileWriter::updateConfig();
     $a = $this->checkFile();
     $this->assertEquals(4, count($a));
 }
コード例 #2
0
 /**
  * Updates config.
  * Calculates differences between @vengor/composer/installed.json and ExtensionsManager::$extensionsStorage
  * and writes new ExtensionsManager::$extensionsStorage
  *
  */
 public function actionUpdateConfig()
 {
     $result = (int) (ExtensionFileWriter::updateConfig() !== true);
     if ($result === 0) {
         $this->stdout('Update OK' . PHP_EOL, Console::FG_GREEN);
     } else {
         $this->stderr('Error updating extensions storage: ', Console::FG_RED);
         $this->stderr(ExtensionsManager::module()->extensionsStorage . PHP_EOL);
     }
     return $result;
 }
 /**
  * @param DeferredQueueCompleteEvent $event
  */
 public static function handleEvent($event)
 {
     //else we have unfinished task
     if ($event->queue->exit_code != 0) {
         return;
     }
     /** @var DeferredGroup $group */
     if (null === ($group = DeferredGroup::loadModel($event->queue->deferred_group_id))) {
         return;
     }
     switch ($group->name) {
         case ExtensionsManager::COMPOSER_INSTALL_DEFERRED_GROUP:
         case ExtensionsManager::COMPOSER_UNINSTALL_DEFERRED_GROUP:
             ExtensionFileWriter::updateConfig();
             break;
         default:
             return;
     }
 }
コード例 #4
0
 /**
  * Returns Extension[] or one Extension array by package name found in self::$extensionsStorage.
  *
  * @param string $packageName
  * @param bool $ignoreCache
  * @return Extension|models\Extension[]
  */
 public function getExtensions($packageName = '', $ignoreCache = false)
 {
     if (count($this->_extensions) === 0 || true === $ignoreCache) {
         $fileName = Yii::getAlias($this->extensionsStorage);
         $canLoad = false;
         if (true === file_exists($fileName) && true === is_readable($fileName)) {
             $canLoad = true;
         } else {
             $canLoad = ExtensionFileWriter::generateConfig();
         }
         if (true === $canLoad) {
             $this->_extensions = (include $fileName);
         } else {
             Yii::$app->session->setFlash('error', Yii::t('extensions-manager', 'Unable to create extensions file'));
         }
     }
     if (false === empty($packageName)) {
         return isset($this->_extensions[$packageName]) ? $this->_extensions[$packageName] : [];
     }
     return $this->_extensions;
 }