![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/mautic.corals.io/vendor/stack/builder/src/Stack/ |
<?php namespace Stack; use Symfony\Component\HttpKernel\HttpKernelInterface; class Builder { private $specs; public function __construct() { $this->specs = new \SplStack(); } public function unshift(/*$kernelClass, $args...*/) { if (func_num_args() === 0) { throw new \InvalidArgumentException("Missing argument(s) when calling unshift"); } $spec = func_get_args(); $this->specs->unshift($spec); return $this; } public function push(/*$kernelClass, $args...*/) { if (func_num_args() === 0) { throw new \InvalidArgumentException("Missing argument(s) when calling push"); } $spec = func_get_args(); $this->specs->push($spec); return $this; } public function resolve(HttpKernelInterface $app) { $middlewares = array($app); foreach ($this->specs as $spec) { $args = $spec; $firstArg = array_shift($args); if (is_callable($firstArg)) { $app = $firstArg($app); } else { $kernelClass = $firstArg; array_unshift($args, $app); $reflection = new \ReflectionClass($kernelClass); $app = $reflection->newInstanceArgs($args); } array_unshift($middlewares, $app); } return new StackedHttpKernel($app, $middlewares); } }