/** * 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; }
/** * 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()); }
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); }
/** * @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); } }
/** * @return string */ public function getFilename() { return $this->movieFile->getPath() . DIRECTORY_SEPARATOR . $this->movieFile->getBasename(); }
<?php $file = __FILE__; $s = new SplFileObject(__FILE__); echo $s->getBasename();
<?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); } }