PluginProbe ʕ •ᴥ•ʔ
Independent Analytics – WordPress Analytics Plugin / 1.18
Independent Analytics – WordPress Analytics Plugin v1.18
2.15.5 2.15.4 2.15.3 2.15.2 2.15.1 2.15.0 2.14.10 trunk 1.1 1.10 1.10.1 1.11 1.12 1.13 1.14 1.15 1.16 1.17 1.17.1 1.17.2 1.17.3 1.17.4 1.18 1.18.1 1.19.0 1.19.1 1.2 1.20.0 1.21.0 1.22.0 1.22.1 1.23.0 1.23.1 1.24.0 1.24.1 1.25.0 1.25.1 1.26.0 1.27.0 1.28.0 1.28.1 1.28.2 1.28.3 1.29.0 1.3 1.30.0 1.30.1 1.4 1.5 1.6 1.7 1.8 1.9 2.0.0 2.0.1 2.1.4 2.1.5 2.1.6 2.10.0 2.10.1 2.10.2 2.10.3 2.10.4 2.11.0 2.11.1 2.11.10 2.11.2 2.11.3 2.11.4 2.11.5 2.11.6 2.11.7 2.11.8 2.11.9 2.12.0 2.12.1 2.12.2 2.13.1 2.13.2 2.13.5 2.13.6 2.14.0 2.14.1 2.14.2 2.14.4 2.14.6 2.14.7 2.14.8 2.14.9 2.2.0 2.2.1 2.3.1 2.3.2 2.4.2 2.4.3 2.5.0 2.5.1 2.6.0 2.6.1 2.6.2 2.6.3 2.6.4 2.7.0 2.7.1 2.7.2 2.7.3 2.8.2 2.8.3 2.8.4 2.8.5 2.8.6 2.8.7 2.8.8 2.8.9 2.9.2 2.9.3 2.9.4 2.9.5 2.9.6 2.9.7
independent-analytics / vendor / league / plates / src / Template / Name.php
independent-analytics / vendor / league / plates / src / Template Last commit date
Data.php 3 years ago Directory.php 3 years ago FileExtension.php 3 years ago Folder.php 3 years ago Folders.php 3 years ago Func.php 3 years ago Functions.php 3 years ago Name.php 3 years ago Template.php 3 years ago
Name.php
165 lines
1 <?php
2
3 namespace IAWP\League\Plates\Template;
4
5 use IAWP\League\Plates\Engine;
6 use LogicException;
7 /**
8 * A template name.
9 */
10 class Name
11 {
12 /**
13 * Instance of the template engine.
14 * @var Engine
15 */
16 protected $engine;
17 /**
18 * The original name.
19 * @var string
20 */
21 protected $name;
22 /**
23 * The parsed template folder.
24 * @var Folder
25 */
26 protected $folder;
27 /**
28 * The parsed template filename.
29 * @var string
30 */
31 protected $file;
32 /**
33 * Create a new Name instance.
34 * @param Engine $engine
35 * @param string $name
36 */
37 public function __construct(Engine $engine, $name)
38 {
39 $this->setEngine($engine);
40 $this->setName($name);
41 }
42 /**
43 * Set the engine.
44 * @param Engine $engine
45 * @return Name
46 */
47 public function setEngine(Engine $engine)
48 {
49 $this->engine = $engine;
50 return $this;
51 }
52 /**
53 * Get the engine.
54 * @return Engine
55 */
56 public function getEngine()
57 {
58 return $this->engine;
59 }
60 /**
61 * Set the original name and parse it.
62 * @param string $name
63 * @return Name
64 */
65 public function setName($name)
66 {
67 $this->name = $name;
68 $parts = \explode('::', $this->name);
69 if (\count($parts) === 1) {
70 $this->setFile($parts[0]);
71 } elseif (\count($parts) === 2) {
72 $this->setFolder($parts[0]);
73 $this->setFile($parts[1]);
74 } else {
75 throw new LogicException('The template name "' . $this->name . '" is not valid. ' . 'Do not use the folder namespace separator "::" more than once.');
76 }
77 return $this;
78 }
79 /**
80 * Get the original name.
81 * @return string
82 */
83 public function getName()
84 {
85 return $this->name;
86 }
87 /**
88 * Set the parsed template folder.
89 * @param string $folder
90 * @return Name
91 */
92 public function setFolder($folder)
93 {
94 $this->folder = $this->engine->getFolders()->get($folder);
95 return $this;
96 }
97 /**
98 * Get the parsed template folder.
99 * @return string
100 */
101 public function getFolder()
102 {
103 return $this->folder;
104 }
105 /**
106 * Set the parsed template file.
107 * @param string $file
108 * @return Name
109 */
110 public function setFile($file)
111 {
112 if ($file === '') {
113 throw new LogicException('The template name "' . $this->name . '" is not valid. ' . 'The template name cannot be empty.');
114 }
115 $this->file = $file;
116 if (!\is_null($this->engine->getFileExtension())) {
117 $this->file .= '.' . $this->engine->getFileExtension();
118 }
119 return $this;
120 }
121 /**
122 * Get the parsed template file.
123 * @return string
124 */
125 public function getFile()
126 {
127 return $this->file;
128 }
129 /**
130 * Resolve template path.
131 * @return string
132 */
133 public function getPath()
134 {
135 if (\is_null($this->folder)) {
136 return "{$this->getDefaultDirectory()}/{$this->file}";
137 }
138 $path = "{$this->folder->getPath()}/{$this->file}";
139 if (!\is_file($path) && $this->folder->getFallback() && \is_file("{$this->getDefaultDirectory()}/{$this->file}")) {
140 $path = "{$this->getDefaultDirectory()}/{$this->file}";
141 }
142 return $path;
143 }
144 /**
145 * Check if template path exists.
146 * @return boolean
147 */
148 public function doesPathExist()
149 {
150 return \is_file($this->getPath());
151 }
152 /**
153 * Get the default templates directory.
154 * @return string
155 */
156 protected function getDefaultDirectory()
157 {
158 $directory = $this->engine->getDirectory();
159 if (\is_null($directory)) {
160 throw new LogicException('The template name "' . $this->name . '" is not valid. ' . 'The default directory has not been defined.');
161 }
162 return $directory;
163 }
164 }
165