getDeclaringClass()->getName() !== self::class; } /** * Get whether the report provides HTML * * @return bool */ public function providesHtml() { try { $method = new \ReflectionMethod($this, 'getHtml'); } catch (\ReflectionException $e) { return false; } return $method->getDeclaringClass()->getName() !== self::class; } /** * Get the module name of the report * * @return string */ final public function getModuleName() { return ClassLoader::extractModuleName(get_class($this)); } /** * Get all provided reports * * @return ReportHook[] */ final public static function getReports() { return Hook::all('reporting/Report'); } }