diff --git a/Console/Command.php b/Console/Command.php index 5428beaf..b4ab40cb 100644 --- a/Console/Command.php +++ b/Console/Command.php @@ -3,7 +3,12 @@ declare(strict_types=1); namespace Console; +use ReflectionException; use Snowflake\Abstracts\BaseObject; +use Snowflake\Abstracts\TraitApplication; +use Snowflake\Exception\ComponentException; +use Snowflake\Exception\NotFindClassException; +use Snowflake\Snowflake; /** * Class Command @@ -12,27 +17,70 @@ use Snowflake\Abstracts\BaseObject; abstract class Command extends BaseObject implements CommandInterface { - public string $command = ''; - public string $description = ''; - - /** - * @return string - * 返回执行的命令名称 - */ - public function getName(): string - { - return $this->command; - } + use TraitApplication; - /** - * @return string - * - * 返回命令描述 - */ - public function getDescription(): string - { - return $this->description; - } + public string $command = ''; + public string $description = ''; + + /** + * @return string + * 返回执行的命令名称 + */ + public function getName(): string + { + return $this->command; + } + + + /** + * @return string + * + * 返回命令描述 + */ + public function getDescription(): string + { + return $this->description; + } + + + /** + * @param $name + * @return mixed + * @throws ComponentException + * @throws NotFindClassException + * @throws ReflectionException + */ + public function __get($name): mixed + { + if ($this->has($name)) { + return $this->get($name); + } + return parent::__get($name); // TODO: Change the autogenerated stub + } + + + /** + * @param $name + * @return bool + */ + private function has($name): bool + { + return Snowflake::app()->has($name); + } + + + /** + * @param $name + * @return mixed + * @throws ReflectionException + * @throws ComponentException + * @throws NotFindClassException + */ + private function get($name): mixed + { + return Snowflake::app()->get($name); + } + }