/** * Return log writers * * @return array */ public static function getWriters() { if (is_null(self::$_writers)) { $writers = Config::getInstance("JooS_Log")->writers; /* @var $writers JooS_Config */ if (!is_null($writers)) { foreach ($writers->valueOf() as $name) { $name = ucfirst(strtolower($name)); $className = Loader::getClassName(__NAMESPACE__ . "\\", $name); if (Loader::loadClass($className)) { $writer = new $className(); if ($writer instanceof Log_Interface) { self::addWriter($writer); } } } } else { self::$_writers = array(); } } return self::$_writers; }
/** * Creates a new helper's instance * * @param string $helper Name * * @return Helper_Interface */ private function _getHelper($helper) { $instance = null; foreach ($this->_prefixes as $prefix) { $className = $prefix . "\\" . $helper; if (Loader::loadClass($className)) { if (is_subclass_of($className, __NAMESPACE__ . "\\Helper_Interface")) { $instance = new $className(); /* @var $instance Helper_Interface */ $instance->setSubject($this->_subject); } break; } } return $instance; }
/** * Notify observers. * * @return Event */ public final function notify() { $observers = array_values($this->_observers); foreach ($observers as $observer) { switch (false) { case is_array($observer): case isset($observer[0]): case isset($observer[1]): case is_string($observer[0]): break; default: Loader::loadClass($observer[0]); break; } if (!is_callable($observer)) { continue; } call_user_func($observer, $this); } return $this; }