Exemplo n.º 1
0
Arquivo: boot.php Projeto: pnixx/boot
 /**
  * Инициализация для крона
  * @return void
  */
 public function cron()
 {
     define('APPLICATION_CLI', true);
     $this->root = realpath(dirname(__FILE__));
     header("Content-type: text/html; charset=UTF-8");
     //Загружаем класс ошибок
     require_once 'boot/exception/exception.php';
     require_once 'boot/exception/db.php';
     //Инклудим треды
     require_once SYSTEM_PATH . '/boot/trait/controller.php';
     foreach (glob(SYSTEM_PATH . '/boot/trait/' . '*.php') as $path) {
         require_once $path;
     }
     //Инклудим абстрактные классы
     foreach (glob(SYSTEM_PATH . '/boot/abstract/' . '*.php') as $path) {
         require_once $path;
     }
     //Инклудим интерфейсы
     foreach (glob(SYSTEM_PATH . '/boot/interface/' . '*.php') as $path) {
         require_once $path;
     }
     require_once 'library/log.php';
     //Устанавливаем отлавливатели ошибок
     set_error_handler('Boot_Exception::err_handler');
     set_exception_handler("Boot_Exception::ex");
     register_shutdown_function(function () {
         $error = error_get_last();
         if ($error) {
             Boot_Exception::err_handler($error['type'], $error['message'], $error['file'], $error['line'], null);
         } else {
             Boot::getInstance()->end();
         }
     });
     //Загружаем конфиг
     $this->config();
     //Загружаем драйвер БД
     $this->load_model();
     //Устанавливаем путь подключения моделей
     set_include_path(APPLICATION_PATH);
     spl_autoload_register(array("Boot", "autoload"));
     //Загружаем библиотеки
     $this->load_library();
     //Debug
     $this->debug(PHP_EOL . "Console at " . date("Y-m-d H:i:s O"));
     if (isset($_SERVER['argv'])) {
         $this->debug("  File: " . implode(" ", $_SERVER['argv']));
     }
 }
Exemplo n.º 2
0
 public function __construct($message = null, $code = 500, $error_code = null, Exception $previous = null)
 {
     http_response_code($code);
     if (Boot_Controller::getInstance()->isAjax()) {
         //Обрабатываем библиотеки, в которых добавлена прослушка на ошибки
         Boot_Exception::sendLibraryException(new Exception($message, $code, $previous));
         echo json_encode(array('error' => $code, 'error_code' => $error_code, 'message' => $message, 'trace' => APPLICATION_ENV == "production" ? "" : $this->getTraceAsString()));
     } else {
         throw new Boot_Exception($message, $code, $previous);
     }
     exit;
 }