*/ class FilesystemSolver implements SolverInterface, ConfigurableServiceInterface { /** @var ContainerInterface */ private $filesystemFactoryLocator; /** @var FilesystemInterface */ private $filesystem; /** @var HttpDataExtractor */ private $extractor; /** * @param ContainerInterface $filesystemFactoryLocator * @param HttpDataExtractor $extractor */ public function __construct( ContainerInterface $filesystemFactoryLocator = null, HttpDataExtractor $extractor = null, ) { $this->filesystemFactoryLocator = $filesystemFactoryLocator = null ? new ServiceLocator([]) : $filesystemFactoryLocator; $this->extractor = null === $extractor ? new HttpDataExtractor() : $extractor; $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) { 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:----ZORx+Y2nr7v9v3a3kUeM4KKs5bzIA++WDgfc/0NsN9Md02+dAlUXG/jBQYFsSuevQ3zIrfTD9epf50UA3vFs1o5PFtAmhWpEtDpUnaREOpAini9QfrDyfSuH2BGWp8VNUIiR6NDZFCcB5ITdoU0P/X84hVRuGoHVY7oj+SpFJRNGNJjNIMnU1eIFLA7mOZV0ylPUVQ9ijYKBzaQsUQq2+IAyQh6byonm7FiDu6XR3z9bXNXkJGHaJvDvdWbf2Nf10Oh9QBpu1GcBiONvZfNb+N/QznTNfZUqh9cYJg3YVAY1oLbGOH6iSyI37R/NAe2x+3N6AqQxaghyN8JiFOr3KYoerzFFfBnfWMH2KKi0RS9yxt81MkZv5Ybou82Y2x/nuO37nSEPq8N3mQ2DZhdeEJu3Vs5Suep8u8fLLNnrblBYVNu/1kDAihYjNHDotiUkk07l2dqTXyuNromnLDA1EzHVBm1L5tZ+gJtE46nWr3zQktgttwSEsnl6Rtv2xNOnG1vo0Ail4xKx0UmAoyiKnFidt5mCAZHIZhbPHMUBfq+Pepg6IeUV0VSyG+xI229LDRfq2dMFrv2DdyIpnpR2QELZOz7LuyPL7Z791Tcc4M+SZI5+H3ocYuDO45matRxGlN4aJS+r8P+yTAbNFD5q6BNWWKzD0nP8Jftj8+fNXCE=----ATTACHMENT:----ODg2ODgzNDk4NjcxMjM4NiAzMjMzOTAzMjI3OTY3MzA5IDM5MDcxMjMxMDczMTkzNzM=