コード例 #1
0
ファイル: CLayout.php プロジェクト: microframework/mfe-core
 /**
  * @return string
  */
 public function render()
 {
     if (!$this->layout) {
         CLog::getInstance()->_error('[' . __CLASS__ . '] Layout file not selected!');
         mfe::stop(0xe3);
     }
     ob_start(function ($layout) {
         return preg_replace_callback('#\\{([a-z0-9\\-_\\#]*?)\\}#Ssi', function ($match) {
             return isset($this->{substr($match[0], 1, -1)}) ? $this->{substr($match[0], 1, -1)} : $match[0];
         }, $layout);
     });
     if (!$this->loadLayout()) {
         CLog::getInstance()->_error('[' . __CLASS__ . '] Not found layout file: ' . $this->layout . $this->layout_extension . ' in directories: ' . PHP_EOL . implode('; ' . PHP_EOL, mfe::app()->loader->getRealPaths('@engine.@layout.', true)));
         mfe::stop(0xe3);
     }
     $this->result = ob_get_contents();
     ob_clean();
     return $this->result;
 }
コード例 #2
0
ファイル: mfe.php プロジェクト: microframework/mfe-core
 /**
  * Start engine
  *
  * Here the engine is registered and prepares for work all components
  *
  * @return bool
  * @throws CException
  */
 public final function startEngine()
 {
     //mfe::dependence('CDisplay');
     //TODO:: Where from phar archive register specific paths
     if (self::option('MFE_PHAR_INIT')) {
     }
     $RUN = array_reverse(explode('/', $_SERVER['SCRIPT_NAME']))[0];
     $REAL_PATH = dirname(realpath($RUN));
     self::registerAlias('@engine', __DIR__);
     if (__DIR__ !== $REAL_PATH && file_exists($REAL_PATH . '/') && is_dir($REAL_PATH . '/')) {
         self::registerAlias('@engine', $REAL_PATH . '/');
     }
     self::registerAlias('@libs', 'libs');
     self::registerAlias('@core', 'core');
     //Load main libs & core files by map file!
     //if (self::loadMapFile('@libs.libs')) self::loadMap('libs'); //TODO:: Это устарело, удалить
     if (self::loadMapFile('@core.core')) {
         self::loadMap('core');
     }
     try {
         return self::trigger('engine.start');
     } catch (CException $e) {
         mfe::stop(0xe1);
     }
     return false;
 }
コード例 #3
0
ファイル: CDebug.php プロジェクト: microframework/mfe-core
 /**
  * @param $error
  * @return bool|null
  */
 public static function errorHandler($error)
 {
     $error[0] = $error[0] & call_user_func('error_reporting');
     if (!$error[0]) {
         return false;
     }
     $error[0] = isset(self::$_ERROR_CODES[$error[0]]) ? self::$_ERROR_CODES[$error[0]] : 'Unknown Error';
     if (is_null(self::$trace)) {
         if (function_exists('debug_backtrace')) {
             $backtraceArray = $backtrace = [];
             foreach (call_user_func('debug_backtrace') as $value) {
                 if (isset($value['class'])) {
                     $backtrace['class'] = $value['class'];
                 } else {
                     $backtrace['class'] = null;
                 }
                 if (isset($value['type'])) {
                     $backtrace['type'] = $value['type'];
                 } else {
                     $backtrace['type'] = null;
                 }
                 $backtrace['function'] = $value['function'];
                 if (isset($value['file'])) {
                     $backtrace['file'] = $value['file'];
                 } else {
                     $backtrace['file'] = null;
                 }
                 if (isset($value['line'])) {
                     $backtrace['line'] = $value['line'];
                 } else {
                     $backtrace['line'] = null;
                 }
                 $backtraceArray[] = $backtrace;
             }
             $error[] = array_reverse($backtraceArray);
         }
     } else {
         $error[] = self::$trace;
     }
     self::$errors[] = $error;
     if ($error[0] === E_EXCEPTION) {
         mfe::stop(0xe4);
     }
     return $error[0] === E_FATAL || $error[0] === E_ERROR || $error[0] === E_COMPILE_ERROR ? mfe::stop(0xe0) : null;
 }