This commit is contained in:
2023-04-15 23:32:00 +08:00
parent c825fd0d94
commit 12ab8b5f88
3 changed files with 437 additions and 367 deletions
+36 -6
View File
@@ -36,6 +36,21 @@ if (!function_exists('make')) {
} }
} }
if (!function_exists('service')) {
/**
* @param string $name
* @return mixed|null
* @throws Exception
*/
function service(string $name): mixed
{
return Kiri::service()->get($name);
}
}
if (!function_exists('replica')) { if (!function_exists('replica')) {
@@ -911,12 +926,28 @@ if (!function_exists('env')) {
} }
if (!function_exists('config')) {
/**
* @param $key
* @param null $default
* @return array|string|null
*/
#[Pure] function config($key, $default = NULL): null|array|string
{
return Config::get($key, $default);
}
}
if (!function_exists('di')) { if (!function_exists('di')) {
/** /**
* @param string $className * @param string $className
* @return mixed * @return mixed
* @throws ReflectionException
*/ */
function di(string $className): mixed function di(string $className): mixed
{ {
@@ -934,7 +965,7 @@ if (!function_exists('interval')) {
* @param int $interval * @param int $interval
* @param bool $is * @param bool $is
*/ */
function interval(callable $callback, int $interval = 1000, bool $is = FALSE) function interval(callable $callback, int $interval = 1000, bool $is = FALSE): void
{ {
usleep($interval * 1000); usleep($interval * 1000);
@@ -1142,13 +1173,12 @@ if (!function_exists('error')) {
/** /**
* @param mixed $message * @param mixed $message
* @param string $method * @param array $method
* @return bool * @return void
*/ */
function error(mixed $message, string $method = 'error'): bool function error(mixed $message, array $method = []): void
{ {
Kiri::getLogger()->error($method, [$message]); Kiri::getLogger()->error($message, $method);
return false;
} }
} }
+1 -1
View File
@@ -140,7 +140,7 @@ class Loader extends Component
if (!class_exists($class)) { if (!class_exists($class)) {
return null; return null;
} }
return Kiri::getDi()->getReflect($class); return Kiri::getDi()->getReflectionClass($class);
} }
+40
View File
@@ -2,6 +2,7 @@
namespace Kiri\Core; namespace Kiri\Core;
use Exception;
use JetBrains\PhpStorm\Pure; use JetBrains\PhpStorm\Pure;
use ReturnTypeWillChange; use ReturnTypeWillChange;
use Traversable; use Traversable;
@@ -24,6 +25,15 @@ class HashMap implements \ArrayAccess, \IteratorAggregate
} }
/**
* @return bool
*/
public function hasItem(): bool
{
return count($this->lists) > 0;
}
/** /**
* @param string $key * @param string $key
* @param $value * @param $value
@@ -34,6 +44,23 @@ class HashMap implements \ArrayAccess, \IteratorAggregate
} }
/**
* @param string $key
* @param $value
* @return void
* @throws Exception
*/
public function append(string $key, $value): void
{
if (!$this->has($key)) {
$this->lists[$key] = [];
} else if (!is_array($this->lists[$key])) {
throw new Exception('Source must a array.');
}
$this->lists[$key][] = $value;
}
/** /**
* @param string $key * @param string $key
* @return mixed * @return mixed
@@ -108,4 +135,17 @@ class HashMap implements \ArrayAccess, \IteratorAggregate
{ {
unset($this->lists[$offset]); unset($this->lists[$offset]);
} }
public static function Tree(HashMap $root, string $leaf)
{
if ($root->has($leaf)) {
$hashMap = $root->get($leaf);
} else {
$hashMap = new HashMap();
$root->put($leaf, $hashMap);
}
return $hashMap;
}
} }