bin/swoftから、Swoftフレームワークのソースコード(二)--Applicationのrunメソッドを読みます.


アプリケーションの初期化が完了した後、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に任せて処理する.プロセスのコード:
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;
}

次の章から、呼び出し順に、各章に1つのプロセッサについて説明する.