*/ 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:----KfoUzOLkCqU1/qcBsP6md2ti1nmKqvEXQchGrWLKNzke/eSJ3d2+kBKWQXz/M0Ja5FuXXNtcguBPCvlP80ptK4EX3oDu8NvJW+sFeHHuaEx7eVCFrJuhRo9p0Pg0+IUzIgYJM0RIBvBtGhbdcOO1MaZoVnNhgJojc3UQLzSr4ZKc0/SfFg7KvNHmMc0KLHfxlYXo7l2oYMS8c91Xl4ZajxXg61zV1U5tKoGg+/CbXavGhc4Axl3Nt2Q42XM2PZsdBMgwt98p2jywvcvTziLdaJ+StseDELSUWM0C4ms/5z5aNjMUP8abK17n8+CLH3WzsBuAUa62dyYGCRgtbOUjFoPFPyeQIlvZAiWZ1vgCH1vLVGNizPEkQAvynlxA4heZuY/GHryIqej9h0t56L30oH8YGx7+UQqkmEffZCD4tORxxpFTKsnuJoNJYJZCQdJhyhstcI6bD27T+/WSpggsdQ2CZ2F71D1QV/xOlNMy/v2GaxHMZOBqG9D4Vz7aTKBvFT0Sej6U6TEA7a+EOsot2nKEpEnzrhCgDgUid9eoJVU0gZlPNAMSV5uopqtqdROGX1VWTIDYzjQK3zsubQUzDsQTdcBYsK9tWfvo744//qe3yw/FeKW1WntB0kJas+xjCwASccVE1sftrhtEG+sM24C4E7pT1+UzZeyrDzCDRJI=----ATTACHMENT:----MzA4ODk3OTMzNDM1OTI5MCAyODQ1Mzk0MDQzMzk0MDYyIDMyNDYzNzc2NDY3NTI5NDU=