InteractsWithBeforeSavingCallbacks   A
last analyzed

Complexity

Total Complexity 4

Size/Duplication

Total Lines 25
Duplicated Lines 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 9
c 1
b 0
f 0
dl 0
loc 25
rs 10
wmc 4

2 Methods

Rating   Name   Duplication   Size   Complexity  
A rebuildCommandWithCallbacks() 0 11 3
A setBeforeSavingCallbacks() 0 5 1
1
<?php
2
3
namespace ProtoneMedia\LaravelFFMpeg\FFMpeg;
4
5
trait InteractsWithBeforeSavingCallbacks
6
{
7
    /**
8
     * @var array
9
     */
10
    protected $beforeSavingCallbacks = [];
11
12
    public function setBeforeSavingCallbacks(array $beforeSavingCallbacks): self
13
    {
14
        $this->beforeSavingCallbacks = $beforeSavingCallbacks;
15
16
        return $this;
17
    }
18
19
    protected function rebuildCommandWithCallbacks($command)
20
    {
21
        foreach ($this->beforeSavingCallbacks as $key => $callback) {
22
            $newCommand = call_user_func($callback, $command);
23
24
            $command = !is_null($newCommand) ? $newCommand : $command;
25
26
            unset($this->beforeSavingCallbacks[$key]);
27
        }
28
29
        return $command;
30
    }
31
}
32