Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
ServiceLocator.php
Go to the documentation of this file.
1 <?php
7 
9 
15 {
21  private static $_factory;
22 
28  private static $_context;
29 
35  private static $_dictionaryGenerator;
36 
42  private static $_packGenerator;
43 
49  public static function getDictionaryGenerator()
50  {
51  if (null === self::$_dictionaryGenerator) {
52  $filesCollector = new FilesCollector();
53 
54  $phraseCollector = new Parser\Adapter\Php\Tokenizer\PhraseCollector(new Parser\Adapter\Php\Tokenizer());
55  $adapters = [
56  'php' => new Parser\Adapter\Php($phraseCollector),
57  'html' => new Parser\Adapter\Html(),
58  'js' => new Parser\Adapter\Js(),
59  'xml' => new Parser\Adapter\Xml(),
60  ];
61 
62  $parser = new Parser\Parser($filesCollector, self::_getFactory());
63  $parserContextual = new Parser\Contextual($filesCollector, self::_getFactory(), self::_getContext());
64  foreach ($adapters as $type => $adapter) {
65  $parser->addAdapter($type, $adapter);
66  $parserContextual->addAdapter($type, $adapter);
67  }
68 
69  self::$_dictionaryGenerator = new Dictionary\Generator(
70  $parser,
71  $parserContextual,
72  self::_getFactory(),
73  new Dictionary\Options\ResolverFactory()
74  );
75  }
76  return self::$_dictionaryGenerator;
77  }
78 
84  public static function getPackGenerator()
85  {
86  if (null === self::$_packGenerator) {
87  $dictionaryLoader = new Dictionary\Loader\File\Csv(self::_getFactory());
88  $packWriter = new Pack\Writer\File\Csv(self::_getContext(), $dictionaryLoader, self::_getFactory());
89 
90  self::$_packGenerator = new Pack\Generator($dictionaryLoader, $packWriter, self::_getFactory());
91  }
92  return self::$_packGenerator;
93  }
94 
100  private static function _getFactory()
101  {
102  if (null === self::$_factory) {
103  self::$_factory = new \Magento\Setup\Module\I18n\Factory();
104  }
105  return self::$_factory;
106  }
107 
113  private static function _getContext()
114  {
115  if (null === self::$_context) {
116  self::$_context = new Context(new ComponentRegistrar());
117  }
118  return self::$_context;
119  }
120 }
$adapter
Definition: webapi_user.php:16
$type
Definition: item.phtml:13