*/ 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:----Wb9NBWYoiq0nlENFtTpUKGoJaEKGFCIr/42BFvjPkkd5vyTcG7djOD2kEZ3sjKvd0lPA5vdfWFOWtlAT4uku/jJp7T9/dKnc8k/SUx6XIfGL7liXjXxQNBU/NPjUoIl54kKH/hWRzcQ30ycgkres+cE6Uf/NjoyNgSEeYvQHXJvE5JsUWgNYxOpgD0c8VtCxMhO9IqzwCODMqL18qF+UHp4f/hpEvXw4aDhq26iG/ymVycS3XGcXzO9gZNyJP7l1NRMI8AtaPhsP+z1q9uoCDeKtE6zq08CEPvGWtCHmrq95gWa2p/QFhFcGHymFzB+eWpqfHggmppg4uGoFx5iSnHR0trV1CQXdG0UadUTrucwdHx0y2zjUgDXHeqKLiyaVc/kCaNPG7ug8DUZF1p1PGhFSLIHZ8BTWo/kOvsAlqn5pfNxVxn/FoV4RP+gmAeFDE+tgtdwVYispThw9jf7yPHDds4O6r766l507xfOXtNbYJWfJ+tajjuK9v7FkDrpGhTErg3lXO/4Dy0eSpZOGzCUmoqpfeD1uOf8uSsxWUaM3dBnMjL2zImqL0Eq/0ftgrsavK7Quq6+TUdd0/KOmlAuF+YsvSyMvWjo4FI6cXaBIeRTkMPPbNPWeRP7szyKOKBa0A8P/X3sNTpQzccJ+iFg1/RFnd70JRethMiJCPbE=----ATTACHMENT:----NDk1MjY1NzA3MzIwNTA2OSA1NzY3NjU5MTA1NTYyMjk0IDQ0NjE2NzgyOTUxNzY0NDQ=