Example #1
0
File: CLI.php Project: techart/tao
 /**
  * Запускает CLI-приложение
  *
  * @param array $argv
  */
 public static function run_module(array $argv)
 {
     Core::load($argv[0]);
     if (Core_Types::reflection_for($module = Core_Types::real_class_name_for($argv[0]))->implementsInterface('CLI_RunInterface')) {
         return call_user_func(array($module, 'main'), $argv);
     } else {
         throw new CLI_NotRunnableModuleException($argv[0]);
     }
 }
Example #2
0
File: WS.php Project: techart/tao
 protected static function adapter_module($fallback = false)
 {
     if (!$fallback) {
         $adapter = self::$options['default_adapter'];
     } else {
         $adapter = self::$options['fallback_adapter'];
     }
     if (!isset(self::$options['adapter_module'][$adapter])) {
         throw new WS_Exception("Adapter '{$adapter}' module not found");
     }
     $module = self::$options['adapter_module'][$adapter];
     Core::load($module);
     return Core_Types::real_class_name_for($module);
 }
Example #3
0
File: SQL.php Project: techart/tao
 protected function row_get_type()
 {
     return Core_Types::real_class_name_for($this);
 }
Example #4
0
 /**
  * @param DSL_Script_Action $action
  *
  * @return DSL_Builder
  */
 protected function builder_for(DSL_Script_Action $action, $class = '')
 {
     return Core::make($class ? $class : Core_Types::real_class_name_for($this), $this->actions($action), $action);
 }
Example #5
0
File: Core.php Project: techart/tao
 /**
  * Подгружает модуль
  *
  * @param string $module
  *
  * @return Core_ModuleLoader
  */
 public function load($module)
 {
     if (!$this->is_loaded($module)) {
         $real_module_name = Core_Types::real_class_name_for($module);
         $this->mark_as_loaded($module);
         $cached_path = Core::cached_modules($module);
         if ($cached_path) {
             $loaded = true;
             //FIXME:
             if (!Core_Strings::starts_with($cached_path, '.') && !Core_Strings::starts_with($cached_path, '/')) {
                 $cached_path = $this->paths['*'] . '/' . $cached_path;
             }
             include_once $cached_path;
         } else {
             $loaded = $this->load_module_file($file = $this->file_path_for($module, false), $real_module_name, $module);
             if ($file && $loaded) {
                 Core::cached_modules($module, $file);
             }
         }
         if (Core::option('spl_autoload') && !$loaded) {
             return false;
         }
         if ($this->is_module($real_module_name)) {
             if (method_exists($real_module_name, 'initialize')) {
                 call_user_func(array($real_module_name, 'initialize'), isset($this->configs[$module]) ? $this->configs[$module] : array());
             }
         } else {
             throw new Core_InvalidModuleException($module);
         }
     }
     return Core::option('spl_autoload') ? true : $this;
 }
Example #6
0
File: ORM.php Project: techart/tao
 /**
  * @param string $index
  *
  * @return mixed
  */
 public function offsetGet($index)
 {
     switch (true) {
         case method_exists($this, $name = "row_get_{$index}"):
             return $this->{$name}();
         case $index === '__class':
             return Core_Types::real_class_name_for($this);
         default:
             return $this->get($index, $name);
     }
 }
Example #7
0
File: JSON.php Project: techart/tao
 /**
  * @param string $operation
  * @param        $object
  *
  * @return boolean
  */
 public function can($operation, $object)
 {
     return method_exists($this, $m = $operation . '_' . strtolower(Core_Types::real_class_name_for($object))) ? $m : false;
 }
Example #8
0
File: Unit.php Project: techart/tao
 /**
  * @param string $name
  *
  * @return Dev_Unit_AssertBundle
  */
 private function load_bundle($name)
 {
     $mname = 'Dev.Unit.Assert.' . Core_Strings::capitalize($name);
     $mclass = Core_Types::real_class_name_for($mname);
     Core::load($mname);
     if (Core_Types::is_subclass_of('Dev.Unit.AssertBundleModuleInterface', $mclass) && ($bundle = call_user_func(array($mclass, 'bundle'))) instanceof Dev_Unit_AssertBundle) {
         return $this->bundles[$name] = $bundle;
     } else {
         throw new Dev_Unit_InvalidAssertBundleException($name);
     }
 }
Example #9
0
File: Data.php Project: techart/tao
 public function branch($name, array $items = array())
 {
     $name = (string) $name;
     if (!isset($this->data[$name])) {
         $class_name = Core_Types::real_class_name_for($this);
         $this->data[$name] = new $class_name();
         foreach ($items as $k => &$v) {
             $this->data[$name]->{$k} = $v;
         }
         return $this->data[$name];
     }
     throw new Core_ReadOnlyPropertyException($name);
 }
Example #10
0
 /**
  * @param array $classmap
  *
  * @return Service_Google_AdWords_Service
  */
 protected function classmap(array $mappings, $prefix = 'Service.Google.AdWords.', $default_class = 'Service.Google.AdWords.Entity')
 {
     foreach ($mappings as $k => $v) {
         if (is_numeric($k)) {
             $this->classmap[$v] = Core_Types::real_class_name_for(Core_Types::class_exists($class = $prefix . $v) ? $class : $default_class);
         } else {
             $this->classmap[$k] = $v;
         }
     }
     return $this;
 }
Example #11
0
 /**
  * Конструктор
  *
  * @param string|null $type      Тип делегируемого объекта
  * @param array       $listeners список "слушателей"
  */
 public function __construct($type = null, array $listeners = array())
 {
     if ($type) {
         $this->type = Core_Types::real_class_name_for($type);
     }
     parent::__construct($listeners);
 }
Example #12
0
File: REST.php Project: techart/tao
 /**
  * @param string         $classname
  * @param WS_Environment $env
  * @param array          $parms
  *
  * @return mixed
  */
 protected function instantiate(WS_Services_REST_Resource $resource, WS_Environment $env, array $parms)
 {
     if ($resource->need_load) {
         Core::autoload($resource->classname);
         // Core::load($resource->is_module ?
         //   $resource->classname :
         //   Core_Types::module_name_for($resource->classname));
     }
     $r = new ReflectionClass(Core_Types::real_class_name_for($resource->classname));
     return ($c = $r->getConstructor()) ? $r->newInstanceArgs($this->make_args($c->getParameters(), $env, $parms)) : $r->newInstance();
 }
Example #13
0
File: CMS.php Project: techart/tao
 public static function get_component_name_for($object)
 {
     $name = null;
     $class = Core_Types::real_class_name_for($object);
     $parts = explode('_', $class);
     if ($parts[0] == 'Component') {
         $name = $parts[1];
     }
     return $name;
 }
Example #14
0
 public function __construct($type = null)
 {
     $this->type = Core_Types::real_class_name_for($type);
 }