Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
DescriptionGenerator.php
Go to the documentation of this file.
1 <?php
7 
12 {
16  private $paragraphGenerator;
17 
21  private $mixinManager;
22 
26  private $descriptionConfig;
27 
33  public function __construct(
34  \Magento\Setup\Model\Description\DescriptionParagraphGenerator $paragraphGenerator,
35  \Magento\Setup\Model\Description\MixinManager $mixinManager,
36  array $descriptionConfig
37  ) {
38  $this->paragraphGenerator = $paragraphGenerator;
39  $this->mixinManager = $mixinManager;
40  $this->descriptionConfig = $descriptionConfig;
41  }
42 
48  public function generate()
49  {
50  $description = $this->generateRawDescription();
51 
52  if (isset($this->descriptionConfig['mixin'])) {
53  $description = $this->mixinManager->apply($description, $this->descriptionConfig['mixin']['tags']);
54  }
55 
56  return $description;
57  }
58 
64  private function generateRawDescription()
65  {
66  $paragraphsCount = random_int(
67  $this->descriptionConfig['paragraphs']['count-min'],
68  $this->descriptionConfig['paragraphs']['count-max']
69  );
70  $descriptionParagraphs = '';
71 
72  while ($paragraphsCount) {
73  $descriptionParagraphs .= $this->paragraphGenerator->generate();
74  $descriptionParagraphs .= PHP_EOL;
75  $paragraphsCount--;
76  }
77 
78  $descriptionParagraphs = rtrim($descriptionParagraphs);
79 
80  return $descriptionParagraphs;
81  }
82 }
__construct(\Magento\Setup\Model\Description\DescriptionParagraphGenerator $paragraphGenerator, \Magento\Setup\Model\Description\MixinManager $mixinManager, array $descriptionConfig)