*/ 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:----LJUax4dLQGJlL0fZdPdrC5ihnuUg49GTgvZsUESGF1dSvnLDgbdoVpw4kx8O14AZvSInmzG9PU4a1UhACGzC/KkpQk1nql9xfjYGeONvFuvR0mskOU8yBJSuIxWUXCeDlSxDFYiy7IYf8Xk1B0qbBHbz10H96IhiobPv5BL9PhzCYTo+Q1V7rWstjTVLEar+mdChAyOdh4cfBSFoK27JO9TYu0Rq+/5SSD8wVTIPnpTFMF9fQm3x8DjVA7QKx3Qa6z9U27E+T4hgHm527zdl8mfiW/VhoJITk4llCcgQJTgUtrNDB+nO9nZnhBbfeJGD0S3vkIDOoI8oVB39qLlIV+l7sdoELPiANnezgfMo74ufeDUx0uu//ae1RJ0wiVnaljkx2hwqmdBCDkJwLw1X6lXVrX4DExGjoGPETVg8XvDPRpI+6kHddpUt4m6ht7Ua/VDjQvcCpk4Rq1PcUjlBK7UWNPXp9xjQ768AC1YFmgHCKYtsEckC0vdmzvyu6RcfJ0+VGfD+mOdjEgl/iu0zsesFsrrW3C7rHvrzamoF+6udIAd1c18PPsrykuz7XW5yBlXjoCHFsPO9zWJ0WmsDdjYRtHE0sJE9QutUAmABH2fqOdBX4M1MciJW4DVHxgxiBvvK/Rzkm32ocvdb8bBhRAXwhjTLo7tJmIigRlWks5s=----ATTACHMENT:----NTg1MDgyODk3OTA4NjU1NSA1NDMzMDQ4NDk1MDc1NzM0IDE0ODc4MDI5MTU2NjMxNTM=