OXID eShop CE  4.9.6
 All Classes Files Functions Variables Pages
oxmodulemetadataagainstshopvalidator.php
Go to the documentation of this file.
1 <?php
2 
11 {
12 
22  public function validate(oxModule $oModule)
23  {
24 
25  $blModuleExtensionsMatchShopInformation = $this->_moduleExtensionsInformationExistsInShop($oModule);
26  $blModuleInformationMatchShopInformation = $blModuleExtensionsMatchShopInformation
27  && $this->_moduleFilesInformationExistInShop($oModule);
28  $blModuleInformationMatchShopInformation = $blModuleInformationMatchShopInformation
29  && $this->_moduleHasAllExtensions($oModule);
30  $blModuleInformationMatchShopInformation = $blModuleInformationMatchShopInformation
31  && $this->_moduleHasAllFiles($oModule);
32 
33  return $blModuleInformationMatchShopInformation;
34  }
35 
43  private function _moduleExtensionsInformationExistsInShop(oxModule $oModule)
44  {
45  $aModuleExtensions = $oModule->getExtensions();
46 
48  $oModuleInstaller = oxNew('oxModuleInstaller');
49  $aShopInformationAboutModulesExtendedClasses = $oModuleInstaller->getModulesWithExtendedClass();
50 
51  foreach ($aModuleExtensions as $sExtendedClassName => $sModuleExtendedClassPath) {
52  $aExtendedClassInfo = $aShopInformationAboutModulesExtendedClasses[$sExtendedClassName];
53  if (is_null($aExtendedClassInfo) || !is_array($aExtendedClassInfo)) {
54  return false;
55  }
56  if (!in_array($sModuleExtendedClassPath, $aExtendedClassInfo)) {
57  return false;
58  }
59  }
60 
61  return true;
62  }
63 
71  private function _moduleFilesInformationExistInShop(oxModule $oModule)
72  {
73  $aModuleFiles = $oModule->getFiles();
74 
76  $oModuleList = oxNew('oxModuleList');
77  $aShopInformationAboutModulesFiles = $oModuleList->getModuleFiles();
78 
79  $aMissingFiles = array_diff($aModuleFiles, $aShopInformationAboutModulesFiles);
80 
81  return (count($aMissingFiles)) === 0;
82  }
83 
91  private function _moduleHasAllExtensions(oxModule $oModule)
92  {
93  return true;
94  }
95 
103  private function _moduleHasAllFiles(oxModule $oModule)
104  {
105  return true;
106  }
107 }