Application初始化实现之后只做了一个动作:run.
本章就从run办法开始,逐渐深刻后续的调用.
先看run的代码:
public function run(): void{ try { if (!$this->beforeRun()) { return; } $this->processor->handle(); } catch (Throwable $e) { // 如果代码执行出现异常,将被此处捕捉并打印在控制台 Console::colored(sprintf('%s(code:%d) %s', get_class($e), $e->getCode(), $e->getMessage()), 'red'); Console::colored('Code Trace:', 'comment'); echo $e->getTraceAsString(), "n"; }}
内容简洁,所有逻辑都交给了以后对象的processor去解决.
processor的代码:
public function handle(): bool{ // 到目前为止程序中还未设置生效的处理器,所以此处为空数组 $disabled = $this->application->getDisabledProcessors(); // 遍历$this->processors调用每一个处理器的handle办法 // $this->processors就是上一章中初始化设置的那6个处理器 // 他们会被程序执行,执行程序是: // Swoft\Processor\EnvProcessor // Swoft\Processor\ConfigProcessor // Swoft\Processor\AnnotationProcessor // Swoft\Processor\BeanProcessor // Swoft\Processor\EventProcessor // Swoft\Processor\ConsoleProcessor foreach ($this->processors as $processor) { $class = get_class($processor); // If is disabled, skip handle. if (isset($disabled[$class])) { continue; } $processor->handle(); } return true;}
从下一章开始,将依照调用程序,每一章解说一个处理器.