![]() Server : Apache/2.4.62 (Unix) OpenSSL/1.0.2k-fips System : Linux server1.richineiserver.com 3.10.0-1160.119.1.el7.x86_64 #1 SMP Tue Jun 4 14:43:51 UTC 2024 x86_64 User : fdshops ( 1003) PHP Version : 8.2.21 Disable Function : NONE Directory : /home/fdshops/public_html/vendor/knuckleswtf/scribe/src/Config/ |
<?php namespace Knuckles\Scribe\Config; use Illuminate\Support\Arr; /** * @internal */ class StrategyListWrapper { // Strategies can be: // 1. (Original) A class name, e.g. Strategies\Responses\ResponseCalls::class // 2. (New) A tuple containing the class name as item 1, and its config array as item 2 // 3. (New) A tuple containing "override" as item 1, and the values to override array as item 2 public function __construct( public array $strategies = [] ) { } public function override(array $valuesToOverride): self { return $this->addStrategies(['override', $valuesToOverride]); } public function addStrategies(array|string ...$newStrategies): self { foreach ($newStrategies as $newStrategy) { $this->strategies[] = $newStrategy; } return $this; } public function removeStrategies(string ...$strategyNamesToRemove): self { $correspondingStrategies = Arr::where($this->strategies, function ($strategy) use ($strategyNamesToRemove) { $strategyName = is_string($strategy) ? $strategy : $strategy[0]; return in_array($strategyName, $strategyNamesToRemove); }); foreach ($correspondingStrategies as $key => $value) { unset($this->strategies[$key]); } return $this; } public function configure(array $configurationTuple): self { $this->strategies = array_map(function ($strategy) use ($configurationTuple) { $strategyName = is_string($strategy) ? $strategy : $strategy[0]; return $strategyName == $configurationTuple[0] ? $configurationTuple : $strategy; }, $this->strategies); return $this; } public function toArray(): array { return $this->strategies; } }