src/Storage/RateLimitFileStorage.php
private function openTransactionFile($id)
    {
        if (!isset($this->tFiles[$id])) {
            self::preparePath($this->dir, self::DATA_DIR);
            $fileName = $this->dir . static::DATA_DIR . $id;

            $handle = @fopen($fileName, 'c+');
            if ($handle === false) {
                throw new \RuntimeException("Could not open file: " . $fileName);
            }
            $this->tFiles[$id] = new \PicoAuth\Storage\File\FileReader(
                $fileName,
                ["handle"=>$handle]
            );
        }
    }
private function openTransactionFile($id)
    {
        if (!isset($this->tFiles[$id])) {
            self::preparePath($this->dir, self::DATA_DIR);
            $fileName = $this->dir . static::DATA_DIR . $id;

            $handle = @fopen($fileName, 'c+');
            if ($handle === false) {
                throw new \RuntimeException("Could not open file: " . $fileName);
            }
            $this->tFiles[$id] = new \PicoAuth\Storage\File\FileReader(
                $fileName,
                ["handle"=>$handle]
            );
        }
    }
Opens the transaction file

This file is opened for read and write operations and it's lock
will stay active during the transaction calls started and ended with
{@see RateLimitFileStorage::transaction()}

@param string $id action-type file id
@throws \RuntimeException On file open error