Example #1
0
 /**
  * Sets the current cache key this class is managing, and creates a writable SplFileObject
  * for the cache file the key is referring to.
  *
  * @param string $key The key
  * @param bool $createKey Whether the key should be created if it doesn't exists, or not
  * @return bool true if the cache key could be set, false otherwise
  */
 protected function _setKey($key, $createKey = false)
 {
     $groups = null;
     if (!empty($this->_groupPrefix)) {
         $groups = vsprintf($this->_groupPrefix, $this->groups());
     }
     $dir = $this->_config['path'] . $groups;
     if (!is_dir($dir)) {
         mkdir($dir, 0775, true);
     }
     $path = new \SplFileInfo($dir . $key);
     if (!$createKey && !$path->isFile()) {
         return false;
     }
     if (empty($this->_File) || $this->_File->getBasename() !== $key) {
         $exists = file_exists($path->getPathname());
         try {
             $this->_File = $path->openFile('c+');
         } catch (Exception $e) {
             trigger_error($e->getMessage(), E_USER_WARNING);
             return false;
         }
         unset($path);
         if (!$exists && !chmod($this->_File->getPathname(), (int) $this->_config['mask'])) {
             trigger_error(sprintf('Could not apply permission mask "%s" on cache file "%s"', $this->_File->getPathname(), $this->_config['mask']), E_USER_WARNING);
         }
     }
     return true;
 }
Example #2
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());
 }
Example #3
0
 public function download($path)
 {
     if (is_null($path) || empty($path)) {
         throw new InvalidArgumentException('You must specify the item to download.', 400);
     } else {
         if (!$this->exists($path) || !is_file($this->realRootDirectory . DIRECTORY_SEPARATOR . $path)) {
             throw new FileNotFoundException('The specified file does not exist.', 404);
         }
     }
     $fileObject = new \SplFileObject($this->realRootDirectory . DIRECTORY_SEPARATOR . $path);
     HttpResponse::setContentDisposition($fileObject->getBasename());
     HttpResponse::setContentType('application/octet-stream');
     HttpResponse::setHeader('Content-Length', $fileObject->getSize());
     $fileObject->fpassthru();
     exit(0);
 }
Example #4
0
 /**
  * @param \SplFileObject $file
  * @param string $namespace
  */
 protected function checkInstance($file, $namespace)
 {
     $class = $namespace . '\\' . $file->getBasename('.php');
     $reflection = new ReflectionClass($class);
     if ($reflection->isSubclassOf('\\Result\\ResultException')) {
         self::getInstance()->pushResult($class);
     }
 }
Example #5
0
 /**
  * @return string
  */
 public function getFilename()
 {
     return $this->movieFile->getPath() . DIRECTORY_SEPARATOR . $this->movieFile->getBasename();
 }
<?php

$file = __FILE__;
$s = new SplFileObject(__FILE__);
echo $s->getBasename();
Example #7
0
<?php

$filePaths = $argv;
array_shift($filePaths);
foreach ($filePaths as $filePath) {
    try {
        $file = new SplFileObject($filePath);
        echo sprintf("%s\n", $file->getBasename());
    } catch (RuntimeException $e) {
        echo sprintf("Unable to open file at path '%s'\n", $filePath);
    }
}