mirror of
https://github.com/OpenXE-org/OpenXE.git
synced 2024-12-27 07:00:29 +01:00
138 lines
2.5 KiB
PHP
138 lines
2.5 KiB
PHP
<?php
|
|
|
|
namespace League\Flysystem;
|
|
|
|
use BadMethodCallException;
|
|
|
|
/**
|
|
* @deprecated
|
|
*/
|
|
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 ? $metadata['type'] : 'dir';
|
|
}
|
|
|
|
/**
|
|
* 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
|
|
);
|
|
}
|
|
}
|
|
}
|