]> git.mxchange.org Git - friendica.git/blobdiff - src/App.php
App::get_baseurl is now replaced with System::baseUrl
[friendica.git] / src / App.php
index d671c5f1abf3ffbff872cd47924e911ecfe1da45..a5c6f34227e7216713301712736912d6bb89c691 100644 (file)
@@ -6,6 +6,7 @@ use Friendica\Core\Config;
 use Friendica\Core\PConfig;
 
 use Cache;
+use dba;
 use dbm;
 
 use Detection\MobileDetect;
@@ -100,6 +101,7 @@ class App {
         */
        public $template_engine_instance = array();
        public $process_id;
+       public $queue;
        private $ldelim = array(
                'internal' => '',
                'smarty3' => '{{'
@@ -326,7 +328,27 @@ class App {
                        $basepath = $_SERVER['PWD'];
                }
 
-               return $basepath;
+               return self::realpath($basepath);
+       }
+
+       /**
+        * @brief Returns a normalized file path
+        *
+        * This is a wrapper for the "realpath" function.
+        * That function cannot detect the real path when some folders aren't readable.
+        * Since this could happen with some hosters we need to handle this.
+        *
+        * @param string $path The path that is about to be normalized
+        * @return string normalized path - when possible
+        */
+       public static function realpath($path) {
+               $normalized = realpath($path);
+
+               if (!is_bool($normalized)) {
+                       return $normalized;
+               } else {
+                       return $path;
+               }
        }
 
        function get_scheme() {
@@ -348,11 +370,6 @@ class App {
         * @return string Friendica server base URL
         */
        function get_baseurl($ssl = false) {
-               // Is the function called statically?
-               if (!(isset($this) && get_class($this) == __CLASS__)) {
-                       return self::$a->get_baseurl($ssl);
-               }
-
                $scheme = $this->scheme;
 
                if (Config::get('system', 'ssl_policy') == SSL_POLICY_FULL) {
@@ -406,7 +423,7 @@ class App {
                                $this->hostname = Config::get('config', 'hostname');
                        }
 
-                       if (!isset($this->hostname) OR ( $this->hostname == '')) {
+                       if (!isset($this->hostname) || ( $this->hostname == '')) {
                                $this->hostname = $hostname;
                        }
                }
@@ -499,7 +516,7 @@ class App {
 
                $tpl = get_markup_template('head.tpl');
                $this->page['htmlhead'] = replace_macros($tpl, array(
-                               '$baseurl' => $this->get_baseurl(), // FIXME for z_path!!!!
+                               '$baseurl' => $this->get_baseurl(),
                                '$local_user' => local_user(),
                                '$generator' => 'Friendica' . ' ' . FRIENDICA_VERSION,
                                '$delitem' => t('Delete this item?'),
@@ -519,7 +536,7 @@ class App {
                }
                $tpl = get_markup_template('end.tpl');
                $this->page['end'] = replace_macros($tpl, array(
-                               '$baseurl' => $this->get_baseurl() // FIXME for z_path!!!!
+                               '$baseurl' => $this->get_baseurl()
                        )) . $this->page['end'];
        }
 
@@ -560,11 +577,6 @@ class App {
         */
        function remove_baseurl($orig_url) {
 
-               // Is the function called statically?
-               if (!(isset($this) && get_class($this) == __CLASS__)) {
-                       return self::$a->remove_baseurl($orig_url);
-               }
-
                // Remove the hostname from the url if it is an internal link
                $nurl = normalise_link($orig_url);
                $base = normalise_link($this->get_baseurl());
@@ -691,20 +703,20 @@ class App {
 
                $this->remove_inactive_processes();
 
-               q('START TRANSACTION');
+               dba::transaction();
 
                $r = q('SELECT `pid` FROM `process` WHERE `pid` = %d', intval(getmypid()));
                if (!dbm::is_result($r)) {
-                       q("INSERT INTO `process` (`pid`,`command`,`created`) VALUES (%d, '%s', '%s')", intval(getmypid()), dbesc($command), dbesc(datetime_convert()));
+                       dba::insert('process', array('pid' => getmypid(), 'command' => $command, 'created' => datetime_convert()));
                }
-               q('COMMIT');
+               dba::commit();
        }
 
        /**
         * @brief Remove inactive processes
         */
        function remove_inactive_processes() {
-               q('START TRANSACTION');
+               dba::transaction();
 
                $r = q('SELECT `pid` FROM `process`');
                if (dbm::is_result($r)) {
@@ -714,7 +726,7 @@ class App {
                                }
                        }
                }
-               q('COMMIT');
+               dba::commit();
        }
 
        /**
@@ -738,7 +750,11 @@ class App {
 
                $callstack = array();
                foreach ($trace AS $func) {
-                       $callstack[] = $func['function'];
+                       if (!empty($func['class'])) {
+                               $callstack[] = $func['class'].'::'.$func['function'];
+                       } else {
+                               $callstack[] = $func['function'];
+                       }
                }
 
                return implode(', ', $callstack);
@@ -797,6 +813,8 @@ class App {
         * @return bool Is the limit reached?
         */
        function max_processes_reached() {
+               // Deactivated, needs more investigating if this check really makes sense
+               return false;
 
                if ($this->is_backend()) {
                        $process = 'backend';
@@ -848,7 +866,7 @@ class App {
                        $meminfo[$key] = (int) ($meminfo[$key] / 1024);
                }
 
-               if (!isset($meminfo['MemAvailable']) OR ! isset($meminfo['MemFree'])) {
+               if (!isset($meminfo['MemAvailable']) || ! isset($meminfo['MemFree'])) {
                        return false;
                }
 
@@ -905,7 +923,7 @@ class App {
                $cachekey = 'app:proc_run:started';
                $result = Cache::get($cachekey);
 
-               if (!is_null($result) AND ( time() - $result) < 2) {
+               if (!is_null($result) && ( time() - $result) < 2) {
                        return;
                }
 
@@ -947,7 +965,7 @@ class App {
         * @return string system username
         */
        static function systemuser() {
-               if (!function_exists('posix_getpwuid') OR ! function_exists('posix_geteuid')) {
+               if (!function_exists('posix_getpwuid') || ! function_exists('posix_geteuid')) {
                        return '';
                }
 
@@ -978,7 +996,7 @@ class App {
                        logger('Path "' . $directory . '" is not a directory for user ' . self::systemuser(), LOGGER_DEBUG);
                        return false;
                }
-               if ($check_writable AND !is_writable($directory)) {
+               if ($check_writable && !is_writable($directory)) {
                        logger('Path "' . $directory . '" is not writable for user ' . self::systemuser(), LOGGER_DEBUG);
                        return false;
                }