diff --git a/kiri-engine/Abstracts/BaseObject.php b/kiri-engine/Abstracts/BaseObject.php deleted file mode 100644 index 15d9a2ae..00000000 --- a/kiri-engine/Abstracts/BaseObject.php +++ /dev/null @@ -1,255 +0,0 @@ -{$method}($value); - } else { - throw new Exception('The set name ' . $name . ' not find in class ' . static::class); - } - } - - /** - * @param $name - * - * @return mixed - * @throws Exception - */ - public function __get($name): mixed - { - $method = 'get' . ucfirst($name); - if (method_exists($this, $method)) { - return $this->$method(); - } else { - throw new Exception('The get name ' . $name . ' not find in class ' . static::class); - } - } - - - /** - * @param $message - * @param string $model - * @return bool - * @throws Exception - */ - public function addError($message, string $model = 'app'): bool - { - if ($message instanceof \Throwable) { - $this->error(jTraceEx($message)); - } else { - if (!is_string($message)) { - $message = json_encode($message, JSON_UNESCAPED_UNICODE); - } - $this->error($message); - } - return FALSE; - } - - - /** - * @return Logger - * @throws Exception - */ - private function logger(): Logger - { - return Kiri::getDi()->get(Logger::class); - } - - - /** - * @param mixed $message - * @param string $method - * @param string $file - * @throws Exception - */ - public function debug(mixed $message, string $method = '', string $file = '') - { - if (!is_string($message)) { - $message = print_r($message, true); - } - $message = "\033[35m" . $message . "\033[0m"; - - - $context = []; - if (!empty($method)) $context['method'] = $method; - if (!empty($file)) $context['file'] = $file; - - $this->logger()->debug($message, $context); - } - - - /** - * @param mixed $message - * @param string $method - * @param string $file - * @throws Exception - */ - public function info(mixed $message, string $method = '', string $file = '') - { - if (!is_string($message)) { - $message = print_r($message, true); - } - $message = "\033[34m" . $message . "\033[0m"; - - - $context = []; - if (!empty($method)) $context['method'] = $method; - if (!empty($file)) $context['file'] = $file; - - $this->logger()->info($message, $context); - } - - - /** - * @param mixed $message - * @param string $method - * @param string $file - * @throws Exception - */ - public function success(mixed $message, string $method = '', string $file = '') - { - if (!is_string($message)) { - $message = print_r($message, true); - } - - $message = "\033[36m" . $message . "\033[0m"; - - - $context = []; - if (!empty($method)) $context['method'] = $method; - if (!empty($file)) $context['file'] = $file; - - $this->logger()->notice($message, $context); - } - - - /** - * @param mixed $message - * @param string $method - * @param string $file - * @throws Exception - */ - public function warning(mixed $message, string $method = '', string $file = '') - { - if (!is_string($message)) { - $message = print_r($message, true); - } - - $message = "\033[33m" . $message . "\033[0m"; - - - $context = []; - if (!empty($method)) $context['method'] = $method; - if (!empty($file)) $context['file'] = $file; - - $this->logger()->critical($message, $context); - } - - - /** - * @param mixed $message - * @param null $method - * @param null $file - * @throws Exception - */ - public function error(mixed $message, $method = null, $file = null) - { - if ($message instanceof \Throwable) { - $message = $message->getMessage() . " on line " . $message->getLine() . " at file " . $message->getFile(); - } - $content = (empty($method) ? '' : $method . ': ') . $message; - - $message = "\033[41;37m" . $content . "\033[0m"; - - if (!empty($file)) { - $message .= PHP_EOL . "\03341;37m[" . $file . "\033[0m"; - } - - $context = []; - if (!empty($method)) $context['method'] = $method; - if (!empty($file)) $context['file'] = $file; - - $this->logger()->error($message, $context); - } - -} diff --git a/kiri-engine/Abstracts/Component.php b/kiri-engine/Abstracts/Component.php index 9339eaa1..1ce87299 100644 --- a/kiri-engine/Abstracts/Component.php +++ b/kiri-engine/Abstracts/Component.php @@ -10,14 +10,237 @@ declare(strict_types=1); namespace Kiri\Abstracts; +use Exception; +use JetBrains\PhpStorm\Pure; +use Kiri\Di\Container; +use Kiri\Kiri; +use Psr\Container\ContainerInterface; /** * Class Component * @package Kiri\Kiri\Base + * @property ContainerInterface $container */ -class Component extends BaseObject +class Component implements Configure { + /** + * BaseAbstract constructor. + * + * @param array $config + * @throws Exception + */ + public function __construct(array $config = []) + { + if (!empty($config) && is_array($config)) { + Kiri::configure($this, $config); + } + } + /** + * @throws Exception + */ + public function init() + { + } + + + + /** + * @return Container + */ + #[Pure] public function getContainer(): ContainerInterface + { + return Kiri::getDi(); + } + + + /** + * @return string + */ + #[Pure] public static function className(): string + { + return static::class; + } + + /** + * @param $name + * @param $value + * + * @throws Exception + */ + public function __set($name, $value) + { + $method = 'set' . ucfirst($name); + if (method_exists($this, $method)) { + $this->{$method}($value); + } else { + throw new Exception('The set name ' . $name . ' not find in class ' . static::class); + } + } + + /** + * @param $name + * + * @return mixed + * @throws Exception + */ + public function __get($name): mixed + { + $method = 'get' . ucfirst($name); + if (method_exists($this, $method)) { + return $this->$method(); + } else { + throw new Exception('The get name ' . $name . ' not find in class ' . static::class); + } + } + + + /** + * @param $message + * @param string $model + * @return bool + * @throws Exception + */ + public function addError($message, string $model = 'app'): bool + { + if ($message instanceof \Throwable) { + $this->error(jTraceEx($message)); + } else { + if (!is_string($message)) { + $message = json_encode($message, JSON_UNESCAPED_UNICODE); + } + $this->error($message); + } + return FALSE; + } + + + /** + * @return Logger + * @throws Exception + */ + private function logger(): Logger + { + return Kiri::getDi()->get(Logger::class); + } + + + /** + * @param mixed $message + * @param string $method + * @param string $file + * @throws Exception + */ + public function debug(mixed $message, string $method = '', string $file = '') + { + if (!is_string($message)) { + $message = print_r($message, true); + } + $message = "\033[35m" . $message . "\033[0m"; + + + $context = []; + if (!empty($method)) $context['method'] = $method; + if (!empty($file)) $context['file'] = $file; + + $this->logger()->debug($message, $context); + } + + + /** + * @param mixed $message + * @param string $method + * @param string $file + * @throws Exception + */ + public function info(mixed $message, string $method = '', string $file = '') + { + if (!is_string($message)) { + $message = print_r($message, true); + } + $message = "\033[34m" . $message . "\033[0m"; + + + $context = []; + if (!empty($method)) $context['method'] = $method; + if (!empty($file)) $context['file'] = $file; + + $this->logger()->info($message, $context); + } + + + /** + * @param mixed $message + * @param string $method + * @param string $file + * @throws Exception + */ + public function success(mixed $message, string $method = '', string $file = '') + { + if (!is_string($message)) { + $message = print_r($message, true); + } + + $message = "\033[36m" . $message . "\033[0m"; + + + $context = []; + if (!empty($method)) $context['method'] = $method; + if (!empty($file)) $context['file'] = $file; + + $this->logger()->notice($message, $context); + } + + + /** + * @param mixed $message + * @param string $method + * @param string $file + * @throws Exception + */ + public function warning(mixed $message, string $method = '', string $file = '') + { + if (!is_string($message)) { + $message = print_r($message, true); + } + + $message = "\033[33m" . $message . "\033[0m"; + + + $context = []; + if (!empty($method)) $context['method'] = $method; + if (!empty($file)) $context['file'] = $file; + + $this->logger()->critical($message, $context); + } + + + /** + * @param mixed $message + * @param null $method + * @param null $file + * @throws Exception + */ + public function error(mixed $message, $method = null, $file = null) + { + if ($message instanceof \Throwable) { + $message = $message->getMessage() . " on line " . $message->getLine() . " at file " . $message->getFile(); + } + $content = (empty($method) ? '' : $method . ': ') . $message; + + $message = "\033[41;37m" . $content . "\033[0m"; + + if (!empty($file)) { + $message .= PHP_EOL . "\03341;37m[" . $file . "\033[0m"; + } + + $context = []; + if (!empty($method)) $context['method'] = $method; + if (!empty($file)) $context['file'] = $file; + + $this->logger()->error($message, $context); + } + } diff --git a/kiri-engine/Di/Container.php b/kiri-engine/Di/Container.php index ff4563a1..1988049e 100644 --- a/kiri-engine/Di/Container.php +++ b/kiri-engine/Di/Container.php @@ -9,10 +9,10 @@ declare(strict_types=1); namespace Kiri\Di; +use Kiri\Abstracts\Component; use Note\Inject; use Closure; use Exception; -use Kiri\Abstracts\BaseObject; use Kiri\Abstracts\Logger; use Kiri\Kiri; use Psr\Log\LoggerInterface; @@ -27,7 +27,7 @@ use Psr\Container\ContainerInterface; * Class Container * @package Kiri\Di */ -class Container extends BaseObject implements ContainerInterface +class Container extends Component implements ContainerInterface { /** diff --git a/kiri-engine/Event.php b/kiri-engine/Event.php index 067b00f7..0bc37299 100644 --- a/kiri-engine/Event.php +++ b/kiri-engine/Event.php @@ -6,14 +6,13 @@ namespace Kiri; use Exception; -use Kiri\Abstracts\BaseObject; -use Swoole\Coroutine; +use Kiri\Abstracts\Component; /** * Class Event * @package Kiri */ -class Event extends BaseObject +class Event extends Component { public bool $isVide = true; diff --git a/kiri-note/Loader.php b/kiri-note/Loader.php index c8ba2750..371dcd8d 100644 --- a/kiri-note/Loader.php +++ b/kiri-note/Loader.php @@ -6,7 +6,7 @@ namespace Note; use DirectoryIterator; use Exception; -use Kiri\Abstracts\BaseObject; +use Kiri\Abstracts\Component; use Kiri\Kiri; use ReflectionClass; use ReflectionException; @@ -17,7 +17,7 @@ use Throwable; * Class Loader * @package Note */ -class Loader extends BaseObject +class Loader extends Component {