Start work toward 2.0
This commit is contained in:
parent
6c1de63cf0
commit
023f3f8c69
@ -7,9 +7,9 @@
|
||||
*
|
||||
* @package Ion
|
||||
* @author Timothy J. Warren <tim@timshomepage.net>
|
||||
* @copyright 2015 - 2016 Timothy J. Warren
|
||||
* @copyright 2015 - 2017 Timothy J. Warren
|
||||
* @license http://www.opensource.org/licenses/mit-license.html MIT License
|
||||
* @version 1.0.0
|
||||
* @version 2.0.0
|
||||
* @link https://git.timshomepage.net/timw4mail/ion
|
||||
*/
|
||||
|
||||
|
@ -36,7 +36,9 @@
|
||||
"henrikbjorn/lurker": "^1.1.0",
|
||||
"nikic/php-parser": "3.0.*@beta",
|
||||
"monolog/monolog": "1.*",
|
||||
"squizlabs/php_codesniffer": "^3.0.0@RC"
|
||||
"squizlabs/php_codesniffer": "^3.0.0@RC",
|
||||
"vimeo/psalm": "^0.3.24",
|
||||
"phpstan/phpstan": "^0.6.4"
|
||||
},
|
||||
"scripts": {
|
||||
"coverage": "vendor/bin/phpunit -c build",
|
||||
@ -47,4 +49,4 @@
|
||||
"suggest": {
|
||||
"monolog/monolog": "Provides implementation of psr/log"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
16
src/Enum.php
16
src/Enum.php
@ -33,9 +33,17 @@ abstract class Enum {
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
protected function getConstList(): array
|
||||
protected static function getConstList(): array
|
||||
{
|
||||
$reflect = new ReflectionClass($this);
|
||||
static $self;
|
||||
|
||||
if (is_null($self))
|
||||
{
|
||||
$class = \get_called_class();
|
||||
$self = new $class;
|
||||
}
|
||||
|
||||
$reflect = new ReflectionClass($self);
|
||||
return $reflect->getConstants();
|
||||
}
|
||||
|
||||
@ -44,9 +52,9 @@ abstract class Enum {
|
||||
* @param mixed $key
|
||||
* @return boolean
|
||||
*/
|
||||
protected function isValid($key): bool
|
||||
protected static function isValid($key): bool
|
||||
{
|
||||
$values = array_values($this->getConstList());
|
||||
$values = array_values(static::getConstList());
|
||||
return in_array($key, $values);
|
||||
}
|
||||
}
|
||||
|
@ -39,10 +39,15 @@ trait StaticInstance {
|
||||
*/
|
||||
public function __call(string $method, array $args)
|
||||
{
|
||||
$class = \get_called_class();
|
||||
if (method_exists($this, $method))
|
||||
{
|
||||
return call_user_func_array([$this, $method], $args);
|
||||
}
|
||||
else if(method_exists($class, $method))
|
||||
{
|
||||
return static::__callStatic($method, $args);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@ -55,13 +60,7 @@ trait StaticInstance {
|
||||
*/
|
||||
public static function __callStatic(string $method, array $args)
|
||||
{
|
||||
$class = get_called_class();
|
||||
if ( ! array_key_exists($class, self::$instance))
|
||||
{
|
||||
self::$instance[$class] = new $class();
|
||||
}
|
||||
|
||||
return call_user_func_array([self::$instance[$class], $method], $args);
|
||||
return call_user_func_array([\get_called_class(), $method], $args);
|
||||
}
|
||||
}
|
||||
// End of StaticInstance.php
|
29
src/functions.php
Normal file
29
src/functions.php
Normal file
@ -0,0 +1,29 @@
|
||||
<?php declare(strict_types=1);
|
||||
/**
|
||||
* Ion
|
||||
*
|
||||
* Building blocks for web development
|
||||
*
|
||||
* PHP version 7
|
||||
*
|
||||
* @package Ion
|
||||
* @author Timothy J. Warren <tim@timshomepage.net>
|
||||
* @copyright 2015 - 2016 Timothy J. Warren
|
||||
* @license http://www.opensource.org/licenses/mit-license.html MIT License
|
||||
* @version 1.0.0
|
||||
* @link https://git.timshomepage.net/timw4mail/ion
|
||||
*/
|
||||
|
||||
namespace Aviat\Ion;
|
||||
|
||||
/**
|
||||
* Joins paths together. Variadic to take an
|
||||
* arbitrary number of arguments
|
||||
*
|
||||
* @param string[] ...$args
|
||||
* @return string
|
||||
*/
|
||||
function _dir(...$args)
|
||||
{
|
||||
return implode(DIRECTORY_SEPARATOR, $args);
|
||||
}
|
Loading…
Reference in New Issue
Block a user