Spaces:
Sleeping
Sleeping
| namespace League\Flysystem; | |
| use BadMethodCallException; | |
| abstract class Handler | |
| { | |
| /** | |
| * @var string | |
| */ | |
| protected $path; | |
| /** | |
| * @var FilesystemInterface | |
| */ | |
| protected $filesystem; | |
| /** | |
| * Constructor. | |
| * | |
| * @param FilesystemInterface $filesystem | |
| * @param string $path | |
| */ | |
| public function __construct(FilesystemInterface $filesystem = null, $path = null) | |
| { | |
| $this->path = $path; | |
| $this->filesystem = $filesystem; | |
| } | |
| /** | |
| * Check whether the entree is a directory. | |
| * | |
| * @return bool | |
| */ | |
| public function isDir() | |
| { | |
| return $this->getType() === 'dir'; | |
| } | |
| /** | |
| * Check whether the entree is a file. | |
| * | |
| * @return bool | |
| */ | |
| public function isFile() | |
| { | |
| return $this->getType() === 'file'; | |
| } | |
| /** | |
| * Retrieve the entree type (file|dir). | |
| * | |
| * @return string file or dir | |
| */ | |
| public function getType() | |
| { | |
| $metadata = $this->filesystem->getMetadata($this->path); | |
| return $metadata['type']; | |
| } | |
| /** | |
| * Set the Filesystem object. | |
| * | |
| * @param FilesystemInterface $filesystem | |
| * | |
| * @return $this | |
| */ | |
| public function setFilesystem(FilesystemInterface $filesystem) | |
| { | |
| $this->filesystem = $filesystem; | |
| return $this; | |
| } | |
| /** | |
| * Retrieve the Filesystem object. | |
| * | |
| * @return FilesystemInterface | |
| */ | |
| public function getFilesystem() | |
| { | |
| return $this->filesystem; | |
| } | |
| /** | |
| * Set the entree path. | |
| * | |
| * @param string $path | |
| * | |
| * @return $this | |
| */ | |
| public function setPath($path) | |
| { | |
| $this->path = $path; | |
| return $this; | |
| } | |
| /** | |
| * Retrieve the entree path. | |
| * | |
| * @return string path | |
| */ | |
| public function getPath() | |
| { | |
| return $this->path; | |
| } | |
| /** | |
| * Plugins pass-through. | |
| * | |
| * @param string $method | |
| * @param array $arguments | |
| * | |
| * @return mixed | |
| */ | |
| public function __call($method, array $arguments) | |
| { | |
| array_unshift($arguments, $this->path); | |
| $callback = [$this->filesystem, $method]; | |
| try { | |
| return call_user_func_array($callback, $arguments); | |
| } catch (BadMethodCallException $e) { | |
| throw new BadMethodCallException( | |
| 'Call to undefined method ' | |
| . get_called_class() | |
| . '::' . $method | |
| ); | |
| } | |
| } | |
| } | |