示例#1
0
 /**
  * @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;
     }
 }
示例#2
0
 /**
  * @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];
 }
示例#6
0
<?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'));