コード例 #1
0
ファイル: JsonParser.php プロジェクト: rezzza/vaultage
 /**
  * {@inheritdoc}
  */
 public function parse($file)
 {
     $content = file_get_contents($file);
     if (false === $content) {
         throw new ResourceException(sprintf('File "%s" is not exists or is not readable', $file));
     }
     $content = json_decode(file_get_contents($file), true);
     if (null === $content) {
         throw new ResourceException(sprintf('File "%s" is not at JSON format', $file));
     }
     $backend = isset($content['backend']) ? $content['backend'] : 'basic';
     $backend = Factory::create($backend);
     $backend->buildMetadatas($file, $content);
     return $backend;
 }
コード例 #2
0
ファイル: InitializeCommand.php プロジェクト: rezzza/vaultage
 /**
  * @see Command
  */
 protected function execute(InputInterface $input, OutputInterface $output)
 {
     $directory = getcwd();
     $config = $input->getOption('configuration-file') ?: $directory . DIRECTORY_SEPARATOR . '.vaultage.json';
     if (file_exists($config)) {
         throw new \InvalidArgumentException(sprintf('Configuration file "%s" is already exists.', $config));
     }
     $io = $this->getIO();
     $backends = Factory::getAvailableBackends();
     $validation = function ($v) use($backends) {
         if (!in_array($v, array_values($backends))) {
             throw new \InvalidArgumentException(sprintf('Backend "%s" is invalid.', $v));
         }
         return $v;
     };
     $default = 'basic';
     $backend = $io->askAndValidate(sprintf('Choose a backend from <comment>%s</comment> (default is %s): ', implode(', ', $backends), $default), $validation, false, $default, $backends);
     Factory::create($backend)->setIO($io)->initialize($config);
 }