/** * Change stream options */ public function stream_metadata($path, $option, $value) { if (!$this->initPath($path)) { return FALSE; } if ($option !== STREAM_META_TOUCH) { return FALSE; } $mtime = isset($value[0]) ? $value[0] : time(); $atime = isset($value[1]) ? $value[1] : $mtime; return $this->fileSystem->touch($this->getFilename(), $mtime, $atime); }
/** * @param Filesystem $filesystem * @param $baseDir * @param $fileName * * @return string */ protected function makeFile(FileSystem $filesystem, $baseDir, $fileName) { $fileName = $baseDir . \DIRECTORY_SEPARATOR . $fileName; $filesystem->touch($fileName); return $fileName; }
use Monolog\Logger; use Monolog\Handler\StreamHandler; use Monolog\Handler\FirePHPHandler; use Symfony\Component\Process\Process; use Symfony\Component\Process\ProcessBuilder; use Symfony\Component\Process\PhpProcess; use Symfony\Component\Filesystem\Filesystem; use Helpers\ProcessLocker; $locker = new ProcessLocker($config['lock_file']); if ($locker->isLocked()) { return; } $locker->lockProcess(); $logFileName = $config['log_files_path'] . 'report ' . date('d-m-Y H i s') . '.log'; $fs = new FileSystem(); $fs->touch($logFileName); $logger = new Logger('csv_batch_importer'); $logger->pushHandler(new StreamHandler($logFileName, Logger::DEBUG)); $logger->pushHandler(new FirePHPHandler()); $files = array_filter(scandir($config['output_csv_path']), function ($file_name) { return preg_match('/^output.*\\.csv$/', $file_name) ? $file_name : null; }); foreach ($files as $file_name) { $file_name = $config['output_csv_path'] . $file_name; $process_builder = new ProcessBuilder(array($config['php_path'], __DIR__ . '/csv_process.php', $file_name), $config['proc_working_path']); $process_builder->setTimeout(0); $process_builder->getProcess()->run(function ($type, $buffer) use($logger) { if (Process::ERR === $type) { $logger->addError($buffer); } else { $logger->addInfo($buffer);