Viewing file: Handler.php (2.49 KB) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php
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 ); } } }
|