Flintstone\Database::openFile PHP Метод

openFile() публичный Метод

Open the database file.
public openFile ( integer $mode ) : SplFileObject
$mode integer
Результат SplFileObject
    public function openFile($mode)
    {
        $path = $this->getPath();
        if (!is_file($path) && !@touch($path)) {
            throw new Exception('Could not create file: ' . $path);
        }
        if (!is_readable($path) || !is_writable($path)) {
            throw new Exception('File does not have permission for read and write: ' . $path);
        }
        if ($this->getConfig()->useGzip()) {
            $path = 'compress.zlib://' . $path;
        }
        $res = $this->fileAccessMode[$mode];
        $file = new SplFileObject($path, $res['mode']);
        if (self::FILE_READ == $mode) {
            $file->setFlags(SplFileObject::DROP_NEW_LINE | SplFileObject::SKIP_EMPTY | SplFileObject::READ_AHEAD);
        }
        if (!$this->getConfig()->useGzip() && !$file->flock($res['operation'])) {
            throw new Exception('Could not lock file: ' . $path);
        }
        return $file;
    }