예제 #1
0
 /**
  * Constructor.
  *
  * @param JsonFile $composerJson
  * @param bool     $setDefaults
  */
 public function __construct(JsonFile $composerJson, $setDefaults = true)
 {
     $this->composerJson = $composerJson;
     $this->baseDir = $composerJson->getFilesystem()->getAdapter()->getPathPrefix();
     if ($setDefaults) {
         $this->setDefaults();
     }
 }
예제 #2
0
파일: Options.php 프로젝트: gandalf3/bolt
 /**
  * Constructor.
  *
  * @param JsonFile $composerJson
  * @param array    $composerOverrides
  * @param bool     $setDefaults
  */
 public function __construct(JsonFile $composerJson, array $composerOverrides, $setDefaults = true)
 {
     parent::__construct($composerOverrides);
     /** @var Filesystem $extensionFs */
     $extensionFs = $composerJson->getFilesystem();
     /** @var Local $adapter */
     $adapter = $extensionFs->getAdapter();
     $this->set('baseDir', $adapter->getPathPrefix());
     $this->set('composerJson', $composerJson);
 }
예제 #3
0
파일: Config.php 프로젝트: bolt/bolt
 /**
  * @internal Do not use
  *
  * @param bool $force
  */
 public function cacheConfig($force = false)
 {
     if ($this->cacheFile->exists() && $force === false) {
         return;
     }
     $this->cacheFile->dump($this->data);
 }
예제 #4
0
 /**
  * Cleanly update a Composer JSON file.
  *
  * @param JsonFile $jsonFile
  * @param array    $new
  * @param string   $requireKey
  * @param string   $removeKey
  * @param boolean  $sortPackages
  *
  * @return boolean
  */
 private function updateFileCleanly(JsonFile $jsonFile, array $new, $requireKey, $removeKey, $sortPackages)
 {
     $composerJson = $jsonFile->read();
     $manipulator = new JsonManipulator($composerJson);
     foreach ($new as $package => $constraint) {
         $constraint = $this->findBestVersionForPackage($package, $constraint);
         if (!$manipulator->addLink($requireKey, $package, $constraint, $sortPackages)) {
             return false;
         }
         if (!$manipulator->removeSubNode($removeKey, $package)) {
             return false;
         }
     }
     $jsonFile->put($manipulator->getContents());
     return true;
 }
예제 #5
0
파일: Config.php 프로젝트: nbehier/bolt
 /**
  * @internal Do not use
  *
  * @param FilesystemInterface $cacheFs
  * @param string              $environment
  * @param bool                $force
  */
 public function cacheConfig(FilesystemInterface $cacheFs, $environment, $force = false)
 {
     $cacheFileName = $environment . '/config-cache.json';
     if ($cacheFs->has($cacheFileName) && $force === false) {
         return;
     }
     $cacheFile = new JsonFile($cacheFs, $cacheFileName);
     $cacheFile->dump($this->data);
 }