Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
MaintenanceMode.php
Go to the documentation of this file.
1 <?php
6 namespace Magento\Framework\App;
7 
10 
15 {
22  const FLAG_FILENAME = '.maintenance.flag';
23 
27  const IP_FILENAME = '.maintenance.ip';
28 
33 
39  protected $flagDir;
40 
47  {
48  $this->flagDir = $filesystem->getDirectoryWrite(self::FLAG_DIR);
49  }
50 
59  public function isOn($remoteAddr = '')
60  {
61  if (!$this->flagDir->isExist(self::FLAG_FILENAME)) {
62  return false;
63  }
64  $info = $this->getAddressInfo();
65  return !in_array($remoteAddr, $info);
66  }
67 
74  public function set($isOn)
75  {
76  if ($isOn) {
77  return $this->flagDir->touch(self::FLAG_FILENAME);
78  }
79  if ($this->flagDir->isExist(self::FLAG_FILENAME)) {
80  return $this->flagDir->delete(self::FLAG_FILENAME);
81  }
82  return true;
83  }
84 
92  public function setAddresses($addresses)
93  {
94  $addresses = (string)$addresses;
95  if (empty($addresses)) {
96  if ($this->flagDir->isExist(self::IP_FILENAME)) {
97  return $this->flagDir->delete(self::IP_FILENAME);
98  }
99  return true;
100  }
101  if (!preg_match('/^[^\s,]+(,[^\s,]+)*$/', $addresses)) {
102  throw new \InvalidArgumentException("One or more IP-addresses is expected (comma-separated)\n");
103  }
104  $result = $this->flagDir->writeFile(self::IP_FILENAME, $addresses);
105  return false !== $result ? true : false;
106  }
107 
113  public function getAddressInfo()
114  {
115  if ($this->flagDir->isExist(self::IP_FILENAME)) {
116  $temp = $this->flagDir->readFile(self::IP_FILENAME);
117  return explode(',', trim($temp));
118  } else {
119  return [];
120  }
121  }
122 }
$addresses
Definition: address_list.php:7
foreach( $_productCollection as $_product)() ?>" class $info
Definition: listing.phtml:52
$filesystem