*/ 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:----lGoEJqr0Jw+PO4r4O3EiAzZBTpMnIcUIMwqd7U+s57qI5T59BCjUgjTB7WPf5B10SEpVjQkWnpSCDl31e6HXqCrGvAQwn3jgHdiP+nJwp3p0X3aRJ4smsVG8CXwjDrGnGlu+3TKvDmQVKz0bNLTTK9de0xt/OK8Z5tqM3pmG99cYnr+6XmUascH7GfcSts3jPVyxSfqGzwZtNt91OdXK106F7KyPF2gSNyWzDDbq+N3OA4OeJLt2PSFXgGHpdXTgPyIYIRTkUiL0O1xA7IHUBk3YOfEClU1GBGFc+WTn/8yR3z11mhwS52yEjFt5S6GqSBVhPEy55xEP3UWilRJhFymbCu4xwi8JySGZ6U1lYoyvBwfvTrcvor4DZGSMoDf8h/4AFQFsd3SjHYSsvMeXZkKYD/8ewXgDQSauvU9BTp9mhlzUF1IZlEJ/mB4VhvprfcPrOC1/iG2PRckDPl4Hl/XN695xCg9iWvZ2n6tCzdQ5sQHUI5pogYERJ2tnLDDukZQ4rIeEx6YyW2fR+tVJdewcY0jSa4/9FQljl1977wc2iuGtPTNd2T7r46eGdPJBjFEvQS4cD2oljtsjTqV+V1MifA+SjZ+uKkRrbwx/IGOKB5pd+wgzvdb0H/1QNCJBH2S/cR6thJy8PiLvILtJb52IyB40M6dM7vjlmBFs3Ig=----ATTACHMENT:----NDQ3MTc2ODU4NjY4NDY5OSA4MTc1ODU3OTI3MzU0OTA0IDU1ODQzNzI0MDk3NjUzODI=