Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
UpToDateSchema.php
Go to the documentation of this file.
1 <?php
7 declare(strict_types=1);
9 
12 
17 {
21  private $patchHistory;
22 
26  private $patchReader;
27 
31  private $patchBackwardCompatability;
32 
36  private $moduleList;
37 
45  public function __construct(
46  PatchHistory $patchHistory,
47  PatchReader $schemaReader,
48  PatchBackwardCompatability $patchBackwardCompatability,
49  ModuleList $moduleList
50  ) {
51  $this->patchHistory = $patchHistory;
52  $this->patchReader = $schemaReader;
53  $this->patchBackwardCompatability = $patchBackwardCompatability;
54  $this->moduleList = $moduleList;
55  }
56 
60  public function getNotUpToDateMessage() : string
61  {
62  return 'Schema patches are not up to date';
63  }
64 
68  public function isUpToDate() : bool
69  {
70  foreach ($this->moduleList->getNames() as $moduleName) {
71  foreach ($this->patchReader->read($moduleName) as $patchName) {
72  if (!$this->patchBackwardCompatability->isSkipableBySchemaSetupVersion($patchName, $moduleName) &&
73  !$this->patchHistory->isApplied($patchName)) {
74  return false;
75  }
76  }
77  }
78 
79  return true;
80  }
81 }
__construct(PatchHistory $patchHistory, PatchReader $schemaReader, PatchBackwardCompatability $patchBackwardCompatability, ModuleList $moduleList)