/** * @param mixed $adapter * @param array $config */ public function setAdapter($adapter, $config = array()) { if (is_string($adapter)) { Loader::import($adapter); $adapter = new $adapter($config); } if (is_object($adapter) && $adapter instanceof BaseAdapter) { $this->_adapter = $adapter; } }
/** * @param $path * @param $owner * @throws Exception * @return Widget */ public static function loadWidget($path, $owner) { $t = explode('.', $path); $className = end($t); Loader::import($path . '.' . $className, true); /** @var Widget $class */ $class = new $className(); $class->setName($className); if (!$class instanceof Widget) { throw new Exception("{$className} not is \\Toxotes\\Widget instance"); } $class->setOwner($owner); return $class; }
/** * Attaches a behavior to this component. * This method will create the behavior object based on the given * configuration. After that, the behavior object will be initialized * by calling its {@link IBehavior::setOwner} method. * @param string $name the behavior's name. It should uniquely identify this behavior. * @param mixed $behavior the behavior object or class path of behavior * @param array $option * @throws Exception * @param array $option * @internal param array $options optional parameter @see IBehavior::setup * @return IBehavior the behavior object * */ public function attachBehavior($name, $behavior, $option = array()) { if (is_string($behavior)) { Loader::import($behavior); $behavior = new $behavior(); /* @var BaseBehavior $behavior */ } if (!$behavior instanceof IBehavior) { throw new Exception("Behavior was attached must extends from \\Flywheel\\Behavior\\BaseBehavior"); } $behavior->setEnable(true); $behavior->setOwner($this); $behavior->init(); $behavior->setup($option); $this->_behaviors[$name] = $behavior; }
private function _import($aliases) { if (is_array($aliases) && ($size = sizeof($aliases)) > 0) { for ($i = 0; $i < $size; ++$i) { Loader::import($aliases[$i]); } } }
/** * @param $class * @param null $params * @param null $render * @return \Flywheel\Controller\Widget */ public static function getWidget($class, $params = null, $render = null) { $k = 'widget_' . $class; if (!isset(self::$_registry[$k])) { $class = Loader::import($class, true); self::$_registry[$k] = new $class($render); } if (!empty($params)) { foreach ($params as $p => $value) { self::$_registry[$k]->{$p} = $value; } } return self::$_registry[$k]; }
<?php use Flywheel\Loader; define('ROOT_PATH', dirname(__FILE__)); define('GLOBAL_PATH', ROOT_PATH . DIRECTORY_SEPARATOR . 'global'); define('LIBRARY_PATH', ROOT_PATH . DIRECTORY_SEPARATOR . 'library'); define('RUNTIME_PATH', ROOT_PATH . DIRECTORY_SEPARATOR . 'runtime'); define('PUBLIC_DIR', ROOT_PATH . DIRECTORY_SEPARATOR . 'public'); define('MEDIA_DIR', ROOT_PATH . DIRECTORY_SEPARATOR . 'public' . DIRECTORY_SEPARATOR . 'media'); define('EXTENSION_DIR', ROOT_PATH . DIRECTORY_SEPARATOR . 'extension'); define('FRONTEND_DIR', ROOT_PATH . DIRECTORY_SEPARATOR . 'apps/Frontend'); require_once ROOT_PATH . '/vendor/autoload.php'; //add namespace before register Loader::addNamespace('Toxotes', LIBRARY_PATH); Loader::register(); Loader::setPathOfAlias('root', ROOT_PATH); Loader::setPathOfAlias('global', GLOBAL_PATH); Loader::setPathOfAlias('library', LIBRARY_PATH); Loader::setPathOfAlias('extension', EXTENSION_DIR); Loader::import('global.include.*'); set_error_handler(array('Toxotes\\ErrorHandler', 'errorHandling')); set_exception_handler(array('Toxotes\\ErrorHandler', 'exceptionHandling'));