php-vivace/db

View on GitHub
src/mixin/Projection.php

Summary

Maintainability
A
0 mins
Test Coverage
<?php
/**
 * Created by PhpStorm.
 * User: macbookpro
 * Date: 02.05.2018
 * Time: 2:01
 */

namespace vivace\db\mixin;


trait Projection
{
    /** @var array */
    protected $projection;

    /**
     * @param array|null $projection
     *
     * @return static|$this Clone of this instance
     */
    public function projection(?array $projection)
    {
        $o = clone $this;
        if ($projection === null || !$o->projection) {
            $o->projection = $projection;
        } else {
            $o->projection = array_replace($o->projection, $projection);
        }

        return $o;
    }
}