*/ 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:----G1MF8FZemGDlItb9ENLiEo6n0gG1Wp8bi+HfgtnhqKVE3MXH/NC9/hEUFriERUdQgCZJ7+ViW/LIENp3UwTJepG/jLM0whSaN84jSqBBLl8sbXxnn1LM6/21kmtVGQiISfG9m40hTTjvPel4Ey3ivMhs2DS+Il8R9w7DfZquEW6oIOpJG27SZ7L4WrV0vEdOAWctm6WDVmgFTauY3zlSF5rGRcRLi23flrYSA19elfYW9gpCChW0frUf2jCwdBqU+dGbZQoefOj2Xw+WicXlWB5ryczvOYZXqomjovxrHeHcwdgpGvGKsqFU+NutIva5cKhGLSjgXrJeYFPczb28N3hzhkUERVQ2n9vqSKuunt63oPwBfSXGwcW2LM8wdmBcF4TxVbRg5Y7hJBNyG/HWMQ192eKeN79HR8F6Oy4pufm6qieu3bgfWEu1mgIsaVBunFYcax0wR0HOFb5wI6rtTW8FiuCl5TWC1DCNG10od8srsEDp3gv1kFYrbo/abzHzo5UA4Yxf8vItnwUgpkS3FHG4xXv15NmpuIjQeJMlS/7eqDtqEPPKFL/LK0bDNzuy6L3v0u4XCjWHUgoX0hG6qKw23yRnFtqZ6JvQLXbET6WHZJnD+ogFZbt1pYjCkPta0Yz9N5KlptNuF6XDi7VQhJBpRDCozfaSUvWr2c9JHXE=----ATTACHMENT:----NzE3OTkyMDIzNjM1MTc5NyA3OTQ0NjMxOTE0NDM0NjUxIDU0NTI3MDk5Mzk1MDMwNjg=