]> git.mxchange.org Git - friendica.git/commitdiff
Add basepath to App
authorHypolite Petovan <mrpetovan@gmail.com>
Wed, 3 May 2017 02:42:42 +0000 (22:42 -0400)
committerHypolite Petovan <mrpetovan@gmail.com>
Wed, 3 May 2017 03:37:57 +0000 (23:37 -0400)
include/auth_ejabberd.php
include/cli_startup.php
include/dbstructure.php
include/poller.php
include/shadowupdate.php
index.php
src/App.php
util/db_update.php
util/maintenance.php
util/typo.php

index 0b0f263ea54e5dac5fc777dabc359a5c494aa5b0..9211c5baf091b782119b5da50382ad3e8f7a16b6 100755 (executable)
@@ -49,8 +49,9 @@ require_once("boot.php");
 
 global $a, $db;
 
-if (is_null($a))
-       $a = new App;
+if (is_null($a)) {
+       $a = new App(dirname(__DIR__));
+}
 
 if (is_null($db)) {
        @include(".htconfig.php");
index e8cc9483dbc35311f2dddb12ed6e4f1f2c414881..01ee90f421b538a9e3231e57c67e7f8f38087965 100644 (file)
@@ -12,7 +12,7 @@ function cli_startup() {
        global $a, $db;
 
        if (is_null($a)) {
-               $a = new App;
+               $a = new App(dirname(__DIR__));
        }
 
        if (is_null($db)) {
index fc2424226d145080ac20878f606fccb5881cbc3b..e555138d48a2db2998c4b64f0c53397501979cc4 100644 (file)
@@ -1736,7 +1736,7 @@ function dbstructure_run(&$argv, &$argc) {
        global $a, $db;
 
        if (is_null($a)) {
-               $a = new App;
+               $a = new App(dirname(__DIR__));
        }
 
        if (is_null($db)) {
index e626a568ef8efc4f5a81040a0a2102e285958832..08e71fd486b69c23b68b52ee3e560b715e25c2e8 100644 (file)
@@ -19,8 +19,8 @@ require_once("boot.php");
 function poller_run($argv, $argc){
        global $a, $db;
 
-       if(is_null($a)) {
-               $a = new App;
+       if (is_null($a)) {
+               $a = new App(dirname(__DIR__));
        }
 
        if(is_null($db)) {
index f1888f92e5da4dc68942aefc34fca0d56406e32a..756f220ec823d67a4265738b2b624fb6baec6d34 100644 (file)
@@ -10,7 +10,7 @@ function shadowupdate_run(&$argv, &$argc){
        global $a, $db;
 
        if (is_null($a)) {
-               $a = new App;
+               $a = new App(dirname(__DIR__));
        }
 
        if (is_null($db)) {
index 0b941d887d5422ce31ff39a56e066815aee6765c..639437017a09696a445045fbf2e511e8887fc7dc 100644 (file)
--- a/index.php
+++ b/index.php
@@ -19,7 +19,7 @@ use Friendica\Core\Config;
 require_once 'boot.php';
 require_once 'object/BaseObject.php';
 
-$a = new App;
+$a = new App(__DIR__);
 BaseObject::set_app($a);
 
 // We assume that the index.php is called by a frontend process
index c3926b622d6719ac8646547aea0d6f83de659f1f..efb60c0386bd4502a07d07cc29db552310486216 100644 (file)
@@ -40,6 +40,7 @@ class App {
        public $module;\r
        public $pager;\r
        public $strings;\r
+       public $basepath;\r
        public $path;\r
        public $hooks;\r
        public $timezone;\r
@@ -112,8 +113,10 @@ class App {
 \r
        /**\r
         * @brief App constructor.\r
+        *\r
+        * @param string $basepath Path to the app base folder\r
         */\r
-       function __construct() {\r
+       function __construct($basepath) {\r
 \r
                global $default_timezone;\r
 \r
@@ -154,13 +157,6 @@ class App {
 \r
                startup();\r
 \r
-               set_include_path(\r
-                       get_include_path() . PATH_SEPARATOR\r
-                       . 'include' . PATH_SEPARATOR\r
-                       . 'library' . PATH_SEPARATOR\r
-                       . 'library/langdet' . PATH_SEPARATOR\r
-                       . '.');\r
-\r
                $this->scheme = 'http';\r
 \r
                if ((x($_SERVER, 'HTTPS') && $_SERVER['HTTPS']) ||\r
@@ -195,6 +191,20 @@ class App {
                        $this->hostname = $hostname;\r
                }\r
 \r
+               if (! static::directory_usable($basepath)) {\r
+                       throw new Exception('Basepath ' . $basepath . ' isn\'t usable.');\r
+               }\r
+\r
+               $this->basepath = rtrim($basepath, DIRECTORY_SEPARATOR);\r
+\r
+               set_include_path(\r
+                       get_include_path() . PATH_SEPARATOR\r
+                       . $this->basepath . DIRECTORY_SEPARATOR . 'include' . PATH_SEPARATOR\r
+                       . $this->basepath . DIRECTORY_SEPARATOR . 'library' . PATH_SEPARATOR\r
+                       . $this->basepath . DIRECTORY_SEPARATOR . 'library/langdet' . PATH_SEPARATOR\r
+                       . $this->basepath);\r
+\r
+\r
                if (is_array($_SERVER['argv']) && $_SERVER['argc'] > 1 && substr(end($_SERVER['argv']), 0, 4) == 'http') {\r
                        $this->set_baseurl(array_pop($_SERVER['argv']));\r
                        $_SERVER['argc'] --;\r
@@ -284,18 +294,28 @@ class App {
                self::$a = $this;\r
        }\r
 \r
+       /**\r
+        * @brief Returns the base filesystem path of the App\r
+        *\r
+        * It first checks for the internal variable, then for DOCUMENT_ROOT and\r
+        * finally for PWD\r
+        *\r
+        * @return string\r
+        */\r
        public static function get_basepath() {\r
-               $basepath = get_config('system', 'basepath');\r
+               if (isset($this)) {\r
+                       $basepath = $this->basepath;\r
+               }\r
 \r
-               if ($basepath == '') {\r
-                       $basepath = dirname(__FILE__);\r
+               if (! $basepath) {\r
+                       $basepath = Config::get('system', 'basepath');\r
                }\r
 \r
-               if ($basepath == '') {\r
+               if (! $basepath && x($_SERVER, 'DOCUMENT_ROOT')) {\r
                        $basepath = $_SERVER['DOCUMENT_ROOT'];\r
                }\r
 \r
-               if ($basepath == '') {\r
+               if (! $basepath && x($_SERVER, 'PWD')) {\r
                        $basepath = $_SERVER['PWD'];\r
                }\r
 \r
@@ -900,10 +920,10 @@ class App {
                        return;\r
                }\r
 \r
-               if (get_config('system', 'proc_windows')) {\r
-                       $resource = proc_open('cmd /c start /b ' . $cmdline, array(), $foo, dirname(__FILE__));\r
+               if (Config::get('system', 'proc_windows')) {\r
+                       $resource = proc_open('cmd /c start /b ' . $cmdline, array(), $foo, $this->get_basepath());\r
                } else {\r
-                       $resource = proc_open($cmdline . ' &', array(), $foo, dirname(__FILE__));\r
+                       $resource = proc_open($cmdline . ' &', array(), $foo, $this->get_basepath());\r
                }\r
                if (!is_resource($resource)) {\r
                        logger('We got no resource for command ' . $cmdline, LOGGER_DEBUG);\r
index 5c71046d31fe5e9467bc16c29813a49028c985ff..1e717e98759335166c1c2157db3c95ac4adad609 100644 (file)
@@ -11,7 +11,7 @@ use Friendica\App;
  */
 require_once("boot.php");
 
-$a = new App;
+$a = new App(dirname(__DIR__));
 @include(".htconfig.php");
 
 $lang = get_browser_language();
index 3b917aef19e2d87328a7d399ecb9f27e6f3f3c39..40634e0d89de1d33dee9bd95f7d7d353525721a7 100644 (file)
@@ -5,7 +5,7 @@ use Friendica\Core\Config;
 
 require_once("boot.php");
 
-$a = new App;
+$a = new App(dirname(__DIR__));
 @include(".htconfig.php");
 
 $lang = get_browser_language();
index 2b60b319ed97accf32ad6124234447d7953beb70..522fe410019dd99a62314ef5e6e6b5e5e86d8cfc 100644 (file)
@@ -12,7 +12,7 @@ ini_set('log_errors', '0');
 
 include 'boot.php';
 
-$a = new App();
+$a = new App(dirname(__DIR__));
 
 if (x($a->config, 'php_path')) {
        $phpath = $a->config['php_path'];