1: <?php
2:
3: 4: 5: 6: 7: 8: 9: 10:
11:
12: namespace Chromabits\Nucleus\Transformation;
13:
14: use Chromabits\Nucleus\Data\ArrayMap;
15: use Chromabits\Nucleus\Foundation\BaseObject;
16: use Chromabits\Nucleus\Meditation\Arguments;
17: use Chromabits\Nucleus\Meditation\Boa;
18: use Chromabits\Nucleus\Transformation\Interfaces\TransformInterface;
19:
20: 21: 22: 23: 24: 25:
26: class OnlyTransform extends BaseObject implements TransformInterface
27: {
28: 29: 30:
31: protected $allowed;
32:
33: 34: 35: 36: 37:
38: public function __construct(array $allowed)
39: {
40: parent::__construct();
41:
42: Arguments::define(Boa::arrOf(Boa::string()))->check($allowed);
43:
44: $this->allowed = $allowed;
45: }
46:
47: 48: 49: 50: 51: 52: 53:
54: public function run(array $input)
55: {
56: return ArrayMap::of($input)->only($this->allowed)->toArray();
57: }
58: }
59: