/** * Logs with an arbitrary level. * * @param mixed $level * @param string $message * @param array $context * @param string $file * @param int $line * * @throws InvalidArgumentException */ public function log($level, $message, array $context = [], $file = null, $line = null) { if (static::hasFactoryClass()) { static::callFactoryClass(__FUNCTION__, func_get_args()); return; } if (!is_string($message)) { throw new InvalidArgumentException('Expecting $message to be string, but ' . gettype($message) . ' given!'); } self::open(); // build a replacement array with braces around the context keys $replace = []; foreach ($context as $key => $val) { $replace['{' . $key . '}'] = $val; } // interpolate replacement values into the message and return $message = strtr($message, $replace); $logData = [$level, $message]; if ($file && $line) { $logData[] = str_replace(rex_path::base(), '', $file); $logData[] = $line; } self::$file->add($logData); // forward the error into phps' error log error_log($message, 0); }
echo $fragment->parse('core/page/section.php'); } // ---------------------------------- Step 3 . Perms, Environment $error_array = []; $success_array = []; $errors = rex_setup::checkEnvironment(); if (count($errors) > 0) { foreach ($errors as $error) { $error_array[] = rex_view::error($error); } } else { $success_array[] = rex_i18n::msg('setup_308'); } $res = rex_setup::checkFilesystem(); if (count($res) > 0) { $base = rex_path::base(); foreach ($res as $key => $messages) { if (count($messages) > 0) { $li = []; foreach ($messages as $message) { $li[] = '<li>' . str_replace($base, '', $message) . '</li>'; } $error_array[] = '<p>' . rex_i18n::msg($key) . '</p><ul>' . implode('', $li) . '</ul>'; } } } else { $success_array[] = rex_i18n::msg('setup_309'); } if ($step > 2 && count($error_array) > 0) { $step = 3; }
private function shouldIgnore($path) { static $ignore; if (null === $ignore) { $ignore = file(rex_path::base('.gitignore'), FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES); $ignore = array_filter($ignore, function ($path) { return '#' !== $path[0]; }); $ignore = array_merge($ignore, ['/redaxo/src/addons/be_style/vendor/bootstrap/lib/', '/redaxo/src/addons/be_style/vendor/bootstrap/tasks/', '/redaxo/src/addons/be_style/vendor/bootstrap/templates/', '/redaxo/src/addons/be_style/vendor/bootstrap/test/', '/redaxo/src/addons/be_style/vendor/bootstrap-select/js/', '/redaxo/src/addons/be_style/vendor/bootstrap-select/less/', '/redaxo/src/addons/be_style/vendor/font-awesome/css/', '/redaxo/src/addons/be_style/vendor/font-awesome/less/', '/redaxo/src/addons/be_style/vendor/font-awesome/src/', '/redaxo/src/addons/be_style/vendor/scssphp/tests/']); } $subpath = substr($path, strlen(rex_path::base()) - 1); foreach ($ignore as $pattern) { if (0 === strpos($subpath, $pattern)) { return true; } } return false; }
/** * @param string $dir */ private static function _addDirectory($dir) { $dirPath = rex_path::base($dir); if (!is_dir($dirPath)) { return; } if (!isset(self::$dirs[$dir])) { self::$dirs[$dir] = []; } $files = self::$dirs[$dir]; $iterator = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($dirPath, RecursiveDirectoryIterator::SKIP_DOTS)); foreach ($iterator as $path => $file) { /** @var SplFileInfo $file */ if (!$file->isFile() || !in_array($file->getExtension(), ['php', 'inc'])) { continue; } $file = self::normalizePath($path); unset($files[$file]); $checksum = md5_file($path); if (isset(self::$dirs[$dir][$file]) && self::$dirs[$dir][$file] === $checksum) { continue; } self::$dirs[$dir][$file] = $checksum; self::$cacheChanged = true; $classes = self::findClasses($path); foreach ($classes as $class) { $class = strtolower($class); if (!isset(self::$classes[$class])) { self::$classes[$class] = $file; } } } foreach ($files as $file) { unset(self::$dirs[$file]); self::$cacheChanged = true; } }
/** * Initializes the class. * * @param string $htdocs Htdocs path * @param string $backend Backend folder name */ public static function init($htdocs, $backend) { self::$base = realpath($htdocs) . '/'; self::$backend = $backend; }
protected function printDefectTrace(PHPUnit_Framework_TestFailure $defect) { $stacktrace = PHPUnit_Util_Filter::getFilteredStacktrace($defect->thrownException()); $stacktrace = str_replace([$this->backtrace, rex_path::base()], '', $stacktrace); $this->write($defect->getExceptionAsString() . "\n" . $stacktrace); }