Files
2026-07-01 16:44:17 +03:00

162 lines
3.4 KiB
PHP

<?php namespace ZN;
/**
* ZN PHP Web Framework
*
* "Simplicity is the ultimate sophistication." ~ Da Vinci
*
* @package ZN
* @license MIT [http://opensource.org/licenses/MIT]
* @author Ozan UYKUN [ozan@znframework.com]
*/
use ZN\ErrorHandling\Errors;
class Support
{
/**
* Function
*
* @param string $name
* @param string $value
*
* @return bool
*/
public static function function(string $name, ?string $value = NULL)
{
return self::callback($name, $value);
}
/**
* Func
*
* @param string $name
* @param string $value
*
* @return bool
*/
public static function func(string $name, ?string $value = NULL)
{
return self::_loaded($name, $value, 'function_exists', 'undefinedFunctionExtension');
}
/**
* Callback
*
* @param string $name
* @param string $value
*
* @return bool
*/
public static function callback(string $name, ?string $value = NULL)
{
return self::_loaded($name, $value, 'function_exists', 'undefinedFunction');
}
/**
* Extension
*
* @param string $name
* @param string $value
*
* @return bool
*/
public static function extension(string $name, ?string $value = NULL)
{
return self::_loaded($name, $value, 'extension_loaded', 'undefinedFunctionExtension');
}
/**
* Library
*
* @param string $name
* @param string $value
*
* @return bool
*/
public static function library(string $name, ?string $value = NULL)
{
return self::_loaded($name, $value, 'class_exists', 'classError');
}
/**
* Writable
*
* @param string $name
* @param string $value
*
* @return bool
*/
public static function writable(string $name, ?string $value = NULL)
{
return self::_loaded($name, $value, 'is_writable', 'fileNotWrite');
}
/**
* Driver
*
* @param array $drivers
* @param string $driver = NULL
*
* @return bool
*/
public static function driver(array $drivers, ?string $driver = NULL)
{
if( ! in_array(strtolower($driver ?? ''), $drivers) )
{
throw new Exception('Error', 'driverError', $driver);
}
return true;
}
/**
* Class Method
*
* @param string $class
* @param string $value
*
* @return bool
*/
public static function classMethod(string $class, string $method)
{
throw new Exception
(
'Error',
'undefinedFunction',
Datatype::divide(str_ireplace(INTERNAL_ACCESS, '', Classes::onlyName($class)), '\\', -1)."::$method()"
);
}
/**
* Protected Loaded
*
* @param string $name
* @param string $value
* @param string $function
* @param mixed $error
*
* @return bool
*/
protected static function _loaded($name, $value, $func, $error)
{
if( empty($value) )
{
$value = ucfirst($name);
}
if( ! $func($name) )
{
if( is_string($error) )
{
throw new Exception('Error', $error, $value);
}
else
{
throw new Exception(key($error), current($error), $value);
}
}
return false;
}
}