src/DataStore/src/DataStore/CsvBase.php
protected function flush($item, $delete = false)
    {
        // Create and open temporary file for writing
        $tmpFile = tempnam(sys_get_temp_dir(), uniqid() . '.tmp');
        $tempHandler = fopen($tmpFile, 'w');

        // Write headings
        fputcsv($tempHandler, $this->columns, $this->csvDelimiter);

        $identifier = $this->getIdentifier();
        $inserted = false;

        foreach ($this as $index => $row) {
            // Check an identifier; if equals and it doesn't need to delete - inserts new item
            if ($item[$identifier] == $row[$identifier]) {
                if (!$delete) {
                    $this->writeRow($tempHandler, $item);
                }
                // anyway marks row as inserted
                $inserted = true;
            } else {
                // Just it inserts row from source-file (copying)
                $this->writeRow($tempHandler, $row);
            }
        }

        // If the same item was not found and changed inserts the new item as the last row in the file
        if (!$inserted) {
            $this->writeRow($tempHandler, $item);
        }

        fclose($tempHandler);

        // Copies the original file to a temporary one.
        if (!copy($tmpFile, $this->filename)) {
            unlink($tmpFile);
            throw new DataStoreException("Failed to write the results to a file.");
        }

        unlink($tmpFile);
    }
protected function flush($item, $delete = false)
    {
        // Create and open temporary file for writing
        $tmpFile = tempnam(sys_get_temp_dir(), uniqid() . '.tmp');
        $tempHandler = fopen($tmpFile, 'w');

        // Write headings
        fputcsv($tempHandler, $this->columns, $this->csvDelimiter);

        $identifier = $this->getIdentifier();
        $inserted = false;

        foreach ($this as $index => $row) {
            // Check an identifier; if equals and it doesn't need to delete - inserts new item
            if ($item[$identifier] == $row[$identifier]) {
                if (!$delete) {
                    $this->writeRow($tempHandler, $item);
                }
                // anyway marks row as inserted
                $inserted = true;
            } else {
                // Just it inserts row from source-file (copying)
                $this->writeRow($tempHandler, $row);
            }
        }

        // If the same item was not found and changed inserts the new item as the last row in the file
        if (!$inserted) {
            $this->writeRow($tempHandler, $item);
        }

        fclose($tempHandler);

        // Copies the original file to a temporary one.
        if (!copy($tmpFile, $this->filename)) {
            unlink($tmpFile);
            throw new DataStoreException("Failed to write the results to a file.");
        }

        unlink($tmpFile);
    }
protected function flush ( $ item , $ delete = false ) { // Create and open temporary file for writing $ tmpFile = tempnam ( sys_get_temp_dir ( ) , uniqid ( ) . '.tmp' ) ; $ tempHandler = fopen ( $ tmpFile , 'w' ) ; // Write headings fputcsv ( $ tempHandler , $ this -> columns , $ this -> csvDelimiter ) ; $ identifier = $ this -> getIdentifier ( ) ; $ inserted = false ; foreach ( $ this as $ index => $ row ) { // Check an identifier; if equals and it doesn't need to delete - inserts new item if ( $ item [ $ identifier ] == $ row [ $ identifier ] ) { if ( ! $ delete ) { $ this -> writeRow ( $ tempHandler , $ item ) ; } // anyway marks row as inserted $ inserted = true ; } else { // Just it inserts row from source-file (copying) $ this -> writeRow ( $ tempHandler , $ row ) ; } } // If the same item was not found and changed inserts the new item as the last row in the file if ( ! $ inserted ) { $ this -> writeRow ( $ tempHandler , $ item ) ; } fclose ( $ tempHandler ) ; // Copies the original file to a temporary one. if ( ! copy ( $ tmpFile , $ this -> filename ) ) { unlink ( $ tmpFile ) ; throw new DataStoreException ( "Failed to write the results to a file." ) ; } unlink ( $ tmpFile ) ; }
Flushes all changes to temporary file which then will change the original one

@param $item
@param bool|false $delete
@throws \rollun\datastore\DataStore\DataStoreException
Flushes all changes to temporary file which then will change the original one