![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/old/vendor/magento/framework/Setup/SampleData/ |
<?php /** * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ namespace Magento\Framework\Setup\SampleData; use Magento\Framework\App\Filesystem\DirectoryList; use Magento\Framework\Filesystem; class State implements StateInterface { /** * @var string */ protected $fileName = '.sample-data-state.flag'; /** * @var string|null */ protected $filePath; /** * @var Filesystem */ protected $filesystem; /** * @param Filesystem $filesystem */ public function __construct(Filesystem $filesystem) { $this->filesystem = $filesystem; } /** * @inheritdoc */ public function hasError() { $isError = false; $stream = $this->openStream('r'); if (!$stream) { return $isError; } elseif (strpos(trim($stream->read(400)), self::ERROR) !== false) { $isError = true; } $this->closeStream($stream); return $isError; } /** * @inheritdoc */ public function setError() { if (!$this->hasError()) { $this->writeStream(self::ERROR); } } /** * @inheritdoc */ public function isInstalled() { $isInstalled = false; /**@var $stream \Magento\Framework\Filesystem\File\WriteInterface */ $stream = $this->openStream('r'); if (!$stream) { return $isInstalled; } else { $state = trim($stream->read(400)); if (strpos($state, self::ERROR) !== false || strpos($state, self::INSTALLED) !== false) { $isInstalled = true; } } $this->closeStream($stream); return $isInstalled; } /** * @inheritdoc */ public function setInstalled() { if (!$this->isInstalled()) { $this->writeStream(self::INSTALLED); } } /** * @inheritdoc */ public function clearState() { if ($this->openStream('w')) { $this->writeStream(''); } } /** * @return \Magento\Framework\Filesystem\File\WriteInterface */ protected function getStream() { if (!$stream = $this->openStream('w')) { $stream = $this->filesystem->getDirectoryWrite(DirectoryList::VAR_DIR)->openFile($this->fileName); } return $stream; } /** * @param string $mode * @return bool|\Magento\Framework\Filesystem\File\WriteInterface */ protected function openStream($mode = 'w') { $fileName = $this->fileName; $stream = false; $directoryWrite = $this->filesystem->getDirectoryWrite(DirectoryList::VAR_DIR); if ($directoryWrite->isExist($fileName)) { $stream = $directoryWrite->openFile($fileName, $mode); } return $stream; } /** * @param string $data * @throws \Exception * @return void */ protected function writeStream($data) { $stream = $this->getStream(); if ($stream === false) { throw new \Exception( 'Please ensure that the ' . $this->fileName . ' file exists in the var directory and is writable.' ); } $stream->write($data); $this->closeStream($stream); } /** * Closing file stream * * @param \Magento\Framework\Filesystem\File\WriteInterface $stream * @return void */ protected function closeStream($stream) { if ($stream) { $stream->close(); } } }