]> git.mxchange.org Git - friendica.git/commitdiff
Changes:
authorRoland Häder <roland@mxchange.org>
Thu, 23 Jun 2022 02:23:22 +0000 (04:23 +0200)
committerRoland Häder <roland@mxchange.org>
Thu, 23 Jun 2022 02:24:55 +0000 (04:24 +0200)
- enabled sub-directories for compiled/cached files which avoids large+slow
  directory descriptors
- changed some double-quotes to single

src/Render/FriendicaSmarty.php
src/Render/FriendicaSmartyEngine.php

index 50dda5eba1f337fa5067073688deaeada37a1f55..399bda7b78bc878a4476b521a2609cd54f0373cd 100644 (file)
@@ -39,12 +39,12 @@ class FriendicaSmarty extends Smarty
 
                // setTemplateDir can be set to an array, which Smarty will parse in order.
                // The order is thus very important here
-               $template_dirs = ['theme' => "view/theme/$theme/" . self::SMARTY3_TEMPLATE_FOLDER . "/"];
+               $template_dirs = ['theme' => 'view/theme/$theme/' . self::SMARTY3_TEMPLATE_FOLDER . '/'];
                if (!empty($theme_info['extends'])) {
-                       $template_dirs = $template_dirs + ['extends' => "view/theme/" . $theme_info["extends"] . "/" . self::SMARTY3_TEMPLATE_FOLDER . "/"];
+                       $template_dirs = $template_dirs + ['extends' => 'view/theme/' . $theme_info['extends'] . '/' . self::SMARTY3_TEMPLATE_FOLDER . '/'];
                }
 
-               $template_dirs = $template_dirs + ['base' => "view/" . self::SMARTY3_TEMPLATE_FOLDER . "/"];
+               $template_dirs = $template_dirs + ['base' => 'view/' . self::SMARTY3_TEMPLATE_FOLDER . '/'];
                $this->setTemplateDir($template_dirs);
 
                $this->setCompileDir('view/smarty3/compiled/');
index 9f35fbcc4463399449d2c443b3ecad24a2e81878..c64fd29e523e31f639e6cfd6c115d385a77a75a8 100644 (file)
@@ -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);