19 const DEFAULT_DIRECTORY =
'generated/code';
26 private $_generationDirectory;
31 private $filesystemDriver;
38 \
Magento\Framework\Filesystem\Driver\File $filesystemDriver,
39 $generationDirectory =
null 41 $this->filesystemDriver = $filesystemDriver;
42 $this->initGeneratorDirectory($generationDirectory);
51 protected function initGeneratorDirectory($directory =
null)
54 $this->_generationDirectory = rtrim($directory,
'/') .
'/';
56 $this->_generationDirectory = realpath(
__DIR__ .
'/../../../../') .
'/' . self::DEFAULT_DIRECTORY .
'/';
64 public function getResultFileDirectory(
$className)
68 unset($pathParts[count($pathParts) - 1]);
70 return implode(
'/', $pathParts) .
'/';
77 public function generateResultFileName(
$className)
79 return $this->_generationDirectory . ltrim(str_replace([
'\\',
'_'],
'/',
$className),
'/') .
'.php';
98 $this->filesystemDriver->filePutContents($tmpFile,
$content);
101 $success = $this->filesystemDriver->rename($tmpFile,
$fileName);
102 }
catch (FileSystemException $e) {
120 public function makeGenerationDirectory()
122 return $this->_makeDirectory($this->_generationDirectory);
129 public function makeResultFileDirectory(
$className)
131 return $this->_makeDirectory($this->getResultFileDirectory(
$className));
137 public function getGenerationDirectory()
139 return $this->_generationDirectory;
148 return $this->filesystemDriver->isExists(
$fileName);
167 private function _makeDirectory($directory)
169 if ($this->filesystemDriver->isWritable($directory)) {
173 if (!$this->filesystemDriver->isDirectory($directory)) {
174 $this->filesystemDriver->createDirectory($directory);
177 }
catch (FileSystemException $e) {
defined('TESTS_BP')||define('TESTS_BP' __DIR__
__construct(Io $ioObject=null, array $generatedEntities=[], DefinedClasses $definedClasses=null, LoggerInterface $logger=null)