ltsecurityinc安防产品在线商城代码
This commit is contained in:
@@ -0,0 +1,118 @@
|
||||
<?php
|
||||
/**
|
||||
* @package Plumrocket_GlobalPrivacyControl
|
||||
* @copyright Copyright (c) 2025 Plumrocket Inc.
|
||||
* @license https://plumrocket.com/license End-user License Agreement
|
||||
*/
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Plumrocket\GlobalPrivacyControl\Service;
|
||||
|
||||
use Magento\Framework\App\DeploymentConfig;
|
||||
use Magento\Framework\App\Filesystem\DirectoryList as DirectoryListApi;
|
||||
use Magento\Framework\Config\ConfigOptionsListConstants;
|
||||
use Magento\Framework\Exception\LocalizedException;
|
||||
use Magento\Framework\Filesystem\DirectoryList;
|
||||
use Magento\Framework\Filesystem\Driver\File as FileDriver;
|
||||
use Plumrocket\GlobalPrivacyControl\Helper\Config;
|
||||
|
||||
class WellKnownFileManager
|
||||
{
|
||||
private const FILE_NAME = 'gpc.json';
|
||||
|
||||
/**
|
||||
* @var \Magento\Framework\App\DeploymentConfig
|
||||
*/
|
||||
private $deploymentConfig;
|
||||
|
||||
/**
|
||||
* @var \Magento\Framework\Filesystem\DirectoryList
|
||||
*/
|
||||
private $directoryList;
|
||||
|
||||
/**
|
||||
* @var \Magento\Framework\Filesystem\Driver\File
|
||||
*/
|
||||
private $fileDriver;
|
||||
|
||||
/**
|
||||
* @var \Plumrocket\GlobalPrivacyControl\Helper\Config
|
||||
*/
|
||||
private $config;
|
||||
|
||||
/**
|
||||
* @param \Magento\Framework\App\DeploymentConfig $deploymentConfig
|
||||
* @param \Magento\Framework\Filesystem\DirectoryList $directoryList
|
||||
* @param \Magento\Framework\Filesystem\Driver\File $fileDriver
|
||||
* @param \Plumrocket\GlobalPrivacyControl\Helper\Config $config
|
||||
*/
|
||||
public function __construct(
|
||||
DeploymentConfig $deploymentConfig,
|
||||
DirectoryList $directoryList,
|
||||
FileDriver $fileDriver,
|
||||
Config $config
|
||||
) {
|
||||
$this->deploymentConfig = $deploymentConfig;
|
||||
$this->directoryList = $directoryList;
|
||||
$this->fileDriver = $fileDriver;
|
||||
$this->config = $config;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return void
|
||||
* @throws \Magento\Framework\Exception\FileSystemException
|
||||
* @throws \Magento\Framework\Exception\RuntimeException
|
||||
*/
|
||||
public function create(): void
|
||||
{
|
||||
$filePath = $this->getFilePath();
|
||||
$directoryPath = dirname($filePath);
|
||||
|
||||
if (! $this->fileDriver->isExists($directoryPath)) {
|
||||
$this->fileDriver->createDirectory($directoryPath);
|
||||
}
|
||||
|
||||
$jsonData = json_encode(
|
||||
[
|
||||
'gpc' => $this->config->isModuleEnabled(),
|
||||
'version' => '1.0',
|
||||
'created' => $this->config->getWellKnownLastUpdateDate()
|
||||
],
|
||||
JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES
|
||||
);
|
||||
|
||||
$this->fileDriver->filePutContents($filePath, $jsonData);
|
||||
}
|
||||
|
||||
/**
|
||||
* @return string
|
||||
* @throws \Magento\Framework\Exception\FileSystemException
|
||||
* @throws \Magento\Framework\Exception\RuntimeException
|
||||
*/
|
||||
public function getContent(): string
|
||||
{
|
||||
$filePath = $this->getFilePath();
|
||||
if (! $this->fileDriver->isExists($filePath)) {
|
||||
throw new LocalizedException(
|
||||
__("The .well-known file was not found.")
|
||||
);
|
||||
}
|
||||
|
||||
return $this->fileDriver->fileGetContents($filePath);
|
||||
}
|
||||
|
||||
/**
|
||||
* @return string
|
||||
* @throws \Magento\Framework\Exception\FileSystemException
|
||||
* @throws \Magento\Framework\Exception\RuntimeException
|
||||
*/
|
||||
private function getFilePath(): string
|
||||
{
|
||||
$rootPath = $this->deploymentConfig->get(ConfigOptionsListConstants::CONFIG_PATH_DOCUMENT_ROOT_IS_PUB)
|
||||
? $this->directoryList->getPath(DirectoryListApi::PUB)
|
||||
: $this->directoryList->getRoot();
|
||||
|
||||
return $rootPath . DIRECTORY_SEPARATOR . '.well-known' . DIRECTORY_SEPARATOR . self::FILE_NAME;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user