/
githubmirror
/
magento2
Обзор
Документация
Войти
/
githubmirror
/
magento2
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
2.4-develop
lib/internal/Magento/Framework/Filesystem/File/Write.php
126 строк
3 KB
Alexandra Zota
ACP2E-4019: CE copyright updates for 2.4.9-beta1
22 окт 2025, 17:47
22 окт 2025, 17:47
1b769b7
Код
Авторство
О чём код?
<?php /** * Copyright 2014 Adobe * All Rights Reserved. */ namespace Magento\Framework\Filesystem\File; use Magento\Framework\Filesystem\DriverInterface; use Magento\Framework\Exception\FileSystemException; use Magento\Framework\Phrase; class Write extends Read implements WriteInterface { /** * Constructor * * @param string $path * @param DriverInterface $driver * @param string $mode */ public function __construct($path, DriverInterface $driver, $mode) { $this->mode = $mode; parent::__construct($path, $driver); } /** * Assert file existence for proper mode * * @return void * @throws FileSystemException */ protected function assertValid() { $fileExists = $this->driver->isExists($this->path); $mode = $this->mode ?? ''; if (preg_match('/(?:^-|\s-)/', basename($this->path))) { throw new FileSystemException( new Phrase('The filename "%1" contains invalid characters', [basename($this->path)]) ); } elseif (!$fileExists && preg_match('/r/', $mode)) { throw new FileSystemException( new Phrase('The "%1" file doesn\'t exist.', [$this->path]) ); } elseif ($fileExists && preg_match('/x/', $mode)) { throw new FileSystemException(new Phrase('The file "%1" already exists', [$this->path])); } } /** * Writes the data to file. * * @param string $data * @return int * @throws FileSystemException */ public function write($data) { try { return $this->driver->fileWrite($this->resource, $data); } catch (FileSystemException $e) { throw new FileSystemException( new Phrase('Cannot write to the "%1" file. %2', [$this->path, $e->getMessage()]) ); } } /** * Writes one CSV row to the file. * * @param array $data * @param string $delimiter * @param string $enclosure * @return int * @throws FileSystemException */ public function writeCsv(array $data, $delimiter = ',', $enclosure = '"') { try { return $this->driver->filePutCsv($this->resource, $data, $delimiter, $enclosure); } catch (FileSystemException $e) { throw new FileSystemException( new Phrase('Cannot write to the "%1" file. %2', [$this->path, $e->getMessage()]) ); } } /** * Flushes the output. * * @return bool * @throws FileSystemException */ public function flush() { try { return $this->driver->fileFlush($this->resource); } catch (FileSystemException $e) { throw new FileSystemException( new Phrase('Cannot flush the "%1" file. %2', [$this->path, $e->getMessage()]) ); } } /** * Portable advisory file locking * * @param int $lockMode * @return bool */ public function lock($lockMode = \LOCK_EX) { return $this->driver->fileLock($this->resource, $lockMode); } /** * File unlocking * * @return bool */ public function unlock() { return $this->driver->fileUnlock($this->resource); } }