/** * Запускает 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]); } }
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); }
protected function row_get_type() { return Core_Types::real_class_name_for($this); }
/** * @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); }
/** * Подгружает модуль * * @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; }
/** * @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); } }
/** * @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; }
/** * @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); } }
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); }
/** * @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; }
/** * Конструктор * * @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); }
/** * @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(); }
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; }
public function __construct($type = null) { $this->type = Core_Types::real_class_name_for($type); }