从bin/swoft开始,阅读Swoft框架源码(二)--Application的run方法

码农天地 -
从bin/swoft开始,阅读Swoft框架源码(二)--Application的run方法

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;
}

从下一章开始,将按照调用顺序,每一章讲解一个处理器.

特别申明:本文内容来源网络,版权归原作者所有,如有侵权请立即与我们联系(cy198701067573@163.com),我们将及时处理。

php介绍

PHP即“超文本预处理器”,是一种通用开源脚本语言。PHP是在服务器端执行的脚本语言,与C语言类似,是常用的网站编程语言。PHP独特的语法混合了C、Java、Perl以及 PHP 自创的语法。利于学习,使用广泛,主要适用于Web开发领域。

Tags 标签

phpswooleswoft

扩展阅读

加个好友,技术交流

1628738909466805.jpg