PluginProbe
User Profile Builder – Beautiful User Registration Forms, User Profiles & User Role Editor / 4.0.3
User Profile Builder – Beautiful User Registration Forms, User Profiles & User Role Editor v4.0.3
4.0.3 4.0.2 4.0.1 4.0.0 3.16.6 3.16.5 3.16.4 3.16.3 3.16.2 3.16.1 3.16.0 3.15.9 3.9.9 3.9.5 3.9.6 3.9.7 3.9.8 1.1.7 1.1.8 1.1.9 2.0.2 2.0.3 2.0.4 2.0.5 2.0.6 All 341 releases
profile-builder / assets / lib / Mustache / Loader / ProductionFilesystemLoader.php

ProductionFilesystemLoader.php in User Profile Builder – Beautiful User Registration Forms, User Profiles & User Role Editor 4.0.3, at assets/lib/Mustache/Loader/ProductionFilesystemLoader.php

87 lines 2.8 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 /*
4 * This file is part of Mustache.php.
5 *
6 * (c) 2010-2017 Justin Hileman
7 *
8 * For the full copyright and license information, please view the LICENSE
9 * file that was distributed with this source code.
10 */
11
12 /**
13 * Mustache Template production filesystem Loader implementation.
14 *
15 * A production-ready FilesystemLoader, which doesn't require reading a file if it already exists in the template cache.
16 *
17 * {@inheritdoc}
18 */
19 class Mustache_Loader_ProductionFilesystemLoader extends Mustache_Loader_FilesystemLoader
20 {
21 private $statProps;
22
23 /**
24 * Mustache production filesystem Loader constructor.
25 *
26 * Passing an $options array allows overriding certain Loader options during instantiation:
27 *
28 * $options = array(
29 * // The filename extension used for Mustache templates. Defaults to '.mustache'
30 * 'extension' => '.ms',
31 * 'stat_props' => array('size', 'mtime'),
32 * );
33 *
34 * Specifying 'stat_props' overrides the stat properties used to invalidate the template cache. By default, this
35 * uses 'mtime' and 'size', but this can be set to any of the properties supported by stat():
36 *
37 * http://php.net/manual/en/function.stat.php
38 *
39 * You can also disable filesystem stat entirely:
40 *
41 * $options = array('stat_props' => null);
42 *
43 * But with great power comes great responsibility. Namely, if you disable stat-based cache invalidation,
44 * YOU MUST CLEAR THE TEMPLATE CACHE YOURSELF when your templates change. Make it part of your build or deploy
45 * process so you don't forget!
46 *
47 * @throws Mustache_Exception_RuntimeException if $baseDir does not exist.
48 *
49 * @param string $baseDir Base directory containing Mustache template files.
50 * @param array $options Array of Loader options (default: array())
51 */
52 public function __construct($baseDir, array $options = array())
53 {
54 parent::__construct($baseDir, $options);
55
56 if (array_key_exists('stat_props', $options)) {
57 if (empty($options['stat_props'])) {
58 $this->statProps = array();
59 } else {
60 $this->statProps = $options['stat_props'];
61 }
62 } else {
63 $this->statProps = array('size', 'mtime');
64 }
65 }
66
67 /**
68 * Helper function for loading a Mustache file by name.
69 *
70 * @throws Mustache_Exception_UnknownTemplateException If a template file is not found.
71 *
72 * @param string $name
73 *
74 * @return Mustache_Source Mustache Template source
75 */
76 protected function loadFile($name)
77 {
78 $fileName = $this->getFileName($name);
79
80 if (!file_exists($fileName)) {
81 throw new Mustache_Exception_UnknownTemplateException($name);
82 }
83
84 return new Mustache_Source_FilesystemSource($fileName, $this->statProps);
85 }
86 }
87