# imagify/2.3.1/vendor/wp-media/wp-mixpanel/src/Classes/ConsumerStrategies/FileConsumer.php

Imagify Image Optimization: Optimize Images | Compress &amp; Convert to WebP/AVIF, version 2.3.1. 39 lines.

- Page: https://pluginprobe.com/plugins/imagify/2.3.1/code/vendor/wp-media/wp-mixpanel/src/Classes/ConsumerStrategies/FileConsumer.php
- Raw: https://pluginprobe.com/plugins/imagify/2.3.1/raw/vendor/wp-media/wp-mixpanel/src/Classes/ConsumerStrategies/FileConsumer.php
- Modified: 2026-07-08T07:25:08+00:00

Line numbers below start at 1. Link to a line or a range by appending a fragment to the
page URL, for example `https://pluginprobe.com/plugins/imagify/2.3.1/code/vendor/wp-media/wp-mixpanel/src/Classes/ConsumerStrategies/FileConsumer.php#L10-L20`.

```php
<?php

/**
 * Consumes messages and writes them to a file
 */
class Imagify_WPMedia_ConsumerStrategies_FileConsumer extends Imagify_WPMedia_ConsumerStrategies_AbstractConsumer {

    /**
     * @var string path to a file that we want to write the messages to
     */
    private $_file;


    /**
     * Creates a new FileConsumer and assigns properties from the $options array
     * @param array $options
     */
    function __construct($options) {
        parent::__construct($options);

        // what file to write to?
        $this->_file = isset($options['file']) ? $options['file'] :  dirname(__FILE__)."/../../messages.txt";
    }


    /**
     * Append $batch to a file
     * @param array $batch
     * @return bool
     */
    public function persist($batch) {
        if (count($batch) > 0) {
            return file_put_contents($this->_file, json_encode($batch)."\n", FILE_APPEND | LOCK_EX) !== false;
        } else {
            return true;
        }
    }
}

```
