]> git.mxchange.org Git - friendica.git/blobdiff - boot.php
Merge remote-tracking branch 'upstream/develop' into better-resource-id
[friendica.git] / boot.php
index 6b6d065ad4a69da1e361dbc7a72a7b941042a2f8..0d26403bcb9a1f94317741e7b1313163b916fb1b 100644 (file)
--- a/boot.php
+++ b/boot.php
@@ -1,7 +1,6 @@
 <?php
-
-/** @file boot.php
- *
+/**
+ * @file_tag_unsave_file boot.php
  * This file defines some global constants and includes the central App class.
  */
 
 require_once __DIR__ . DIRECTORY_SEPARATOR . 'vendor' . DIRECTORY_SEPARATOR . 'autoload.php';
 
 use Friendica\App;
-use Friendica\Core\System;
-use Friendica\Core\Cache;
+use Friendica\Core\Addon;
 use Friendica\Core\Config;
+use Friendica\Core\L10n;
 use Friendica\Core\PConfig;
+use Friendica\Core\Protocol;
+use Friendica\Core\System;
 use Friendica\Core\Worker;
 use Friendica\Database\DBM;
-use Friendica\Model\Contact;
 use Friendica\Database\DBStructure;
-use Friendica\Module\Login;
+use Friendica\Model\Contact;
+use Friendica\Model\Conversation;
+use Friendica\Util\DateTimeFormat;
 
-require_once 'include/network.php';
-require_once 'include/plugin.php';
 require_once 'include/text.php';
-require_once 'include/datetime.php';
-require_once 'include/pgettext.php';
-require_once 'include/nav.php';
-require_once 'include/identity.php';
 
 define('FRIENDICA_PLATFORM',     'Friendica');
 define('FRIENDICA_CODENAME',     'Asparagus');
 define('FRIENDICA_VERSION',      '3.6-dev');
 define('DFRN_PROTOCOL_VERSION',  '2.23');
-define('DB_UPDATE_VERSION',      1242);
+define('DB_UPDATE_VERSION',      1254);
 define('NEW_UPDATE_ROUTINE_VERSION', 1170);
 
 /**
@@ -61,7 +57,6 @@ const DB_UPDATE_FAILED = 2;      // Database check failed
  * This can be used in HTML and JavaScript where needed a line break.
  */
 define('EOL',                    "<br />\r\n");
-define('ATOM_TIME',              'Y-m-d\TH:i:s\Z');
 
 /**
  * @brief Image storage quality.
@@ -239,47 +234,51 @@ define('CP_USERS_AND_GLOBAL',    2);
 
 /**
  * @name Protocols
+ * @deprecated since version 3.6
+ * @see Conversation
  *
  * Different protocols that we are storing
  * @{
  */
-define('PROTOCOL_UNKNOWN',         0);
-define('PROTOCOL_DFRN',            1);
-define('PROTOCOL_DIASPORA',        2);
-define('PROTOCOL_OSTATUS_SALMON',  3);
-define('PROTOCOL_OSTATUS_FEED',    4); // Deprecated
-define('PROTOCOL_GS_CONVERSATION', 5); // Deprecated
-define('PROTOCOL_SPLITTED_CONV',   6);
+define('PROTOCOL_UNKNOWN'        , Conversation::PROTOCOL_UNKNOWN);
+define('PROTOCOL_DFRN'           , Conversation::PROTOCOL_DFRN);
+define('PROTOCOL_DIASPORA'       , Conversation::PROTOCOL_DIASPORA);
+define('PROTOCOL_OSTATUS_SALMON' , Conversation::PROTOCOL_OSTATUS_SALMON);
+define('PROTOCOL_OSTATUS_FEED'   , Conversation::PROTOCOL_OSTATUS_FEED);    // Deprecated
+define('PROTOCOL_GS_CONVERSATION', Conversation::PROTOCOL_GS_CONVERSATION); // Deprecated
+define('PROTOCOL_SPLITTED_CONV'  , Conversation::PROTOCOL_SPLITTED_CONV);
 /**
  * @}
  */
 
 /**
- * @name Network
+ * @name Network constants
+ * @deprecated since version 3.6
+ * @see Protocol
  *
  * Network and protocol family types
  * @{
  */
-define('NETWORK_DFRN',             'dfrn');    // Friendica, Mistpark, other DFRN implementations
-define('NETWORK_ZOT',              'zot!');    // Zot! - Currently unsupported
-define('NETWORK_OSTATUS',          'stat');    // GNU-social, Pleroma, Mastodon, other OStatus implementations
-define('NETWORK_FEED',             'feed');    // RSS/Atom feeds with no known "post/notify" protocol
-define('NETWORK_DIASPORA',         'dspr');    // Diaspora
-define('NETWORK_MAIL',             'mail');    // IMAP/POP
-define('NETWORK_FACEBOOK',         'face');    // Facebook API
-define('NETWORK_LINKEDIN',         'lnkd');    // LinkedIn
-define('NETWORK_XMPP',             'xmpp');    // XMPP - Currently unsupported
-define('NETWORK_MYSPACE',          'mysp');    // MySpace - Currently unsupported
-define('NETWORK_GPLUS',            'goog');    // Google+
-define('NETWORK_PUMPIO',           'pump');    // pump.io
-define('NETWORK_TWITTER',          'twit');    // Twitter
-define('NETWORK_DIASPORA2',        'dspc');    // Diaspora connector
-define('NETWORK_STATUSNET',        'stac');    // Statusnet connector
-define('NETWORK_APPNET',           'apdn');    // app.net - Dead protocol
-define('NETWORK_NEWS',             'nntp');    // Network News Transfer Protocol - Currently unsupported
-define('NETWORK_ICALENDAR',        'ical');    // iCalendar - Currently unsupported
-define('NETWORK_PNUT',             'pnut');    // pnut.io - Currently unsupported
-define('NETWORK_PHANTOM',          'unkn');    // Place holder
+define('NETWORK_DFRN'     , Protocol::DFRN);      // Friendica, Mistpark, other DFRN implementations
+define('NETWORK_ZOT'      , Protocol::ZOT);       // Zot! - Currently unsupported
+define('NETWORK_OSTATUS'  , Protocol::OSTATUS);   // GNU-social, Pleroma, Mastodon, other OStatus implementations
+define('NETWORK_FEED'     , Protocol::FEED);      // RSS/Atom feeds with no known "post/notify" protocol
+define('NETWORK_DIASPORA' , Protocol::DIASPORA);  // Diaspora
+define('NETWORK_MAIL'     , Protocol::MAIL);      // IMAP/POP
+define('NETWORK_FACEBOOK' , Protocol::FACEBOOK);  // Facebook API
+define('NETWORK_LINKEDIN' , Protocol::LINKEDIN);  // LinkedIn
+define('NETWORK_XMPP'     , Protocol::XMPP);      // XMPP - Currently unsupported
+define('NETWORK_MYSPACE'  , Protocol::MYSPACE);   // MySpace - Currently unsupported
+define('NETWORK_GPLUS'    , Protocol::GPLUS);     // Google+
+define('NETWORK_PUMPIO'   , Protocol::PUMPIO);    // pump.io
+define('NETWORK_TWITTER'  , Protocol::TWITTER);   // Twitter
+define('NETWORK_DIASPORA2', Protocol::DIASPORA2); // Diaspora connector
+define('NETWORK_STATUSNET', Protocol::STATUSNET); // Statusnet connector
+define('NETWORK_APPNET'   , Protocol::APPNET);    // app.net - Dead protocol
+define('NETWORK_NEWS'     , Protocol::NEWS);      // Network News Transfer Protocol - Currently unsupported
+define('NETWORK_ICALENDAR', Protocol::ICALENDAR); // iCalendar - Currently unsupported
+define('NETWORK_PNUT'     , Protocol::PNUT);      // pnut.io - Currently unsupported
+define('NETWORK_PHANTOM'  , Protocol::PHANTOM);   // Place holder
 /**
  * @}
  */
@@ -289,7 +288,7 @@ define('NETWORK_PHANTOM',          'unkn');    // Place holder
  * and existing allocations MUST NEVER BE CHANGED
  * OR RE-ASSIGNED! You may only add to them.
  */
-$netgroup_ids = array(
+$netgroup_ids = [
        NETWORK_DFRN     => (-1),
        NETWORK_ZOT      => (-2),
        NETWORK_OSTATUS  => (-3),
@@ -311,7 +310,7 @@ $netgroup_ids = array(
        NETWORK_PNUT      => (-20),
 
        NETWORK_PHANTOM  => (-127),
-);
+];
 
 /**
  * Maximum number of "people who like (or don't like) this"  that we will list by name
@@ -505,7 +504,7 @@ function startup()
        ini_set('pcre.backtrack_limit', 500000);
 
        if (get_magic_quotes_gpc()) {
-               $process = array(&$_GET, &$_POST, &$_COOKIE, &$_REQUEST);
+               $process = [&$_GET, &$_POST, &$_COOKIE, &$_REQUEST];
                while (list($key, $val) = each($process)) {
                        foreach ($val as $k => $v) {
                                unset($process[$key][$k]);
@@ -784,7 +783,7 @@ function run_update_function($x)
                        //send the administrator an e-mail
                        DBStructure::updateFail(
                                $x,
-                               sprintf(t('Update %s failed. See error logs.'), $x)
+                               L10n::t('Update %s failed. See error logs.', $x)
                        );
                        return false;
                } else {
@@ -800,66 +799,68 @@ function run_update_function($x)
 }
 
 /**
- * @brief Synchronise plugins:
+ * @brief Synchronise addons:
  *
  * $a->config['system']['addon'] contains a comma-separated list of names
- * of plugins/addons which are used on this system.
+ * of addons which are used on this system.
  * Go through the database list of already installed addons, and if we have
  * an entry, but it isn't in the config list, call the uninstall procedure
  * and mark it uninstalled in the database (for now we'll remove it).
- * Then go through the config list and if we have a plugin that isn't installed,
+ * Then go through the config list and if we have a addon that isn't installed,
  * call the install procedure and add it to the database.
  *
  * @param object $a App
  */
-function check_plugins(App $a)
+function check_addons(App $a)
 {
        $r = q("SELECT * FROM `addon` WHERE `installed` = 1");
        if (DBM::is_result($r)) {
                $installed = $r;
        } else {
-               $installed = array();
+               $installed = [];
        }
 
-       $plugins = Config::get('system', 'addon');
-       $plugins_arr = array();
+       $addons = Config::get('system', 'addon');
+       $addons_arr = [];
 
-       if ($plugins) {
-               $plugins_arr = explode(',', str_replace(' ', '', $plugins));
+       if ($addons) {
+               $addons_arr = explode(',', str_replace(' ', '', $addons));
        }
 
-       $a->plugins = $plugins_arr;
+       $a->addons = $addons_arr;
 
-       $installed_arr = array();
+       $installed_arr = [];
 
        if (count($installed)) {
                foreach ($installed as $i) {
-                       if (!in_array($i['name'], $plugins_arr)) {
-                               uninstall_plugin($i['name']);
+                       if (!in_array($i['name'], $addons_arr)) {
+                               Addon::uninstall($i['name']);
                        } else {
                                $installed_arr[] = $i['name'];
                        }
                }
        }
 
-       if (count($plugins_arr)) {
-               foreach ($plugins_arr as $p) {
+       if (count($addons_arr)) {
+               foreach ($addons_arr as $p) {
                        if (!in_array($p, $installed_arr)) {
-                               install_plugin($p);
+                               Addon::install($p);
                        }
                }
        }
 
-       load_hooks();
+       Addon::loadHooks();
 
        return;
 }
 
-function get_guid($size = 16, $prefix = "")
+function get_guid($size = 16, $prefix = '')
 {
-       if ($prefix == "") {
+       if (is_bool($prefix)) {
+               $prefix = '';
+       } elseif ($prefix == '') {
                $a = get_app();
-               $prefix = hash("crc32", $a->get_hostname());
+               $prefix = hash('crc32', $a->get_hostname());
        }
 
        while (strlen($prefix) < ($size - 13)) {
@@ -868,22 +869,19 @@ function get_guid($size = 16, $prefix = "")
 
        if ($size >= 24) {
                $prefix = substr($prefix, 0, $size - 22);
-               return(str_replace(".", "", uniqid($prefix, true)));
+               return str_replace('.', '', uniqid($prefix, true));
        } else {
                $prefix = substr($prefix, 0, max($size - 13, 0));
-               return(uniqid($prefix));
+               return uniqid($prefix);
        }
 }
 
 /**
  * @brief Used to end the current process, after saving session state.
+ * @deprecated
  */
 function killme()
 {
-       if (!get_app()->is_backend()) {
-               session_write_close();
-       }
-
        exit();
 }
 
@@ -967,7 +965,7 @@ function notice($s)
 {
        $a = get_app();
        if (!x($_SESSION, 'sysmsg')) {
-               $_SESSION['sysmsg'] = array();
+               $_SESSION['sysmsg'] = [];
        }
        if ($a->interactive) {
                $_SESSION['sysmsg'][] = $s;
@@ -990,7 +988,7 @@ function info($s)
        }
 
        if (!x($_SESSION, 'sysmsg_info')) {
-               $_SESSION['sysmsg_info'] = array();
+               $_SESSION['sysmsg_info'] = [];
        }
        if ($a->interactive) {
                $_SESSION['sysmsg_info'][] = $s;
@@ -1011,7 +1009,7 @@ function get_max_import_size()
 
 function current_theme()
 {
-       $app_base_themes = array('duepuntozero', 'dispy', 'quattro');
+       $app_base_themes = ['duepuntozero', 'dispy', 'quattro'];
 
        $a = get_app();
 
@@ -1148,14 +1146,14 @@ function feed_birthday($uid, $tz)
        if (DBM::is_result($p)) {
                $tmp_dob = substr($p[0]['dob'], 5);
                if (intval($tmp_dob)) {
-                       $y = datetime_convert($tz, $tz, 'now', 'Y');
+                       $y = DateTimeFormat::timezoneNow($tz, 'Y');
                        $bd = $y . '-' . $tmp_dob . ' 00:00';
                        $t_dob = strtotime($bd);
-                       $now = strtotime(datetime_convert($tz, $tz, 'now'));
+                       $now = strtotime(DateTimeFormat::timezoneNow($tz));
                        if ($t_dob < $now) {
                                $bd = $y + 1 . '-' . $tmp_dob . ' 00:00';
                        }
-                       $birthday = datetime_convert($tz, 'UTC', $bd, ATOM_TIME);
+                       $birthday = DateTimeFormat::convert($bd, 'UTC', $tz, DateTimeFormat::ATOM);
                }
        }
 
@@ -1239,10 +1237,10 @@ function explode_querystring($query)
                $args = array_values($args);
        }
 
-       return array(
+       return [
                'base' => $base,
                'args' => $args,
-       );
+       ];
 }
 
 /**
@@ -1572,7 +1570,7 @@ function infinite_scroll_data($module)
                        $reload_uri .= "&offset=" . urlencode($a->page_offset);
                }
 
-               $arr = array("pageno" => $pageno, "reload_uri" => $reload_uri);
+               $arr = ["pageno" => $pageno, "reload_uri" => $reload_uri];
 
                return $arr;
        }