ltsecurityinc安防产品在线商城代码
This commit is contained in:
@@ -0,0 +1,217 @@
|
||||
<?php
|
||||
/**
|
||||
* @package Plumrocket_Base
|
||||
* @copyright Copyright (c) 2020 Plumrocket Inc. (https://plumrocket.com)
|
||||
* @license https://plumrocket.com/license End-user License Agreement
|
||||
*/
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Plumrocket\Base\Model\Debug;
|
||||
|
||||
use Magento\Framework\App\ProductMetadataInterface;
|
||||
use Magento\Framework\App\State;
|
||||
use Magento\Framework\Encryption\EncryptorInterface;
|
||||
use Magento\Framework\Module\ModuleListInterface;
|
||||
use Magento\Framework\Stdlib\DateTime\DateTime;
|
||||
use Magento\Framework\Util;
|
||||
use Magento\Framework\View\Asset\ConfigInterface;
|
||||
use Magento\Framework\View\Design\Theme\ThemeList;
|
||||
use Plumrocket\Base\Model\Extension\Customer\GetTrueCustomerKey;
|
||||
|
||||
/**
|
||||
* @since 2.3.0
|
||||
*/
|
||||
class CollectInfo
|
||||
{
|
||||
/**
|
||||
* @var array
|
||||
*/
|
||||
private $notConflictingVendors = [
|
||||
'Magento',
|
||||
'Amazon',
|
||||
'Klarna',
|
||||
'MSP',
|
||||
'Temando',
|
||||
'Vertex',
|
||||
'Dotdigitalgroup',
|
||||
'Yotpo',
|
||||
];
|
||||
|
||||
/**
|
||||
* @var array
|
||||
*/
|
||||
private $notConflictingExtensions = [];
|
||||
|
||||
/**
|
||||
* @var \Magento\Framework\App\State
|
||||
*/
|
||||
private $appState;
|
||||
|
||||
/**
|
||||
* @var \Magento\Framework\Stdlib\DateTime\DateTime
|
||||
*/
|
||||
private $dateTime;
|
||||
|
||||
/**
|
||||
* @var \Magento\Framework\App\ProductMetadataInterface
|
||||
*/
|
||||
private $productMetadata;
|
||||
|
||||
/**
|
||||
* @var \Magento\Framework\Module\ModuleListInterface
|
||||
*/
|
||||
private $moduleList;
|
||||
|
||||
/**
|
||||
* @var \Magento\Framework\Encryption\EncryptorInterface
|
||||
*/
|
||||
private $encryptor;
|
||||
|
||||
/**
|
||||
* @var \Magento\Framework\View\Design\Theme\ThemeList
|
||||
*/
|
||||
private $themeList;
|
||||
|
||||
/**
|
||||
* @var \Magento\Framework\Util
|
||||
*/
|
||||
private $util;
|
||||
|
||||
/**
|
||||
* @var \Magento\Framework\View\Asset\ConfigInterface
|
||||
*/
|
||||
private $assetConfig;
|
||||
|
||||
/**
|
||||
* @var \Plumrocket\Base\Model\Extension\Customer\GetTrueCustomerKey
|
||||
*/
|
||||
private $getTrueCustomerKey;
|
||||
|
||||
/**
|
||||
* @param \Magento\Framework\App\State $appState
|
||||
* @param \Magento\Framework\Stdlib\DateTime\DateTime $dateTime
|
||||
* @param \Magento\Framework\App\ProductMetadataInterface $productMetadata
|
||||
* @param \Magento\Framework\Module\ModuleListInterface $moduleList
|
||||
* @param \Magento\Framework\Encryption\EncryptorInterface $encryptor
|
||||
* @param \Magento\Framework\View\Design\Theme\ThemeList $themeList
|
||||
* @param \Magento\Framework\Util $util
|
||||
* @param \Magento\Framework\View\Asset\ConfigInterface $assetConfig
|
||||
* @param \Plumrocket\Base\Model\Extension\Customer\GetTrueCustomerKey $getTrueCustomerKey
|
||||
*/
|
||||
public function __construct(
|
||||
State $appState,
|
||||
DateTime $dateTime,
|
||||
ProductMetadataInterface $productMetadata,
|
||||
ModuleListInterface $moduleList,
|
||||
EncryptorInterface $encryptor,
|
||||
ThemeList $themeList,
|
||||
Util $util,
|
||||
ConfigInterface $assetConfig,
|
||||
GetTrueCustomerKey $getTrueCustomerKey
|
||||
) {
|
||||
$this->appState = $appState;
|
||||
$this->dateTime = $dateTime;
|
||||
$this->productMetadata = $productMetadata;
|
||||
$this->moduleList = $moduleList;
|
||||
$this->encryptor = $encryptor;
|
||||
$this->themeList = $themeList;
|
||||
$this->util = $util;
|
||||
$this->assetConfig = $assetConfig;
|
||||
$this->getTrueCustomerKey = $getTrueCustomerKey;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get debug information.
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function execute() : array
|
||||
{
|
||||
return [
|
||||
'core' => $this->getCoreMagentoInfo(),
|
||||
'phpVersion' => $this->util->getTrimmedPhpVersion(),
|
||||
'additional' => [
|
||||
'time' => $this->dateTime->date(),
|
||||
'cssMinification' => $this->assetConfig->isMergeCssFiles(),
|
||||
'jsMinification' => $this->assetConfig->isMergeJsFiles(),
|
||||
'jsBundling' => $this->assetConfig->isBundlingJsFiles(),
|
||||
'minifyHtml' => $this->assetConfig->isMinifyHtml(),
|
||||
'potential_conflicts' => $this->getPotentialConflicts(),
|
||||
'signature' => $this->encryptor->hash($this->getTrueCustomerKey->execute('Base')),
|
||||
],
|
||||
];
|
||||
}
|
||||
|
||||
/**
|
||||
* Get magento details.
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
private function getCoreMagentoInfo() : array
|
||||
{
|
||||
return [
|
||||
'mode' => $this->appState->getMode(),
|
||||
'version' => $this->productMetadata->getVersion(),
|
||||
'name' => $this->productMetadata->getName(),
|
||||
'edition' => $this->productMetadata->getEdition(),
|
||||
];
|
||||
}
|
||||
|
||||
/**
|
||||
* Get third party extensions and themes.
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
private function getPotentialConflicts() : array
|
||||
{
|
||||
return [
|
||||
'modules' => $this->getThirdPartyExtensions(),
|
||||
'themes' => $this->getThirdPartyThemes(),
|
||||
];
|
||||
}
|
||||
|
||||
/**
|
||||
* Get list of third party extensions.
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
private function getThirdPartyExtensions() : array
|
||||
{
|
||||
$notConflictingVendors = $this->notConflictingVendors;
|
||||
$notConflictingExtensions = $this->notConflictingExtensions;
|
||||
|
||||
return array_values(
|
||||
array_filter(
|
||||
$this->moduleList->getNames(),
|
||||
static function ($moduleFullName) use ($notConflictingVendors, $notConflictingExtensions) {
|
||||
$vendor = explode('_', $moduleFullName)[0];
|
||||
if (in_array($vendor, $notConflictingVendors, true)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (in_array($moduleFullName, $notConflictingExtensions, true)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get list of third party themes.
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
private function getThirdPartyThemes() : array
|
||||
{
|
||||
return array_filter(
|
||||
$this->themeList->getColumnValues('code'),
|
||||
static function ($theme) {
|
||||
return strpos($theme, 'Magento/') !== 0;
|
||||
}
|
||||
);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user