Beispiel #1
0
 /**
  * Конструктор
  *
  */
 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));
 }
Beispiel #2
0
 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);
         }
     }
 }
Beispiel #3
0
 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;
 }
Beispiel #4
0
 /**
  * Выполняет набор тестов
  *
  * @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);
 }
Beispiel #5
0
 /**
  * @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;
 }
Beispiel #6
0
 /**
  * @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);
 }