* @brief App constructor.
*
* @param string $basepath Path to the app base folder
+ *
+ * @throws Exception if the Basepath is not usable
*/
public function __construct($basepath)
{
$this->callstack['rendering'] = [];
$this->callstack['parser'] = [];
- // The order of the following calls is important to ensure proper initialization
- $this->loadConfigFiles();
-
- $this->loadDatabase();
-
- $this->determineMode();
-
- $this->determineUrlPath();
-
- Config::load();
-
- if ($this->mode & self::MODE_DBAVAILABLE) {
- Core\Addon::loadHooks();
-
- $this->loadAddonConfig();
- }
-
- $this->loadDefaultTimezone();
-
- $this->page = [
- 'aside' => '',
- 'bottom' => '',
- 'content' => '',
- 'end' => '',
- 'footer' => '',
- 'htmlhead' => '',
- 'nav' => '',
- 'page_title' => '',
- 'right_aside' => '',
- 'template' => '',
- 'title' => ''
- ];
-
- $this->process_id = System::processID('log');
+ $this->reload();
set_time_limit(0);
$this->register_template_engine('Friendica\Render\FriendicaSmartyEngine');
}
+ /**
+ * Reloads the whole app instance
+ */
+ public function reload()
+ {
+ // The order of the following calls is important to ensure proper initialization
+ $this->loadConfigFiles();
+
+ $this->loadDatabase();
+
+ $this->determineMode();
+
+ $this->determineUrlPath();
+
+ Config::load();
+
+ if ($this->mode & self::MODE_DBAVAILABLE) {
+ Core\Addon::loadHooks();
+
+ $this->loadAddonConfig();
+ }
+
+ $this->loadDefaultTimezone();
+
+ $this->page = [
+ 'aside' => '',
+ 'bottom' => '',
+ 'content' => '',
+ 'end' => '',
+ 'footer' => '',
+ 'htmlhead' => '',
+ 'nav' => '',
+ 'page_title' => '',
+ 'right_aside' => '',
+ 'template' => '',
+ 'title' => ''
+ ];
+
+ $this->process_id = System::processID('log');
+ }
+
/**
* Load the configuration files
*
$meminfo = [];
foreach ($memdata as $line) {
- list($key, $val) = explode(':', $line);
+ $data = explode(':', $line);
+ if (count($data) != 2) {
+ continue;
+ }
+ list($key, $val) = $data;
$meminfo[$key] = (int) trim(str_replace('kB', '', $val));
$meminfo[$key] = (int) ($meminfo[$key] / 1024);
}