File: /home/petsclubcc/magento/vendor/magento/framework/Simplexml/Config/Cache/AbstractCache.php
<?php
/**
* Copyright © 2016 Magento. All rights reserved.
* See COPYING.txt for license details.
*/
namespace Magento\Framework\Simplexml\Config\Cache;
/**
* Abstract class for configuration cache
* @method void setComponents(array $components)
* @method void setIsAllowedToSave(bool $isAllowedToSave)
* @method array getComponents()
*/
abstract class AbstractCache extends \Magento\Framework\DataObject
{
/**
* Constructor
*
* Initializes components and allows to save the cache
*
* @param array $data
*/
public function __construct($data = [])
{
parent::__construct($data);
$this->setComponents([]);
$this->setIsAllowedToSave(true);
}
/**
* Add configuration component to stats
*
* @param string $component Filename of the configuration component file
* @return $this
*/
public function addComponent($component)
{
$comps = $this->getComponents();
if (is_readable($component)) {
$comps[$component] = ['mtime' => filemtime($component)];
}
$this->setComponents($comps);
return $this;
}
/**
* Validate components in the stats
*
* @param array $data
* @return boolean
*/
public function validateComponents($data)
{
if (empty($data) || !is_array($data)) {
return false;
}
// check that no source files were changed or check file exists
foreach ($data as $sourceFile => $stat) {
if (empty($stat['mtime']) || !is_file($sourceFile) || filemtime($sourceFile) !== $stat['mtime']) {
return false;
}
}
return true;
}
/**
* @return string
*/
public function getComponentsHash()
{
$sum = '';
foreach ($this->getComponents() as $comp) {
$sum .= $comp['mtime'] . ':';
}
$hash = md5($sum);
return $hash;
}
/**
* @return bool
*/
abstract public function load();
/**
* @return bool
*/
abstract public function save();
}