1
0
mirror of https://github.com/AlexKrunch/AnonIB-3D.git synced 2024-11-16 17:39:06 -05:00
AnonIB-3D/src_php/php/Libs/Lazer/Classes/Helpers/File.class.php

89 lines
2.0 KiB
PHP
Raw Normal View History

2019-08-17 04:21:07 -04:00
<?php
namespace Lazer\Classes\Helpers;
include "FileInterface.php";
use Lazer\Classes\LazerException;
/**
* File managing class
*
* @category Helpers
* @author Grzegorz Kuźnik
* @copyright (c) 2013, Grzegorz Kuźnik
* @license http://opensource.org/licenses/MIT The MIT License
* @link https://github.com/Greg0/Lazer-Database GitHub Repository
*/
class File implements FileInterface {
/**
* File name
* @var string
*/
protected $name;
/**
* File type (data|config)
* @var string
*/
protected $type;
public static function table($name)
{
$file = new File;
$file->name = $name;
return $file;
}
public final function setType($type)
{
$this->type = $type;
}
public final function getPath()
{
if (!defined('LAZER_DATA_PATH'))
{
throw new LazerException('Please define constant LAZER_DATA_PATH (check README.md)');
}
else if (!empty($this->type))
{
return LAZER_DATA_PATH . $this->name . '.' . $this->type . '.json';
}
else
{
throw new LazerException('Please specify the type of file in class: ' . __CLASS__);
}
}
public final function get($assoc = false)
{
return json_decode(file_get_contents($this->getPath()), $assoc);
}
public final function put($data)
{
return file_put_contents($this->getPath(), json_encode($data));
}
public final function exists()
{
return file_exists($this->getPath());
}
public final function remove()
{
$type = ucfirst($this->type);
if ($this->exists())
{
if (unlink($this->getPath()))
return TRUE;
throw new LazerException($type . ': Deleting failed');
}
throw new LazerException($type . ': File does not exists');
}
}