2021-04-17 00:26:33 +02:00
< ? php
namespace WapplerSystems\Meilisearch\System\Configuration ;
/***************************************************************
* Copyright notice
*
* ( c ) 2017 - Timo Schmidt < timo . schmidt @ dkd . de
* All rights reserved
*
* This script is part of the TYPO3 project . The TYPO3 project is
* free software ; you can redistribute it and / or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation ; either version 3 of the License , or
* ( at your option ) any later version .
*
* The GNU General Public License can be found at
* http :// www . gnu . org / copyleft / gpl . html .
*
* This script is distributed in the hope that it will be useful ,
* but WITHOUT ANY WARRANTY ; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE . See the
* GNU General Public License for more details .
*
* This copyright notice MUST APPEAR in all copies of the script !
***************************************************************/
use TYPO3\CMS\Core\Utility\GeneralUtility ;
/**
* This class encapsulates the access to the extension configuration .
*
* @ author Timo Hund < timo . hund @ dkd . de >
*/
class ExtensionConfiguration
{
/**
* Extension Configuration
*
* @ var array
*/
protected $configuration = [];
/**
* ExtensionConfiguration constructor .
* @ param array $configurationToUse
*/
public function __construct ( $configurationToUse = [])
{
if ( empty ( $configurationToUse )) {
$this -> configuration = GeneralUtility :: makeInstance ( \TYPO3\CMS\Core\Configuration\ExtensionConfiguration :: class ) -> get ( 'meilisearch' );
} else {
$this -> configuration = $configurationToUse ;
}
}
/**
* Get configuration for useConfigurationFromClosestTemplate
*
* @ return bool
*/
public function getIsUseConfigurationFromClosestTemplateEnabled ()
{
return ( bool ) $this -> getConfigurationOrDefaultValue ( 'useConfigurationFromClosestTemplate' , false );
}
/**
* Get configuration for useConfigurationTrackRecordsOutsideSiteroot
*
* @ return bool
*/
public function getIsUseConfigurationTrackRecordsOutsideSiteroot ()
{
return ( bool ) $this -> getConfigurationOrDefaultValue ( 'useConfigurationTrackRecordsOutsideSiteroot' , true );
}
/**
* Get configuration for allowSelfSignedCertificates
*
* @ return bool
*/
public function getIsSelfSignedCertificatesEnabled ()
{
return ( bool ) $this -> getConfigurationOrDefaultValue ( 'allowSelfSignedCertificates' , false );
}
/**
* Get configuration for useConfigurationMonitorTables
*
* @ return array of tableName
*/
public function getIsUseConfigurationMonitorTables ()
{
$monitorTables = [];
$monitorTablesList = $this -> getConfigurationOrDefaultValue ( 'useConfigurationMonitorTables' , '' );
if ( empty ( $monitorTablesList )) {
return $monitorTables ;
}
return GeneralUtility :: trimExplode ( ',' , $monitorTablesList );
}
/**
* Get configuration for allowLegacySiteMode
*
* @ return bool
*/
public function getIsAllowLegacySiteModeEnabled () : bool
{
2021-04-17 21:20:54 +02:00
trigger_error ( 'meilisearch:deprecation: Method getIsAllowLegacySiteModeEnabled is deprecated since EXT:meilisearch 11 and will be removed in 12. Since EXT:meilisearch 10 legacy site handling is deprecated and was removed in EXT:meilisearch 11.' , E_USER_DEPRECATED );
2021-04-17 00:26:33 +02:00
//@todo throw exception if set to true and log deprecation
$legacyModeIsActive = $this -> getConfigurationOrDefaultValue ( 'allowLegacySiteMode' , false );
if ( $legacyModeIsActive === true ) {
throw new \InvalidArgumentException ( " Legacy mode is not supported anymore, please migrate your system to use sitehandling now! " );
}
return false ;
}
/**
* @ param string $key
* @ param mixed $defaultValue
* @ return mixed
*/
protected function getConfigurationOrDefaultValue ( $key , $defaultValue )
{
return isset ( $this -> configuration [ $key ]) ? $this -> configuration [ $key ] : $defaultValue ;
}
}