Passed
Push — master ( bb74df...01777c )
by Jakub
02:24
created

src/CatalogueCompiler.php (2 issues)

Upgrade to new PHP Analysis Engine

These results are based on our legacy PHP analysis, consider migrating to our new PHP analysis engine instead. Learn more

1
<?php
2
declare(strict_types=1);
3
4
namespace Nexendrie\Translation;
5
6
use Nexendrie\Translation\Loaders\ILoader,
7
    Nette\PhpGenerator\Helpers,
8
    Nette\Utils\FileSystem;
9
10
/**
11
 * CatalogueCompiler
12
 * Compiles messages catalogues from resources found by loader
13
 *
14
 * @author Jakub Konečný
15
 */
16 1
class CatalogueCompiler {
17 1
  use \Nette\SmartObject;
18
  
19
  /** @var ILoader */
20
  protected $loader;
21
  /** @var string[] */
22
  protected $languages = [];
23
  /** @var string */
24
  protected $folder = "";
25
  
26
  /**
27
   * @param ILoader $loader
28
   * @param string $folder
29
   * @param string[] $languages
30
   */
31
  function __construct(ILoader $loader, string $folder, array $languages = []) {
0 ignored issues
show
It is generally recommended to explicitly declare the visibility for methods.

Adding explicit visibility (private, protected, or public) is generally recommend to communicate to other developers how, and from where this method is intended to be used.

Loading history...
32 1
    $this->loader = $loader;
33 1
    if(!count($languages)) {
34 1
      $languages = $loader->getAvailableLanguages();
35
    }
36 1
    $this->languages = $languages;
37 1
    $this->folder = $folder;
38 1
  }
39
  
40
  /**
41
   * Compile catalogues
42
   */
43
  function compile(): void {
0 ignored issues
show
It is generally recommended to explicitly declare the visibility for methods.

Adding explicit visibility (private, protected, or public) is generally recommend to communicate to other developers how, and from where this method is intended to be used.

Loading history...
44 1
    foreach($this->languages as $language) {
45 1
      $this->loader->setLang($language);
46 1
      $texts = $this->loader->getTexts();
47 1
      $texts["__resources"] = $this->loader->getResources();
48
      $content = "<?php
49 1
return " . Helpers::dump($texts) . ";
50
?>";
51 1
      $filename = $this->folder . "/catalogue.$language.php";
52 1
      FileSystem::write($filename, $content);
53
    }
54 1
  }
55
}
56
?>