]> git.mxchange.org Git - friendica.git/blobdiff - src/Render/FriendicaSmartyEngine.php
New option to disable the fetching of parents
[friendica.git] / src / Render / FriendicaSmartyEngine.php
index e482b70e645a91fc53026c4f5e2d48b305da01ef..c64fd29e523e31f639e6cfd6c115d385a77a75a8 100644 (file)
@@ -1,6 +1,6 @@
 <?php
 /**
- * @copyright Copyright (C) 2010-2021, the Friendica project
+ * @copyright Copyright (C) 2010-2022, the Friendica project
  *
  * @license GNU AGPL version 3 or any later version
  *
@@ -48,6 +48,19 @@ final class FriendicaSmartyEngine extends TemplateEngine
                $this->theme_info = $theme_info;
                $this->smarty = new FriendicaSmarty($this->theme, $this->theme_info);
 
+               /*
+                * Enable sub-directory splitting for reducing directory descriptor
+                * size. The default behavior is to put all compiled/cached files into
+                * one single directory. Under Linux and EXT4 (and maybe other FS) this
+                * will increase the descriptor's size (which contains information
+                * about entries inside the described directory. If the descriptor is
+                * getting to big, the system will slow down as it has to read the
+                * whole directory descriptor all over again (unless you have tons of
+                * RAM available + have enabled caching inode tables (aka.
+                * "descriptors"). Still it won't hurt you.
+                */
+               $this->smarty->setUseSubDirs(true);
+
                if (!is_writable(DI::basePath() . '/view/smarty3')) {
                        $admin_message = DI::l10n()->t('The folder view/smarty3/ must be writable by webserver.');
                        DI::logger()->critical($admin_message);
@@ -69,7 +82,7 @@ final class FriendicaSmartyEngine extends TemplateEngine
        /**
         * @inheritDoc
         */
-       public function replaceMacros(string $template, array $vars)
+       public function replaceMacros(string $template, array $vars): string
        {
                if (!Strings::startsWith($template, self::FILE_PREFIX)) {
                        $template = self::STRING_PREFIX . $template;