/** * Конструктор * */ public function __construct() { $this->options = CLI_GetOpt::Parser()->boolean_option('show_usage', '-h', '--help', 'Shows help message'); $this->log = Log::logger()->context(array('module' => Core_Types::module_name_for($this))); $this->config = Core::object(array('log' => Log::logger(), 'show_usage' => false)); }
public static function autoload($class, $real_name = null) { if (!self::$autoload) { return; } $real_name = !is_null($real_name) ? $real_name : Core_Types::real_class_name_for($class); if (!class_exists($real_name, false)) { $module = Core_Types::module_name_for($class); $module_real = Core_Types::real_class_name_for($module); $files = array(); foreach (array('class' => $class, 'module' => $module) as $key => $value) { $file = self::cached_modules($value); if (!$file) { $file = Core::loader()->file_path_for($value, false); if ($file) { self::cached_modules($value, $file); } } $files[$key] = $file; } if (file_exists($files['class'])) { self::$loader->load($class); } if (!class_exists($real_name, false) && !class_exists($module_real, false) && file_exists($files['module'])) { self::$loader->load($module); } } }
public function template($data = array(), $name = 'template') { static $template = array(); if (Templates::is_absolute_path($name)) { return $name; } if (isset($data['template'])) { $data_templates = is_string($data['template']) ? array('template' => $data['template']) : $data['template']; if (isset($data_templates[$name]) && IO_FS::exists($data_templates[$name])) { return $data_templates[$name]; } } $type = isset($data['type']) ? $data['type'] : 'input'; $key = $type . '_' . $name; if (isset($template[$key])) { return $template[$key]; } /*if ($name == 'template' && isset($data['template name'])) $name = $data['template name'];*/ $file = $this->dir() . "/{$name}.phtml"; if (IO_FS::exists($file)) { return $template[$key] = $file; } $types = array($type); $parents = Core_Types::class_hierarchy_for($this); if (count($parents) >= 3) { foreach (array_slice($parents, 1, count($parents) - 2) as $p) { $type = CMS_Fields::type_by_class($p); if (empty($type)) { $type = CMS_Fields::type_by_class(Core_Types::module_name_for($p)); } $types[] = $type; } } foreach ($types as $t) { if (empty($t)) { continue; } $view = Templates_HTML::Template('fields/' . $t . '/' . $name); if ($view->exists()) { return $template[$key] = $view->path; } } $view = Templates_HTML::Template('fields/' . $name); if ($view->exists()) { return $template[$key] = $view->path; } return $template[$key] = $name; }
/** * Выполняет набор тестов * * @param $tests * * @return Dev_Unit_TestResult */ public static function run(Dev_Unit_RunInterface $test) { Core::load(Core_Types::module_name_for(self::$options['runner'])); return Core::make(self::$options['runner'])->run($test); }
/** * @return Dev_Unit_Test_Application */ protected function setup() { $this->options->brief('Dev.Unit.Run.Text' . Dev_Unit_Run_Text::VERSION . "\n" . 'Specify test class or test module names as arguments')->string_option('prefix', '-p', '--prefix', 'Test class prefix')->boolean_option('noprefix', '-n', '--no-prefix', 'Don\'t use class prefix'); $this->log->dispatcher->to_stream(IO::stderr())->where('module', '=', Core_Types::module_name_for($this)); $this->config->prefix = 'Test.'; $this->config->noprefix = false; }
/** * @param string $name * * @return string */ private function default_path_for($name) { return implode(array('.', 'test', 'data', str_replace('.', DIRECTORY_SEPARATOR, preg_replace('{^[^.]+\\.}', '', Core_Types::module_name_for($this))), $name), DIRECTORY_SEPARATOR); }