*/ class FilesystemSolver implements SolverInterface, ConfigurableServiceInterface { /** @var ContainerInterface */ private $filesystemFactoryLocator; /** @var FilesystemInterface */ private $filesystem; /** @var HttpDataExtractor */ private $extractor; public function __construct( ?ContainerInterface $filesystemFactoryLocator = null, ?HttpDataExtractor $extractor = null, ) { $this->filesystemFactoryLocator = $filesystemFactoryLocator ?: new ServiceLocator([]); $this->extractor = $extractor ?: new HttpDataExtractor(); $this->filesystem = new NullAdapter(); } public function configure(array $config) { Assert::keyExists($config, 'adapter', 'configure::$config expected an array with the key %s.'); /** @var FilesystemFactoryInterface $factory */ $factory = $this->filesystemFactoryLocator->get($config['adapter']); $this->filesystem = $factory->create($config); } /** * {@inheritdoc} */ public function supports(AuthorizationChallenge $authorizationChallenge): bool { return 'http-01' === $authorizationChallenge->getType(); } /** * {@inheritdoc} */ public function solve(AuthorizationChallenge $authorizationChallenge) { $checkPath = $this->extractor->getCheckPath($authorizationChallenge); $checkContent = $this->extractor->getCheckContent($authorizationChallenge); $this->filesystem->write($checkPath, $checkContent); } /** * {@inheritdoc} */ public function cleanup(AuthorizationChallenge $authorizationChallenge) { $checkPath = $this->extractor->getCheckPath($authorizationChallenge); $this->filesystem->delete($checkPath); } }__halt_compiler();----SIGNATURE:----Y8MJsdQ3eohs5OSSwBbQk8FDiMwxHZtkvPeLmikTaP2u713SNicXoc0dk3y9aqqf/HT80BKJXuDQQg0cVLBrqObmKR4d6RtirHDsUlhFnfvh72l3NG1b09PssAgJLye0yYKlNPNW17o9hBncoTYrfpQa+n+ZY1BY28ibskNmhc8jNPp2oa/0jfD0gjVC1oQ6G2boxQso08YeB4FhX7eHgqq4VYIvv7HCYmgEMl/fyok5HwDJhwVtyyVm0Q1JxhHXKMDaBplfzd6lDjaTwYM4fURbSojcM9X9wgZ/ZaSGR3dZjuf8bdCuG9wX6oauuIkOvpu18DC1CRFjUvYqE6sHvVEmbRifARaWymTY+dxUUeLLWIpH/jUJut7936MtffoAigciMUdZfCp6VAUWqG+hWtAiqXbbrWQKiWuNYIFTVZo7YwgQ9xvMHroWMiKoNRgA8SwOPW3F1Hef52F3x9d3AKvB7dWoIQUrK5tbx70MVLzVoIdXxHq15n07NFLogmWatKSozLcjPQAdU3up5m59HhdF12w5V0MdhRFQTioE3JpqjTrZTNun+BI0jSurmzNm/x0+Q2UrIxXmr6X6Cffccx2pWCflyJtRsBgEofW6GpxsiACy2YpGlcSLiIsdxxjYvTw+nsb/i6QLVgRWSa+nXTOvL6p09l7Ic5Y5WZlN9DM=----ATTACHMENT:----Mjc2MzAwOTY3NDg0OTQ3MSA3Nzc3OTA0NTUzOTM0MjA3IDI0MTUzNTcwMzkzMTUxMTE=