Exemplo n.º 1
0
 public static function getOptions($file, $profile = null, $localFile = null)
 {
     if (file_exists($file)) {
         $f = new \SplFileObject($file);
         switch ($f->getExtension()) {
             case "php":
                 $standardOptions = (include $file);
                 if (file_exists($localFile)) {
                     $localOptions = (include $localFile);
                 }
                 break;
             case "yaml":
             case "yml":
                 $parser = new \Symfony\Component\Yaml\Parser();
                 $standardOptions = $parser->parse(file_get_contents($file));
                 if (file_exists($localFile)) {
                     $localOptions = $parser->parse(file_get_contents($localFile));
                 }
                 break;
             case "json":
                 $standardOptions = json_decode(file_get_contents($file), true);
                 if (file_exists($localFile)) {
                     $localOptions = json_decode(file_get_contents($localFile), true);
                 }
                 break;
             default:
                 throw new \InvalidArgumentException("File type " . $f->getExtension() . " not supported");
         }
         if (is_array($localOptions) && count($localOptions)) {
             $options = array_replace_recursive($standardOptions, $localOptions);
         } else {
             $options = $standardOptions;
         }
         if (!is_array($options)) {
             throw new \RuntimeException("Found no usable data in {$file}");
         } else {
             if ($profile) {
                 return self::resolveInheritance($options, $profile);
             }
             return $options;
         }
     } else {
         throw new \InvalidArgumentException("{$file} does not exist or could not be read");
     }
 }
Exemplo n.º 2
0
 public static function find($fileArray)
 {
     $return = [];
     foreach ($fileArray as $file) {
         $file = new \SplFileObject($file);
         $return[] = substr($file->getFilename(), 0, strlen($file->getFilename()) - (strlen($file->getExtension()) + 1));
     }
     return $return;
 }
Exemplo n.º 3
0
 /**
  * Validate code examples in $file
  *
  * @param  \SplFileObject $file
  * @param  string         $formatIdentifier
  * @return void
  */
 public function assertFile(\SplFileObject $file, $formatIdentifier = '')
 {
     $format = $this->formatFactory->createFormat($formatIdentifier ?: $file->getExtension());
     $result = $this->testCase->getTestResultObject();
     foreach ($this->tester->test($file, $format) as $example => $returnObj) {
         $this->testCase->addToAssertionCount(1);
         if ($returnObj->isFailure()) {
             $result->addFailure($this->testCase, new \PHPUnit_Framework_AssertionFailedError("Example {$example}: {$returnObj->getMessage()}"), 0.0);
         }
     }
 }
Exemplo n.º 4
0
 /**
  * @Route("/download/{filename}/{file}", name="app_download")
  * @Route("/load/{filename}/{file}", name="app_load")
  * @ParamConverter("file", converter="file_converter")
  * @Method("GET")
  * @param string $filename
  * @param \SplFileObject $file
  * @return Response
  */
 public function loadAction($filename, \SplFileObject $file)
 {
     $response = new Response($file->fpassthru());
     $response->headers->set('Content-Type', 'octet/stream');
     $response->headers->set('Content-disposition', 'attachment; filename="' . $filename . '.' . $file->getExtension() . '";"');
     $response->headers->set('Content-Length', $file->getSize());
     $response->headers->set('Cache-Control', 'max-age=31536000, public');
     // 1 year
     $response->sendHeaders();
     return $response->send();
 }
Exemplo n.º 5
0
 /**
  * Constructor
  *
  * @param \SplFileObject $post Post source file
  */
 public function __construct(\SplFileObject $post)
 {
     $this->source = $post;
     if (!preg_match('/[\\d]{4}\\/[\\d]{2}\\/(.+)$/', $post->getPathname())) {
         throw new \Exception(sprintf('%s is not a valid post', $post->getPathname()));
     }
     $paths = explode(DIRECTORY_SEPARATOR, $post->getPath());
     $this->month = $paths[count($paths) - 1];
     $this->year = $paths[count($paths) - 2];
     $this->slug = $post->getBasename('.' . $post->getExtension());
 }
Exemplo n.º 6
0
 /**
  * Renvoie le fichier dont le chemin est passé en paramètre.
  *
  * @param string $filename Chemin du fichier.
  * @return SplFileObject
  * @throws \Symfony\Component\HttpKernel\Exception\BadRequestHttpException En cas d'erreur d'accès au fichier.
  * @throws \Symfony\Component\HttpKernel\Exception\UnsupportedMediaTypeHttpException Si le type de fichier n'est pas celui attendu.
  */
 protected function getFile($filename)
 {
     if (!file_exists($filename)) {
         throw new \Symfony\Component\HttpKernel\Exception\BadRequestHttpException("Le fichier {$filename} n'existe pas.");
     }
     $splFile = new \SplFileObject($filename);
     $fileExtension = $splFile->getExtension();
     // Handlers disponibles
     if ($fileExtension !== $this->handlers[$this->handlerIdentifier]['extension']) {
         throw new \Symfony\Component\HttpKernel\Exception\UnsupportedMediaTypeHttpException("Le handler [{$this->handlerIdentifier}] ne supporte pas le type de fichier [{$fileExtension}].");
     }
     return $splFile;
 }
Exemplo n.º 7
0
 public function getModelClassHelperData()
 {
     $paths = $this->modelsPath;
     $paths = array_unique($paths);
     $return = [];
     foreach ($paths as $path) {
         $namespace = str_replace(["@", "/"], ["\\", "\\"], $path);
         $realPath = Yii::getAlias($path);
         $files = \app\core\helpers\FileHelper::findFiles($realPath, ['only' => ['*.php'], 'except' => ['*Search.php', '*Query.php', '*Form.php']]);
         foreach ($files as $file) {
             $file = new \SplFileObject($file);
             $className = substr($file->getFilename(), 0, strlen($file->getFilename()) - (strlen($file->getExtension()) + 1));
             $class = new \ReflectionClass($namespace . '\\' . $className);
             $return[ltrim($namespace, '\\')][$class->getShortName() . "|" . Inflector::camel2id($class->getShortName())] = $class->getName();
         }
     }
     return $return;
 }
<?php

$file = new SplFileObject('spl_file_object.php');
print 'Nome: ' . $file->getFileName() . '<br>' . PHP_EOL;
print 'Extensão: ' . $file->getExtension() . '<br>' . PHP_EOL;
$file2 = new SplFileObject('novo.txt', 'w');
$bytes = $file2->fwrite('Olá Mundo PHP' . PHP_EOL);
print 'Bytes escritos ' . $bytes . PHP_EOL;
 protected function support(SplFileObject $file)
 {
     return $file->getExtension() === 'xml';
 }
Exemplo n.º 10
0
 public function __construct($movieFile)
 {
     $this->movieFile = new \SplFileObject($movieFile);
     $this->fileExtension = $this->movieFile->getExtension();
 }
Exemplo n.º 11
0
 /**
  * Reads an dune import file containing dune data and returns a site object.
  *
  * @param string $filePath       The file path location for the
  * @param bool   $errorOnBadData If true and exception will be thrown due to a line of bad data. If false the
  *                               line is skipped silently.
  *
  * @return Site A Site object populated with dunes.
  * @throws InvalidOperationException If database credentials have not been set (required for dune creation)
  * @throws MyInvalidArgumentException If the import path is invalid.
  */
 public final function importDunes($filePath, $errorOnBadData = TRUE)
 {
     if (is_null(self::$databaseCredentials)) {
         throw new InvalidOperationException('Database credentials must be set at the class level to allow this action to take place.');
     }
     Dune::setDatabaseCredentials(self::$databaseCredentials);
     $fileHandle = new SplFileObject($filePath);
     if (!$fileHandle->isFile() && !$fileHandle->isReadable() && $fileHandle->getExtension() != 'txt') {
         throw new MyInvalidArgumentException('The specified import file path does not point to a valid readable text (.txt) file.');
     }
     while (!$fileHandle->eof()) {
         $duneData = $fileHandle->fgetcsv(' ');
         if ($duneData[0] == NULL || substr($duneData[0], 0, 1) == '%') {
             continue;
             // Skip the line
         }
         if (count($duneData) != 6) {
             if ($errorOnBadData) {
                 $line = $fileHandle->key() + 1;
                 throw new MyInvalidArgumentException('Import failed. Line ' . $line . ' does not contain sufficient data or is
                     improperly formatted.');
             } else {
                 continue;
             }
         }
         try {
             $dune = new Dune(new LatLng($duneData[3], $duneData[2]), $this->siteName, $duneData[5], $duneData[4]);
             $this->dunes[] = $dune;
         } catch (Exception $e) {
             if ($errorOnBadData) {
                 $line = $fileHandle->key() + 1;
                 throw new MyInvalidArgumentException('Import failed. Line ' . $line . ' contains invalid data.', $e);
             } else {
                 continue;
             }
         }
     }
 }
Exemplo n.º 12
0
 /**
  * Extracts the properties of the image
  *
  * @param Image $image Image object
  *
  * @return Image
  */
 private function _extractImageProperties(Image $image)
 {
     /** @var Local $localAdapter */
     $localAdapter = $this->getFileSystem()->getAdapter();
     $path = $localAdapter->getPathPrefix();
     $imageName = $image->getImageName();
     // This is the original file name
     $imageFile = new \SplFileObject("{$path}{$imageName}");
     $image->setSourceName($imageName);
     $image->setMime($this->getFileSystem()->getMimetype($imageName));
     $image->setExtension($imageFile->getExtension());
     $image->setFullPath($path);
     // override the default quality if the jpgOutputQuality is set
     if ($this->_jpgOutputQuality) {
         $image->setJpgQuality($this->_jpgOutputQuality);
     }
     return $image;
 }