]> git.agnieray.net Git - galette.git/blobdiff - galette/includes/galette.inc.php
Bump version
[galette.git] / galette / includes / galette.inc.php
index 3d14484006d30e44d2653f0771b80f47602452c4..00f62fb301be23bff6511a8742b1836c104906d0 100644 (file)
@@ -7,7 +7,7 @@
  *
  * PHP version 5
  *
- * Copyright © 2009-2017 The Galette Team
+ * Copyright © 2009-2021 The Galette Team
  *
  * This file is part of Galette (http://galette.tuxfamily.org).
  *
  * @package   Galette
  *
  * @author    Johan Cwiklinski <johan@x-tnd.be>
- * @copyright 2007-2017 The Galette Team
+ * @copyright 2007-2021 The Galette Team
  * @license   http://www.gnu.org/licenses/gpl-3.0.html GPL License 3.0 or (at your option) any later version
- * @version   SVN: $Id$
  * @link      http://galette.tuxfamily.org
  * @since     Available since 0.7-dev - 2007-10-07
  */
 
-if (!defined('GALETTE_PHP_MIN')) {
-    define('GALETTE_PHP_MIN', '5.6');
+//define galette's root directory
+if (!defined('GALETTE_ROOT')) {
+    define('GALETTE_ROOT', __DIR__ . '/../');
 }
 
+require_once GALETTE_ROOT . 'config/versions.inc.php';
+require_once GALETTE_ROOT . 'config/paths.inc.php';
+
 // check required PHP version...
 if (version_compare(PHP_VERSION, GALETTE_PHP_MIN, '<')) {
     echo 'Galette is NOT compliant with your current PHP version. ' .
-        'Galette requires PHP ' . GALETTE_PHP_MIN  .
+        'Galette requires PHP ' . GALETTE_PHP_MIN .
         ' minimum and current version is ' . phpversion();
-    die();
+    die(1);
 }
 
 $time_start = microtime(true);
 $cron = (PHP_SAPI === 'cli');
 
-//define galette's root directory
-if (!defined('GALETTE_ROOT')) {
-    define('GALETTE_ROOT', __DIR__ . '/../');
-}
-
 // define relative base path templating can use
 if (!defined('GALETTE_BASE_PATH')) {
     define('GALETTE_BASE_PATH', './');
 }
 
-require_once GALETTE_ROOT . 'config/versions.inc.php';
-require_once GALETTE_ROOT . 'config/paths.inc.php';
-
 //we'll only include relevant parts if we work from installer
 if (!isset($installer)) {
     $installer = false;
@@ -75,7 +70,8 @@ if (!$installed && !$installer) {
     die();
 }
 
-if (file_exists(GALETTE_CONFIG_PATH . 'behavior.inc.php')
+if (
+    file_exists(GALETTE_CONFIG_PATH . 'behavior.inc.php')
     && !defined('GALETTE_TESTS') && !$cron
 ) {
     include_once GALETTE_CONFIG_PATH . 'behavior.inc.php';
@@ -87,20 +83,15 @@ if (isset($installer) && $installer !== true) {
 }
 
 use Analog\Analog;
+use Analog\Handler;
+use Analog\Handler\LevelName;
 use Galette\Core;
 
-/*
-BREAKS as of Galette 0.9-dev
-// To help the built-in PHP dev server, check if the request was actually for
-// something which should probably be served as a static file
-if (PHP_SAPI === 'cli-server' && $_SERVER['SCRIPT_FILENAME'] !== __FILE__) {
-    return false;
-}*/
-
 require GALETTE_ROOT . '/vendor/autoload.php';
 
 //start profiling
-if (defined('GALETTE_XHPROF_PATH')
+if (
+    defined('GALETTE_XHPROF_PATH')
     && function_exists('xhprof_enable')
 ) {
     include_once __DIR__ . '/../lib/Galette/Common/XHProf.php';
@@ -108,109 +99,88 @@ if (defined('GALETTE_XHPROF_PATH')
     $profiler->start();
 }
 
-define('GALETTE_VERSION', 'v0.9rc3');
-define('GALETTE_COMPAT_VERSION', '0.9');
-define('GALETTE_DB_VERSION', '0.820');
+define('GALETTE_NIGHTLY', false);
+define('GALETTE_VERSION', 'v0.9.6.1');
+
+//Version to display
+if (!defined('GALETTE_HIDE_VERSION')) {
+    define('GALETTE_DISPLAY_VERSION', \Galette\Core\Galette::gitVersion(false));
+}
+
+define('GALETTE_COMPAT_VERSION', '0.9.6');
+define('GALETTE_DB_VERSION', '0.960');
 if (!defined('GALETTE_MODE')) {
-    define('GALETTE_MODE', 'PROD'); //DEV, PROD, MAINT or DEMO
+    define('GALETTE_MODE', \Galette\Core\Galette::MODE_PROD);
 }
 
 if (!isset($_COOKIE['show_galette_dashboard'])) {
     setcookie(
         'show_galette_dashboard',
         true,
-        time()+31536000 //valid for a year
+        [
+            'expires'   => time() + 31536000, //valid for a year
+            'path'      => '/'
+        ]
     );
 }
 
 if (!defined('GALETTE_DISPLAY_ERRORS')) {
-    if (GALETTE_MODE === 'DEV') {
+    if (GALETTE_MODE === \Galette\Core\Galette::MODE_DEV) {
         define('GALETTE_DISPLAY_ERRORS', 1);
     } else {
         define('GALETTE_DISPLAY_ERRORS', 0);
     }
 }
-ini_set('display_errors', 0);
-
-set_include_path(
-    GALETTE_ZEND_PATH . PATH_SEPARATOR .
-    GALETTE_PHP_MAILER_PATH . PATH_SEPARATOR .
-    GALETTE_SMARTY_PATH . PATH_SEPARATOR .
-    get_include_path()
-);
+ini_set('display_errors', (defined('GALETTE_TESTS') ? '1' : '0'));
 
 /*------------------------------------------------------------------------------
 Logger stuff
 ------------------------------------------------------------------------------*/
-if (!$cron && !defined('GALETTE_TESTS')) {
-    //set custom error handler
-    set_error_handler(
-        array(
-            "Galette\Core\Error",
-            "errorHandler"
-        )
-    );
-}
 
+error_reporting(E_ALL);
+set_error_handler(function ($severity, $message, $file, $line) {
+    if (error_reporting() & $severity) {
+        throw new \ErrorException($message, 0, $severity, $file, $line);
+    }
+});
+
+//change default format so the 3rd param is a string for level name
+Analog::$format = "%s - %s - %s - %s\n";
 $galette_run_log = null;
-$galette_debug_log = \Analog\Handler\Ignore::init();
 
 if (!defined('GALETTE_LOG_LVL')) {
     if (GALETTE_MODE === 'DEV') {
-        define('GALETTE_LOG_LVL', \Analog\Analog::DEBUG);
+        define('GALETTE_LOG_LVL', Analog::DEBUG);
     } elseif (defined('GALETTE_TESTS')) {
-        define('GALETTE_LOG_LVL', \Analog\Analog::ERROR);
+        define('GALETTE_LOG_LVL', Analog::NOTICE);
     } else {
-        define('GALETTE_LOG_LVL', \Analog\Analog::WARNING);
+        define('GALETTE_LOG_LVL', Analog::WARNING);
     }
 }
 
 if (defined('GALETTE_TESTS')) {
     $log_path = GALETTE_LOGS_PATH . 'tests.log';
-    $galette_run_log = \Analog\Handler\File::init($log_path);
+    $galette_run_log = LevelName::init(Handler\File::init($log_path));
 } else {
-    if ((!$installer || ($installer && defined('GALETTE_LOGGER_CHECKED'))) && !$cron) {
-        $now = new \DateTime();
-        $dbg_log_path = GALETTE_LOGS_PATH . 'galette_debug_' .
-            $now->format('Y-m-d')  . '.log';
-        $galette_debug_log = \Analog\Handler\File::init($dbg_log_path);
-    }
     $galette_log_var = null;
 
-    if (GALETTE_MODE === 'DEV' || $cron
-        || ( defined('GALETTE_SYS_LOG') && GALETTE_SYS_LOG === true )
-    ) {
-        //logs everything in PHP logs (per chance /var/log/http/error_log or /var/log/php-fpm/error.log)
-        $galette_run_log = \Analog\Handler\Stderr::init();
-    } else {
-        if (!$installer || ($installer && defined('GALETTE_LOGGER_CHECKED'))) {
-            //logs everything in galette log file
-            if (!isset($logfile)) {
-                //if no filename has been setted (ie. from install), set default one
-                $logfile = 'galette_run';
-            }
-            $log_path = GALETTE_LOGS_PATH . $logfile . '.log';
-            $galette_run_log = \Analog\Handler\File::init($log_path);
-        } else {
-            $galette_run_log = \Analog\Handler\Variable::init($galette_log_var);
+    if (!$installer || ($installer && defined('GALETTE_LOGGER_CHECKED'))) {
+        //logs everything in galette log file
+        if (!isset($logfile)) {
+            //if no filename has been setted (ie. from install), set default one
+            $logfile = 'galette';
         }
+        $log_path = GALETTE_LOGS_PATH . $logfile . '.log';
+        $galette_run_log = LevelName::init(Handler\File::init($log_path));
+    } else {
+        $galette_run_log = LevelName::init(Handler\Variable::init($galette_log_var));
     }
     if (!$installer) {
         Core\Logs::cleanup();
     }
 }
 
-Analog::handler(
-    \Analog\Handler\Multi::init(
-        array (
-            Analog::NOTICE  => \Analog\Handler\Threshold::init(
-                $galette_run_log,
-                GALETTE_LOG_LVL
-            ),
-            Analog::DEBUG   => $galette_debug_log
-        )
-    )
-);
+Analog::handler($galette_run_log);
 
 require_once GALETTE_ROOT . 'includes/functions.inc.php';
 
@@ -219,7 +189,7 @@ if (!$installer and !defined('GALETTE_TESTS')) {
     include_once GALETTE_CONFIG_PATH . 'config.inc.php';
 
     /**
-     * Database instanciation
+     * Database instantiation
      */
     $zdb = new Core\Db();
 
@@ -248,15 +218,14 @@ if (!$installer and !defined('GALETTE_TESTS')) {
         if (!defined('GALETTE_THEME')) {
             define(
                 'GALETTE_THEME',
-                GALETTE_BASE_PATH . 'themes/' . $preferences->pref_theme . '/'
+                'themes/' . $preferences->pref_theme . '/'
             );
         }
-
-        /** TODO: login is now handled in dependencies.php; the cron case should be aswell */
-        if ($cron) {
-            $login->logCron(basename($argv[0], '.php'));
-        }
     } else {
         $needs_update = true;
     }
 }
+
+$plugins = new Galette\Core\Plugins();
+//make sure plugins autoload is called before session start
+$plugins->autoload(GALETTE_PLUGINS_PATH);