TASK: Refactor options access
* No longer use trait but static methods due to lack of Dependency Injection. * Adjust all calls. * Also don't use yield any longer but return array of file names. Relates: #42
This commit is contained in:
parent
b99438fff9
commit
20952b7710
8 changed files with 35 additions and 35 deletions
|
@ -24,15 +24,12 @@ use PHP_CodeSniffer as PhpCs;
|
|||
use PHP_CodeSniffer_File as PhpCsFile;
|
||||
use PHP_CodeSniffer_Sniff as PhpCsSniff;
|
||||
use Typo3Update\Sniffs\LegacyClassnames\Mapping;
|
||||
use Typo3Update\Sniffs\OptionsAccessTrait;
|
||||
|
||||
/**
|
||||
* Provide common uses for all sniffs, regarding class name checks.
|
||||
*/
|
||||
abstract class AbstractClassnameChecker implements PhpCsSniff
|
||||
{
|
||||
use OptionsAccessTrait;
|
||||
|
||||
/**
|
||||
* A list of extension names that might contain legacy class names.
|
||||
* Used to check clas names for warnings.
|
||||
|
|
|
@ -20,7 +20,7 @@ namespace Typo3Update\Sniffs\LegacyClassnames;
|
|||
* 02110-1301, USA.
|
||||
*/
|
||||
|
||||
use Typo3Update\Sniffs\OptionsAccessTrait;
|
||||
use Typo3Update\Sniffs\Options;
|
||||
|
||||
/**
|
||||
* Singleton wrapper for mappings.
|
||||
|
@ -30,8 +30,6 @@ use Typo3Update\Sniffs\OptionsAccessTrait;
|
|||
*/
|
||||
final class Mapping
|
||||
{
|
||||
use OptionsAccessTrait;
|
||||
|
||||
// Singleton implementation - Start
|
||||
static protected $instance = null;
|
||||
/**
|
||||
|
@ -55,7 +53,7 @@ final class Mapping
|
|||
}
|
||||
private function __construct()
|
||||
{
|
||||
$this->mappings = require $this->getMappingFile();
|
||||
$this->mappings = require Options::getMappingFile();
|
||||
}
|
||||
// Singleton implementation - End
|
||||
|
||||
|
@ -116,7 +114,7 @@ final class Mapping
|
|||
}
|
||||
|
||||
file_put_contents(
|
||||
$this->getMappingFile(),
|
||||
Options::getMappingFile(),
|
||||
'<?php' . PHP_EOL . 'return ' . var_export($this->mappings, true) . ';'
|
||||
);
|
||||
}
|
||||
|
|
|
@ -21,6 +21,7 @@
|
|||
|
||||
use PHP_CodeSniffer_File as PhpCsFile;
|
||||
use Typo3Update\Sniffs\LegacyClassnames\AbstractClassnameChecker;
|
||||
use Typo3Update\Sniffs\Options;
|
||||
|
||||
/**
|
||||
* Detect missing namespaces for class definitions.
|
||||
|
@ -153,7 +154,7 @@ class Typo3Update_Sniffs_LegacyClassnames_MissingNamespaceSniff extends Abstract
|
|||
*/
|
||||
protected function getNamespace($classname)
|
||||
{
|
||||
$vendor = trim($this->getVendor(), '\\/');
|
||||
$vendor = trim(Options::getVendor(), '\\/');
|
||||
$classnameParts = explode('_', $classname);
|
||||
|
||||
unset($classnameParts[0]); // Remove Tx_
|
||||
|
|
|
@ -22,6 +22,7 @@
|
|||
use PHP_CodeSniffer_File as PhpCsFile;
|
||||
use PHP_CodeSniffer_Sniff as PhpCsSniff;
|
||||
use PHP_CodeSniffer_Tokens as Tokens;
|
||||
use Typo3Update\Sniffs\Options;
|
||||
|
||||
/**
|
||||
* Detect whether vendor is missing for plugins and modules registrations and configurations.
|
||||
|
@ -29,7 +30,6 @@ use PHP_CodeSniffer_Tokens as Tokens;
|
|||
class Typo3Update_Sniffs_LegacyClassnames_MissingVendorForPluginsAndModulesSniff implements PhpCsSniff
|
||||
{
|
||||
use \Typo3Update\Sniffs\ExtendedPhpCsSupportTrait;
|
||||
use \Typo3Update\Sniffs\OptionsAccessTrait;
|
||||
|
||||
/**
|
||||
* Returns the token types that this sniff is interested in.
|
||||
|
@ -72,13 +72,13 @@ class Typo3Update_Sniffs_LegacyClassnames_MissingVendorForPluginsAndModulesSniff
|
|||
. ' Add vendor before Extensionkey like: "%s." . $_EXTKEY',
|
||||
$firstArgument,
|
||||
'missingVendor',
|
||||
[$this->getVendor()]
|
||||
[Options::getVendor()]
|
||||
);
|
||||
|
||||
if ($fix === true) {
|
||||
$phpcsFile->fixer->replaceToken(
|
||||
$firstArgument,
|
||||
"'{$this->getVendor()}.' . {$tokens[$firstArgument]['content']}"
|
||||
"'{Options::getVendor()}.' . {$tokens[$firstArgument]['content']}"
|
||||
);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -25,16 +25,16 @@ use PHP_CodeSniffer as PhpCs;
|
|||
/**
|
||||
* Wrapper to retrieve options from PhpCs with defaults.
|
||||
*/
|
||||
trait OptionsAccessTrait
|
||||
class Options
|
||||
{
|
||||
/**
|
||||
* Returns the configured vendor, e.g. to generate new namespaces.
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function getVendor()
|
||||
public static function getVendor()
|
||||
{
|
||||
$vendor = $this->getOptionWithDefault(
|
||||
$vendor = static::getOptionWithDefault(
|
||||
'vendor',
|
||||
'YourCompany'
|
||||
);
|
||||
|
@ -47,9 +47,9 @@ trait OptionsAccessTrait
|
|||
*
|
||||
* @return string
|
||||
*/
|
||||
public function getMappingFile()
|
||||
public static function getMappingFile()
|
||||
{
|
||||
return (string) $this->getOptionWithDefault(
|
||||
return (string) static::getOptionWithDefault(
|
||||
'mappingFile',
|
||||
__DIR__ . '/../../../../LegacyClassnames.php'
|
||||
);
|
||||
|
@ -58,11 +58,11 @@ trait OptionsAccessTrait
|
|||
/**
|
||||
* Returns an array of absolute file names containing removed function configurations.
|
||||
*
|
||||
* @return \Generator
|
||||
* @return array<string>
|
||||
*/
|
||||
public function getRemovedFunctionConfigFiles()
|
||||
public static function getRemovedFunctionConfigFiles()
|
||||
{
|
||||
$this->getOptionFileNames(
|
||||
return static::getOptionFileNames(
|
||||
'removedFunctionConfigFiles',
|
||||
__DIR__ . '/../Configuration/Removed/Functions/*.yaml'
|
||||
);
|
||||
|
@ -71,11 +71,11 @@ trait OptionsAccessTrait
|
|||
/**
|
||||
* Returns an array of absolute file names containing removed constant configurations.
|
||||
*
|
||||
* @return \Generator
|
||||
* @return array<string>
|
||||
*/
|
||||
public function getRemovedConstantConfigFiles()
|
||||
public static function getRemovedConstantConfigFiles()
|
||||
{
|
||||
$this->getOptionFileNames(
|
||||
return static::getOptionFileNames(
|
||||
'removedConstantConfigFiles',
|
||||
__DIR__ . '/../Configuration/Removed/Constants/*.yaml'
|
||||
);
|
||||
|
@ -89,7 +89,7 @@ trait OptionsAccessTrait
|
|||
*
|
||||
* @return mixed
|
||||
*/
|
||||
private function getOptionWithDefault($optionName, $default)
|
||||
private static function getOptionWithDefault($optionName, $default)
|
||||
{
|
||||
$option = PhpCs::getConfigData($optionName);
|
||||
if (!$option) {
|
||||
|
@ -102,17 +102,23 @@ trait OptionsAccessTrait
|
|||
/**
|
||||
* Get file names defined by option using optionName, if not defined, use default.
|
||||
*
|
||||
* TODO: Multiple files allowed, using glob ...
|
||||
* to allow splitting per ext (extbase, fluid, ...) and TYPO3 Version 7.1, 7.0, ...
|
||||
*
|
||||
* @param string $optionName
|
||||
* @param mixed $default
|
||||
*
|
||||
* @return \Generator
|
||||
* @return array<string>
|
||||
*/
|
||||
private function getOptionFileNames($optionName, $default)
|
||||
protected static function getOptionFileNames($optionName, $default)
|
||||
{
|
||||
$files = $this->getOptionWithDefault($optionName, $default);
|
||||
$files = static::getOptionWithDefault($optionName, $default);
|
||||
$fileNames = [];
|
||||
|
||||
foreach ((new \GlobIterator($files)) as $file) {
|
||||
yield (string) $file;
|
||||
$fileNames[] = (string) $file;
|
||||
}
|
||||
|
||||
return $fileNames;
|
||||
}
|
||||
}
|
|
@ -24,6 +24,7 @@ use PHP_CodeSniffer_File as PhpCsFile;
|
|||
use PHP_CodeSniffer_Sniff as PhpCsSniff;
|
||||
use PHP_CodeSniffer_Tokens as Tokens;
|
||||
use Symfony\Component\Yaml\Yaml;
|
||||
use Typo3Update\Sniffs\Options;
|
||||
|
||||
/**
|
||||
* Contains common functionality for removed code like constants or functions.
|
||||
|
@ -34,7 +35,6 @@ use Symfony\Component\Yaml\Yaml;
|
|||
abstract class AbstractGenericUsage implements PhpCsSniff
|
||||
{
|
||||
use \Typo3Update\Sniffs\ExtendedPhpCsSupportTrait;
|
||||
use \Typo3Update\Sniffs\OptionsAccessTrait;
|
||||
|
||||
/**
|
||||
* Configuration to define removed code.
|
||||
|
@ -49,10 +49,6 @@ abstract class AbstractGenericUsage implements PhpCsSniff
|
|||
*/
|
||||
protected $removed = [];
|
||||
|
||||
/**
|
||||
* TODO: Multiple files allowed, using glob ...
|
||||
* to allow splitting per ext (extbase, fluid, ...) and TYPO3 Version 7.1, 7.0, ...
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
if ($this->configured === []) {
|
||||
|
|
|
@ -21,6 +21,7 @@
|
|||
|
||||
use PHP_CodeSniffer_File as PhpCsFile;
|
||||
use Typo3Update\Sniffs\Removed\AbstractGenericUsage;
|
||||
use Typo3Update\Sniffs\Options;
|
||||
|
||||
/**
|
||||
* Sniff that handles all calls to removed constants.
|
||||
|
@ -34,7 +35,7 @@ class Typo3Update_Sniffs_Removed_GenericConstantUsageSniff extends AbstractGener
|
|||
*/
|
||||
protected function getRemovedConfigFiles()
|
||||
{
|
||||
return $this->getRemovedConstantConfigFiles();
|
||||
return Options::getRemovedConstantConfigFiles();
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -22,6 +22,7 @@
|
|||
use PHP_CodeSniffer_File as PhpCsFile;
|
||||
use PHP_CodeSniffer_Tokens as Tokens;
|
||||
use Typo3Update\Sniffs\Removed\AbstractGenericUsage;
|
||||
use Typo3Update\Sniffs\Options;
|
||||
|
||||
/**
|
||||
* Sniff that handles all calls to removed functions.
|
||||
|
@ -35,7 +36,7 @@ class Typo3Update_Sniffs_Removed_GenericFunctionCallSniff extends AbstractGeneri
|
|||
*/
|
||||
protected function getRemovedConfigFiles()
|
||||
{
|
||||
return $this->getRemovedFunctionConfigFiles();
|
||||
return Options::getRemovedFunctionConfigFiles();
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
Loading…
Reference in a new issue