public function get_component() { $components = array(); foreach ($this->trace as $item) { try { if (isset($item['file'])) { $file = $item['file']; } else { if (isset($item['class'])) { if (!is_object($item['class']) and !class_exists($item['class'], false)) { continue; } if (!method_exists($item['class'], $item['function'])) { continue; } $ref = new ReflectionMethod($item['class'], $item['function']); $file = $ref->getFileName(); } else { if (!function_exists($item['function'])) { continue; } $ref = new ReflectionFunction($item['function']); $file = $ref->getFileName(); } } $comp = QM_Util::get_file_component($file); $components[$comp->type] = $comp; } catch (ReflectionException $e) { # nothing } } foreach (QM_Util::get_file_dirs() as $type => $dir) { if (isset($components[$type])) { return $components[$type]; } } # This should not happen }