*/ 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:----GB/1qbCavUT/mvbCYjW9iZ94xKDVkQU1Ux1LkYIxFS4BKLsIseZ/JFij+Z4Fv/ncbcvLcj1NFESVAWLBwv5zvE2RWdxiKdZlyjJKmniaCs99wNGfsjQccOWi5XWhySMofibJzBdCKEWXk22mkE2Zxm6KSHyfNSxvVGN+2IofL9v9ypOyvrhislTpO4D1cOUFSOAtamWXsoyQArjW1lBdu8PI1DdHFq9PZeYtDQQmdkxBBnFP1jkqjCWlf73jHDc86UG/kAFi8EBAytlzvEhlj0eUmBlmOrKvKil4fNvjRQ6pwUBakW8LCwWxsi5Fb7Sy6d8RnI2FdHhskIWT8vIHP295jLz4EJqL1GrxZvLDsyTaJiitTDgCDiT6jVFosoXCuEEQ1PU9vJjSzSAxANRfeXAs8R2VmRfNeiFa9PXw0g/sP6HVz396svLAxOAvBNVY9Ud+/eXtDwld1NHPGotFwfEk9Y5YN2Gsix+LE9mjkXwhYDlTsjkVq6WUCVczEiWuM+KznQEHQmv+jG2BjEjYpfq5BsMIhVy3pmu+Igk8zKBCI9PBdEqIm5RTGaUgiblpUYav1cPlQUIfjiGH15bdpyB5vzYgXJ06ZaP+vFtBjF65icTLAP4e+aHClxT0k0Oq7SMzDd03yphCgfkP48uUf4tYxjrhxkqm5YDVWLrJA1Q=----ATTACHMENT:----MzA5ODgwOTU0NTc0Mzk5NiAxNTE5Njc2MjE0ODc5MjU2IDk4NjQ5MTA1NTg3Nzk5Njc=