martin-helmich/php-gridfs

View on GitHub
src/Options/UploadOptions.php

Summary

Maintainability
A
0 mins
Test Coverage
<?php
namespace Helmich\GridFS\Options;

class UploadOptions
{
    private $chunkSizeBytes;
    private $metadata;

    public function __construct(int $chunkSizeBytes = 0, array $metadata = [])
    {
        $this->chunkSizeBytes = $chunkSizeBytes;
        $this->metadata       = $metadata;
    }

    /**
     * @param int $chunkSizeBytes
     * @return self
     */
    public function withChunkSizeBytes(int $chunkSizeBytes): UploadOptions
    {
        $clone                 = clone $this;
        $clone->chunkSizeBytes = $chunkSizeBytes;
        return $clone;
    }

    /**
     * @param array $metadata
     * @return self
     */
    public function withMetadata(array $metadata): UploadOptions
    {
        $clone           = clone $this;
        $clone->metadata = $metadata;
        return $clone;
    }

    /**
     * @return int
     */
    public function chunkSizeBytes(): int
    {
        return $this->chunkSizeBytes;
    }

    /**
     * @return array
     */
    public function metadata(): array
    {
        return $this->metadata;
    }
}