You can write the content dynamically in text(.txt) file using Programmatic way with Magento 2 Standard approach.
Sometimes you need to create a directory and write a text file in the specific location of the system, You can add the content with interface Magento\Framework\Filesystem\Directory\WriteInterface.
I will show you to demo for writing the text file at a var folder with a custom folder. Let’s think our file is stored under the var/custom/demo.txt file in the Magento root. You need to create a Model class with a user-defined function to create a custom directory and demo text file.
<?php
namespace Jesadiya\TextFile\Model;
use Magento\Framework\Filesystem;
use Magento\Framework\App\Filesystem\DirectoryList;
use Magento\Framework\Exception\FileSystemException;
use Magento\Framework\Filesystem\Directory\WriteInterface;
class WriteTextFile
{
/**
* @var DirectoryList
*/
private $directoryList;
/**
* @var Filesystem
*/
private $filesystem;
public function __construct(
DirectoryList $directoryList,
Filesystem $filesystem
) {
$this->directoryList = $directoryList;
$this->filesystem = $filesystem;
}
/**
* create custom folder and write text file
*
* @return bool
*/
public function createDemoTextFile()
{
$varDirectory = $this->filesystem->getDirectoryWrite(
DirectoryList::VAR_DIR
);
$varPath = $this->directoryList->getPath('var');
$fileName = 'demo.txt'; //textfile name
$path = $varPath . '/custom/' . $fileName;
// Write Content
$this->write($varDirectory, $path);
}
/**
* Write content to text file
*
* @param WriteInterface $writeDirectory
* @param $filePath
* @return bool
* @throws FileSystemException
*/
public function write(WriteInterface $writeDirectory, string $filePath)
{
$stream = $writeDirectory->openFile($filePath, 'w+');
$stream->lock();
$fileData = 'Last Imported Order Id: 10000001';
$stream->write($fileData);
$stream->unlock();
$stream->close();
return true;
}
}
This scenario is used when you have integrated Third-party tools for the order import/export and you can synchronization the last order send to the Third-party tools.
You can track the order id, with write down the latest order id to a text file, which was last successfully imported to the Third-party platform.
