/** * Retrieve a Reflection object for the file a shortcode is in. * * @uses $this->shortcode * @uses $this->reflection_object */ private function set_reflection_object() { $shortcodes = $GLOBALS['shortcode_tags']; if (empty($this->shortcode) || !isset($shortcodes[$this->shortcode])) { // Not a registered shortcode. return; } $callback = $shortcodes[$this->shortcode]; if (!is_string($callback) && (!is_array($callback) || is_array($callback) && (!is_string($callback[0]) && !is_object($callback[0]))) && (!is_object($callback) || is_object($callback) && !Debug_Bar_Shortcodes_Render::is_closure($callback))) { // Not a valid callback. return; } /* Set up reflection. */ if (is_string($callback) && false === strpos($callback, '::') || is_object($callback) && Debug_Bar_Shortcodes_Render::is_closure($callback)) { $this->reflection_object = new ReflectionFunction($callback); } else { if (is_string($callback) && false !== strpos($callback, '::')) { $this->reflection_object = new ReflectionMethod($callback); } else { if (is_array($callback)) { $this->reflection_object = new ReflectionMethod($callback[0], $callback[1]); } } } if (isset($this->reflection_object) && false === $this->reflection_object->isUserDefined()) { // Not a user defined callback, i.e. native PHP, nothing to find out about it (shouldn't ever happen). $this->reflection_object = null; } }