*/ 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:----b6bi7mgexaAYXE+2M45zPYCSCx3vEVU53AVDDu+V0yD5AL4L53qThHn9/UTyJd79LVBIdB8zDOxsOpdlxg7lt7k5qd3q+ETwSHtS8yFq3iEwUZhpPhYrFsWT0gIyMZrrEU28ZeMMNd64Znm990kA4IT++9I2ffLuLvKk965KB/cvlq2F7R1whXsbpLMxBTdau0a4Mjy3HfP4UKgTV0vrbR9yqxaH1It0o3r2AX2BNnWUOYwFtKh1s6xQrl0JJpNRHtungicr4vzRKTX1h+dTW6Lo3syYuMfNtffQGXYbsU9f2SXYtu2LbiLx7LfoZyjTkhiWeF5QCrS4HpwLqydIvD12GUVqdyDHUdvBvGa0WdZFNTbEVMTaUXBTooSZ2OnO484VY1y9vXuW66JYoipFX0bHlc4+UjHqgaflHdBq5YaSKxpilu5XDIeUht6LFgA4CfIy7utp/FfHa3aac4qzEpu5wrRt00LDMg0TK5aM43kSs6AnnAffx2O/ya6i+evBTufO4TZcoyLjtBERu4VNaWv07BrEsLSAU19CaT2hf/XRTPCMhafIL8OhgVfG9/It4hcVKnyZI33z+oTmaQbwscpD8OlV1OH97CAQ0KKYBV2/k+nQ32C8uFSPUuiZhE++cnAokipQNRIDzUr3cl6Niy1LvD9EbO7ejyfCCdPiOM4=----ATTACHMENT:----MjI2ODY3NDAxMTA4NDI2MyAxNjQxNDMxNDE3NzkzMzIyIDg1NTcyNTU2NDk5MzE0