PluginProbe ʕ •ᴥ•ʔ
Independent Analytics – WordPress Analytics Plugin / 2.15.5
Independent Analytics – WordPress Analytics Plugin v2.15.5
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 / symfony / translation / Dumper / FileDumper.php
independent-analytics / vendor / symfony / translation / Dumper Last commit date
CsvFileDumper.php 1 month ago DumperInterface.php 2 years ago FileDumper.php 1 month ago IcuResFileDumper.php 1 month ago IniFileDumper.php 1 month ago JsonFileDumper.php 1 month ago MoFileDumper.php 1 month ago PhpFileDumper.php 1 month ago PoFileDumper.php 1 month ago QtFileDumper.php 1 month ago XliffFileDumper.php 1 month ago YamlFileDumper.php 1 month ago
FileDumper.php
93 lines
1 <?php
2
3 /*
4 * This file is part of the Symfony package.
5 *
6 * (c) Fabien Potencier <fabien@symfony.com>
7 *
8 * For the full copyright and license information, please view the LICENSE
9 * file that was distributed with this source code.
10 */
11 namespace IAWPSCOPED\Symfony\Component\Translation\Dumper;
12
13 use IAWPSCOPED\Symfony\Component\Translation\Exception\InvalidArgumentException;
14 use IAWPSCOPED\Symfony\Component\Translation\Exception\RuntimeException;
15 use IAWPSCOPED\Symfony\Component\Translation\MessageCatalogue;
16 /**
17 * FileDumper is an implementation of DumperInterface that dump a message catalogue to file(s).
18 *
19 * Options:
20 * - path (mandatory): the directory where the files should be saved
21 *
22 * @author Michel Salib <michelsalib@hotmail.com>
23 * @internal
24 */
25 abstract class FileDumper implements DumperInterface
26 {
27 /**
28 * A template for the relative paths to files.
29 *
30 * @var string
31 */
32 protected $relativePathTemplate = '%domain%.%locale%.%extension%';
33 /**
34 * Sets the template for the relative paths to files.
35 *
36 * @param string $relativePathTemplate A template for the relative paths to files
37 */
38 public function setRelativePathTemplate(string $relativePathTemplate)
39 {
40 $this->relativePathTemplate = $relativePathTemplate;
41 }
42 /**
43 * {@inheritdoc}
44 */
45 public function dump(MessageCatalogue $messages, array $options = [])
46 {
47 if (!\array_key_exists('path', $options)) {
48 throw new InvalidArgumentException('The file dumper needs a path option.');
49 }
50 // save a file for each domain
51 foreach ($messages->getDomains() as $domain) {
52 $fullpath = $options['path'] . '/' . $this->getRelativePath($domain, $messages->getLocale());
53 if (!\file_exists($fullpath)) {
54 $directory = \dirname($fullpath);
55 if (!\file_exists($directory) && !@\mkdir($directory, 0777, \true)) {
56 throw new RuntimeException(\sprintf('Unable to create directory "%s".', $directory));
57 }
58 }
59 $intlDomain = $domain . MessageCatalogue::INTL_DOMAIN_SUFFIX;
60 $intlMessages = $messages->all($intlDomain);
61 if ($intlMessages) {
62 $intlPath = $options['path'] . '/' . $this->getRelativePath($intlDomain, $messages->getLocale());
63 \file_put_contents($intlPath, $this->formatCatalogue($messages, $intlDomain, $options));
64 $messages->replace([], $intlDomain);
65 try {
66 if ($messages->all($domain)) {
67 \file_put_contents($fullpath, $this->formatCatalogue($messages, $domain, $options));
68 }
69 continue;
70 } finally {
71 $messages->replace($intlMessages, $intlDomain);
72 }
73 }
74 \file_put_contents($fullpath, $this->formatCatalogue($messages, $domain, $options));
75 }
76 }
77 /**
78 * Transforms a domain of a message catalogue to its string representation.
79 */
80 public abstract function formatCatalogue(MessageCatalogue $messages, string $domain, array $options = []) : string;
81 /**
82 * Gets the file extension of the dumper.
83 */
84 protected abstract function getExtension() : string;
85 /**
86 * Gets the relative file path using the template.
87 */
88 private function getRelativePath(string $domain, string $locale) : string
89 {
90 return \strtr($this->relativePathTemplate, ['%domain%' => $domain, '%locale%' => $locale, '%extension%' => $this->getExtension()]);
91 }
92 }
93