/** * This method should be called after hydration * * @return void */ public final function analyze(CodeBase $code_base) { if ($this->isInternal()) { return; } // Make sure the parent classes exist ParentClassExistsAnalyzer::analyzeParentClassExists($code_base, $this); DuplicateClassAnalyzer::analyzeDuplicateClass($code_base, $this); ParentConstructorCalledAnalyzer::analyzeParentConstructorCalled($code_base, $this); PropertyTypesAnalyzer::analyzePropertyTypes($code_base, $this); // Analyze this class to make sure that we don't have conflicting // types between similar inherited methods. CompositionAnalyzer::analyzeComposition($code_base, $this); // Let any configured plugins analyze the class ConfigPluginSet::instance()->analyzeClass($code_base, $this); }
/** * This method should be called after hydration * * @return void */ protected function analyzeOnce(CodeBase $code_base) { if ($this->isInternal()) { return; } // Analyze this class to make sure that CompositionAnalyzer::analyzeComposition($code_base, $this); // Make sure the parent classes exist ParentClassExistsAnalyzer::analyzeParentClassExists($code_base, $this); DuplicateClassAnalyzer::analyzeDuplicateClass($code_base, $this); ParentConstructorCalledAnalyzer::analyzeParentConstructorCalled($code_base, $this); PropertyTypesAnalyzer::analyzePropertyTypes($code_base, $this); // Let any configured plugins analyze the class ConfigPluginSet::instance()->analyzeClass($code_base, $this); }