mirror of
https://github.com/phpbb/phpbb.git
synced 2025-04-19 23:32:02 +02:00
[ticket/15276] Update file_info
PHPBB3-15276
This commit is contained in:
parent
8d7336e57c
commit
400e663347
@ -85,4 +85,15 @@ interface adapter_interface
|
||||
* When the file cannot be copied
|
||||
*/
|
||||
public function copy($path_orig, $path_dest);
|
||||
|
||||
/**
|
||||
* Get file info.
|
||||
*
|
||||
* @param string $path The file
|
||||
*
|
||||
* @throws \phpbb\storage\exception\not_implemented When the adapter doesnt implement the method
|
||||
*
|
||||
* @return \phpbb\storage\file_info Returns file_info object
|
||||
*/
|
||||
public function file_properties($path);
|
||||
}
|
||||
|
@ -236,16 +236,43 @@ class local implements adapter_interface, stream_interface
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function file_properties($path)
|
||||
{
|
||||
return [];
|
||||
}
|
||||
|
||||
/**
|
||||
* Get file size.
|
||||
*
|
||||
* @param string $path The file
|
||||
*
|
||||
* @throws \phpbb\storage\exception\exception When cannot get size
|
||||
*
|
||||
* @return int File size in bytes
|
||||
*/
|
||||
public function file_size($path)
|
||||
{
|
||||
return filesize($this->root_path . $path);
|
||||
$size = filesize($this->root_path . $path);
|
||||
|
||||
if ($size === null)
|
||||
{
|
||||
throw new exception('STORAGE_CANNOT_GET_FILESIZE');
|
||||
}
|
||||
|
||||
return $size;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Get file mimetype.
|
||||
*
|
||||
* @param string $path The file
|
||||
*
|
||||
* @return string Mime type
|
||||
*/
|
||||
public function file_mimetype($path)
|
||||
{
|
||||
return mime_content_type($this->root_path . $path);
|
||||
|
@ -17,10 +17,19 @@ use phpbb\storage\exception\not_implemented;
|
||||
|
||||
class file_info
|
||||
{
|
||||
/**
|
||||
* @var \phpbb\storage\adapter\adapter_interface
|
||||
*/
|
||||
protected $adapter;
|
||||
|
||||
/**
|
||||
* @var string
|
||||
*/
|
||||
protected $path;
|
||||
|
||||
/**
|
||||
* @var array
|
||||
*/
|
||||
protected $properties;
|
||||
|
||||
public function __construct($adapter, $path)
|
||||
@ -29,6 +38,11 @@ class file_info
|
||||
$this->path = $path;
|
||||
}
|
||||
|
||||
/**
|
||||
* Load propertys lazily.
|
||||
*
|
||||
* @param string path The file path.
|
||||
*/
|
||||
protected function fill_properties($path)
|
||||
{
|
||||
if ($this->properties === null)
|
||||
@ -42,6 +56,13 @@ class file_info
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Load propertys lazily.
|
||||
*
|
||||
* @param string name The property name.
|
||||
*
|
||||
* @return string Returns the property value
|
||||
*/
|
||||
public function get($name)
|
||||
{
|
||||
$this->fill_properties($this->path);
|
||||
@ -59,6 +80,9 @@ class file_info
|
||||
return $this->properties[$name];
|
||||
}
|
||||
|
||||
/**
|
||||
* Alias of \phpbb\storage\file_info->get()
|
||||
*/
|
||||
public function __get($name)
|
||||
{
|
||||
return $this->get($name);
|
||||
|
Loading…
x
Reference in New Issue
Block a user