Fixing implementation differences

This commit is contained in:
Dennis Eichhorn 2016-10-29 20:47:51 +02:00
parent 6b25cd2df7
commit 2f3b982ca2
4 changed files with 33 additions and 4 deletions

View File

@ -193,6 +193,18 @@ interface ContainerInterface
*/ */
public static function basename(string $path) : string; public static function basename(string $path) : string;
/**
* Make name/path operating system safe.
*
* @param string $path Path of the resource
*
* @return string
*
* @since 1.0.0
* @author Dennis Eichhorn <d.eichhorn@oms.com>
*/
public static function sanitize(string $path) : string;
/** /**
* Get amount of sub-resources. * Get amount of sub-resources.
* *

View File

@ -44,7 +44,7 @@ interface DirectoryInterface extends ContainerInterface, \Iterator, \ArrayAccess
* @since 1.0.0 * @since 1.0.0
* @author Dennis Eichhorn <d.eichhorn@oms.com> * @author Dennis Eichhorn <d.eichhorn@oms.com>
*/ */
public static function count(string $path, bool $recursive = false, array $ignore = []) : int; public static function count(string $path, bool $recursive = true, array $ignore = []) : int;
/** /**
* Get node by name. * Get node by name.

View File

@ -130,7 +130,7 @@ class Directory extends FileAbstract implements DirectoryInterface
* {@inheritdoc} * {@inheritdoc}
*/ */
public static function count(string $path, bool $recursive = true, array $ignore = ['.', '..', 'cgi-bin', public static function count(string $path, bool $recursive = true, array $ignore = ['.', '..', 'cgi-bin',
'.DS_Store']) '.DS_Store']) : int
{ {
$size = 0; $size = 0;
$files = scandir($path); $files = scandir($path);
@ -217,7 +217,7 @@ class Directory extends FileAbstract implements DirectoryInterface
/** /**
* {@inheritdoc} * {@inheritdoc}
*/ */
public static function permission(string $path) : int public static function permission(string $path) : string
{ {
// TODO: Implement permission() method. // TODO: Implement permission() method.
} }
@ -246,6 +246,14 @@ class Directory extends FileAbstract implements DirectoryInterface
return file_exists($path); return file_exists($path);
} }
/**
* {@inheritdoc}
*/
public static function sanitize(string $path) : string
{
return preg_replace('[^\w\s\d\.\-_~,;:\[\]\(\]\/]', '', $path);
}
/** /**
* {@inheritdoc} * {@inheritdoc}
*/ */

View File

@ -14,6 +14,7 @@
* @link http://orange-management.com * @link http://orange-management.com
*/ */
namespace phpOMS\System\File\Local; namespace phpOMS\System\File\Local;
use phpOMS\System\File\ContainerInterface; use phpOMS\System\File\ContainerInterface;
use phpOMS\System\File\ContentPutMode; use phpOMS\System\File\ContentPutMode;
use phpOMS\System\File\FileInterface; use phpOMS\System\File\FileInterface;
@ -139,6 +140,14 @@ class File extends FileAbstract implements FileInterface
return Directory::parent(dirname($path)); return Directory::parent(dirname($path));
} }
/**
* {@inheritdoc}
*/
public static function sanitize(string $path) : string
{
return preg_replace('[^\w\s\d\.\-_~,;:\[\]\(\]]', '', $path);
}
/** /**
* {@inheritdoc} * {@inheritdoc}
*/ */
@ -196,7 +205,7 @@ class File extends FileAbstract implements FileInterface
/** /**
* {@inheritdoc} * {@inheritdoc}
*/ */
public static function permission(string $path) : int public static function permission(string $path) : string
{ {
if (!file_exists($path)) { if (!file_exists($path)) {
throw new PathException($path); throw new PathException($path);