WIP: Refactor code to new architecture

* Migrate class names.
* Add new architecture of "Features".
* Configure old assignments for new features.
* Rename necessary parts.

Relates: #72
This commit is contained in:
Daniel Siepmann 2017-04-25 12:58:19 +02:00
parent 99e38e43af
commit 2f6dc2304a
Signed by: Daniel Siepmann
GPG key ID: 33D6629915560EF4
76 changed files with 419 additions and 253 deletions

View file

@ -0,0 +1,15 @@
Typo3Update\Feature\LegacyClassnameFeature:
- Typo3Update_Sniffs_Classname_InheritanceSniff
- Typo3Update_Sniffs_Classname_InlineCommentSniff
- Typo3Update_Sniffs_Classname_InstanceofSniff
- Typo3Update_Sniffs_Classname_InstantiationWithMakeInstanceSniff
- Typo3Update_Sniffs_Classname_InstantiationWithNewSniff
- Typo3Update_Sniffs_Classname_InstantiationWithObjectManagerSniff
- Typo3Update_Sniffs_Classname_IsACallSniff
- Typo3Update_Sniffs_Classname_MissingNamespaceSniff
- Typo3Update_Sniffs_Classname_MissingVendorForPluginsAndModulesSniff
- Typo3Update_Sniffs_Classname_PhpDocCommentSniff
- Typo3Update_Sniffs_Classname_StaticCallSniff
- Typo3Update_Sniffs_Classname_TypeHintCatchExceptionSniff
- Typo3Update_Sniffs_Classname_TypeHintSniff
- Typo3Update_Sniffs_Classname_UseSniff

View file

@ -1,5 +1,5 @@
<?php <?php
namespace Typo3Update\Sniffs\LegacyClassnames; namespace Typo3Update\Feature;
/* /*
* Copyright (C) 2017 Daniel Siepmann <coding@daniel-siepmann.de> * Copyright (C) 2017 Daniel Siepmann <coding@daniel-siepmann.de>
@ -23,12 +23,13 @@ namespace Typo3Update\Sniffs\LegacyClassnames;
use PHP_CodeSniffer as PhpCs; use PHP_CodeSniffer as PhpCs;
use PHP_CodeSniffer_File as PhpCsFile; use PHP_CodeSniffer_File as PhpCsFile;
use PHP_CodeSniffer_Sniff as PhpCsSniff; use PHP_CodeSniffer_Sniff as PhpCsSniff;
use Typo3Update\Sniffs\LegacyClassnames\Mapping; use Typo3Update\FeatureInterface;
use Typo3Update\Feature\LegacyClassnameMapping;
/** /**
* Provide common uses for all sniffs, regarding class name checks. *
*/ */
abstract class AbstractClassnameChecker implements PhpCsSniff class LegacyClassnameFeature implements FeatureInterface
{ {
/** /**
* A list of extension names that might contain legacy class names. * A list of extension names that might contain legacy class names.
@ -41,7 +42,7 @@ abstract class AbstractClassnameChecker implements PhpCsSniff
public $legacyExtensions = ['Extbase', 'Fluid']; public $legacyExtensions = ['Extbase', 'Fluid'];
/** /**
* @var Mapping * @var LegacyClassnameMapping
*/ */
protected $legacyMapping; protected $legacyMapping;
@ -56,51 +57,37 @@ abstract class AbstractClassnameChecker implements PhpCsSniff
public function __construct() public function __construct()
{ {
$this->legacyMapping = Mapping::getInstance(); $this->legacyMapping = LegacyClassnameMapping::getInstance();
} }
/** /**
* Define whether the T_STRING default behaviour should be checked before * Process like a PHPCS Sniff.
* or after the $stackPtr.
* *
* @return bool * @param PhpCsFile $phpcsFile
*/ * @param int $classnamePosition
protected function shouldLookBefore() * @param string $classname
{
return false;
}
/**
* Processes the tokens that this sniff is interested in.
*
* This is the default implementation, as most of the time next T_STRING is
* the class name. This way only the register method has to be registered
* in default cases.
*
* @param PhpCsFile $phpcsFile The file where the token was found.
* @param int $stackPtr The position in the stack where
* the token was found.
* *
* @return void * @return void
*
* @SuppressWarnings(PHPMD.ElseExpression) This is for performance reason.
*/ */
public function process(PhpCsFile $phpcsFile, $stackPtr) public function process(PhpCsFile $phpcsFile, $classnamePosition, $classname)
{ {
$tokens = $phpcsFile->getTokens(); $classname = trim($classname, '\\\'"'); // Remove trailing slash, and quotes.
$this->addMaybeWarning($phpcsFile, $classnamePosition, $classname);
if ($this->shouldLookBefore()) { if ($this->isLegacyClassname($classname) === false) {
$classnamePosition = $phpcsFile->findPrevious(T_STRING, $stackPtr);
} else {
$classnamePosition = $phpcsFile->findNext(T_STRING, $stackPtr);
}
if ($classnamePosition === false) {
return; return;
} }
$classname = $tokens[$classnamePosition]['content']; $fix = $phpcsFile->addFixableError(
$this->addFixableError($phpcsFile, $classnamePosition, $classname); 'Legacy classes are not allowed; found "%s", use "%s" instead',
$classnamePosition,
'legacyClassname',
[$classname, $this->getNewClassname($classname)]
);
if ($fix === true) {
$this->replaceLegacyClassname($phpcsFile, $classnamePosition, $classname);
}
} }
/** /**
@ -122,7 +109,7 @@ abstract class AbstractClassnameChecker implements PhpCsSniff
* @param string $classname * @param string $classname
* @return bool * @return bool
*/ */
private function isMaybeLegacyClassname($classname) protected function isMaybeLegacyClassname($classname)
{ {
if (strpos($classname, 'Tx_') === false) { if (strpos($classname, 'Tx_') === false) {
return false; return false;
@ -163,34 +150,6 @@ abstract class AbstractClassnameChecker implements PhpCsSniff
$this->legacyMapping->addLegacyClassname($legacyClassname, $newClassname); $this->legacyMapping->addLegacyClassname($legacyClassname, $newClassname);
} }
/**
* Add an fixable error if given $classname is legacy.
*
* @param PhpCsFile $phpcsFile
* @param int $classnamePosition
* @param string $classname
*/
public function addFixableError(PhpCsFile $phpcsFile, $classnamePosition, $classname)
{
$classname = trim($classname, '\\\'"'); // Remove trailing slash, and quotes.
$this->addMaybeWarning($phpcsFile, $classnamePosition, $classname);
if ($this->isLegacyClassname($classname) === false) {
return;
}
$fix = $phpcsFile->addFixableError(
'Legacy classes are not allowed; found "%s", use "%s" instead',
$classnamePosition,
'legacyClassname',
[$classname, $this->getNewClassname($classname)]
);
if ($fix === true) {
$this->replaceLegacyClassname($phpcsFile, $classnamePosition, $classname);
}
}
/** /**
* Add an warning if given $classname is maybe legacy. * Add an warning if given $classname is maybe legacy.
* *
@ -198,7 +157,7 @@ abstract class AbstractClassnameChecker implements PhpCsSniff
* @param int $classnamePosition * @param int $classnamePosition
* @param string $classname * @param string $classname
*/ */
private function addMaybeWarning(PhpCsFile $phpcsFile, $classnamePosition, $classname) protected function addMaybeWarning(PhpCsFile $phpcsFile, $classnamePosition, $classname)
{ {
if ($this->isLegacyClassname($classname) || $this->isMaybeLegacyClassname($classname) === false) { if ($this->isLegacyClassname($classname) || $this->isMaybeLegacyClassname($classname) === false) {
return; return;

View file

@ -1,5 +1,5 @@
<?php <?php
namespace Typo3Update\Sniffs\LegacyClassnames; namespace Typo3Update\Feature;
/* /*
* Copyright (C) 2017 Daniel Siepmann <coding@daniel-siepmann.de> * Copyright (C) 2017 Daniel Siepmann <coding@daniel-siepmann.de>
@ -20,7 +20,7 @@ namespace Typo3Update\Sniffs\LegacyClassnames;
* 02110-1301, USA. * 02110-1301, USA.
*/ */
use Typo3Update\Sniffs\Options; use Typo3Update\Options;
/** /**
* Singleton wrapper for mappings. * Singleton wrapper for mappings.
@ -28,7 +28,7 @@ use Typo3Update\Sniffs\Options;
* Will check the configured file for whether a class is legacy and provides further methods. * Will check the configured file for whether a class is legacy and provides further methods.
* Also can update to add new migrated class names. * Also can update to add new migrated class names.
*/ */
final class Mapping final class LegacyClassnameMapping
{ {
// Singleton implementation - Start // Singleton implementation - Start
static protected $instance = null; static protected $instance = null;
@ -40,7 +40,7 @@ final class Mapping
public static function getInstance() public static function getInstance()
{ {
if (static::$instance === null) { if (static::$instance === null) {
static::$instance = new Mapping(); static::$instance = new LegacyClassnameMapping();
} }
return static::$instance; return static::$instance;

View file

@ -0,0 +1,40 @@
<?php
namespace Typo3Update;
/*
* Copyright (C) 2017 Daniel Siepmann <coding@daniel-siepmann.de>
*
* This program 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 2
* of the License, or (at your option) any later version.
*
* This program 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.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
* 02110-1301, USA.
*/
use PHP_CodeSniffer_File as PhpCsFile;
/**
*
*/
interface FeatureInterface
{
/**
* Process like a PHPCS Sniff.
*
* @param PhpCsFile $phpcsFile The current PhpCsFile working with.
* @param int $stackPtr The current stack pointer.
* @param string $content The content detected to work with.
*
* @return void
*/
public function process(PhpCsFile $phpcsFile, $stackPtr, $content);
}

View file

@ -0,0 +1,69 @@
<?php
namespace Typo3Update;
/*
* Copyright (C) 2017 Daniel Siepmann <coding@daniel-siepmann.de>
*
* This program 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 2
* of the License, or (at your option) any later version.
*
* This program 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.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
* 02110-1301, USA.
*/
use PHP_CodeSniffer_Sniff as PhpCsSniff;
/**
*
*/
class Features implements \Iterator
{
protected $index = 0;
protected $features = [];
public function __construct(PhpCsSniff $sniff)
{
foreach (Options::getFeaturesConfiguration() as $featureName => $sniffs) {
if (in_array(get_class($sniff), $sniffs)) {
if (!class_implements($featureName, FeatureInterface::class)) {
throw new \Exception(
'Configured Feature "' . $featureName . '" does not implement "' . FeatureInterface::class . '".',
1493115488
);
}
$this->features[] = $featureName;
}
}
}
// implement Iterator interface:
public function current()
{
return $this->features[$this->index];
}
public function key()
{
return $this->index;
}
public function next()
{
++$this->index;
}
public function rewind()
{
$this->index = 0;
}
public function valid()
{
return isset($this->features[$this->index]);
}
}

View file

@ -0,0 +1,53 @@
<?php
namespace Typo3Update;
/*
* Copyright (C) 2017 Daniel Siepmann <coding@daniel-siepmann.de>
*
* This program 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 2
* of the License, or (at your option) any later version.
*
* This program 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.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
* 02110-1301, USA.
*/
use PHP_CodeSniffer_File as PhpCsFile;
use Typo3Update\Features;
/**
* Provides "feature" support for sniff.
*/
trait FeaturesSupport
{
/**
* @var Features
*/
protected $features;
public function __construct()
{
$this->features = new Features($this);
}
public function processFeatures(PhpCsFile $phpcsFile, $stackPtr, $content)
{
foreach ($this->features as $featureClassName) {
$feature = $this->createFeature($featureClassName);
$feature->process($phpcsFile, $stackPtr, $content);
}
}
protected function createFeature($featureClassname)
{
return new $featureClassname($this);
}
}

View file

@ -1,5 +1,5 @@
<?php <?php
namespace Typo3Update\Sniffs; namespace Typo3Update;
/* /*
* Copyright (C) 2017 Daniel Siepmann <coding@daniel-siepmann.de> * Copyright (C) 2017 Daniel Siepmann <coding@daniel-siepmann.de>
@ -21,6 +21,7 @@ namespace Typo3Update\Sniffs;
*/ */
use PHP_CodeSniffer as PhpCs; use PHP_CodeSniffer as PhpCs;
use Symfony\Component\Yaml\Yaml;
/** /**
* Wrapper to retrieve options from PhpCs with defaults. * Wrapper to retrieve options from PhpCs with defaults.
@ -51,7 +52,7 @@ class Options
{ {
return (string) static::getOptionWithDefault( return (string) static::getOptionWithDefault(
'mappingFile', 'mappingFile',
__DIR__ . '/../../../../LegacyClassnames.php' __DIR__ . '/../../../LegacyClassnames.php'
); );
} }
@ -64,7 +65,7 @@ class Options
{ {
return static::getOptionFileNames( return static::getOptionFileNames(
'removedFunctionConfigFiles', 'removedFunctionConfigFiles',
__DIR__ . '/../Configuration/Removed/Functions/*.yaml' __DIR__ . '/Configuration/Removed/Functions/*.yaml'
); );
} }
@ -77,7 +78,7 @@ class Options
{ {
return static::getOptionFileNames( return static::getOptionFileNames(
'removedConstantConfigFiles', 'removedConstantConfigFiles',
__DIR__ . '/../Configuration/Removed/Constants/*.yaml' __DIR__ . '/Configuration/Removed/Constants/*.yaml'
); );
} }
@ -99,6 +100,24 @@ class Options
return $option; return $option;
} }
public static function getFeaturesConfiguration()
{
$option = [];
$fileNames = static::getOptionFileNames(
'features',
__DIR__ . '/Configuration/Features/*.yaml'
);
foreach ($fileNames as $file) {
$option = array_merge(
$option,
Yaml::parse(file_get_contents((string) $file))
);
}
return $option;
}
/** /**
* Get file names defined by option using optionName, if not defined, use default. * Get file names defined by option using optionName, if not defined, use default.
* *

View file

@ -0,0 +1,77 @@
<?php
namespace Typo3Update\Sniffs\Classname;
/*
* Copyright (C) 2017 Daniel Siepmann <coding@daniel-siepmann.de>
*
* This program 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 2
* of the License, or (at your option) any later version.
*
* This program 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.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
* 02110-1301, USA.
*/
use PHP_CodeSniffer_File as PhpCsFile;
use PHP_CodeSniffer_Sniff as PhpCsSniff;
use Typo3Update\FeaturesSupport;
/**
* Provide common uses for all sniffs, regarding class name checks.
*/
abstract class AbstractClassnameChecker implements PhpCsSniff
{
use FeaturesSupport;
/**
* Define whether the T_STRING default behaviour should be checked before
* or after the $stackPtr.
*
* @return bool
*/
protected function shouldLookBefore()
{
return false;
}
/**
* Processes the tokens that this sniff is interested in.
*
* This is the default implementation, as most of the time next T_STRING is
* the class name. This way only the register method has to be registered
* in default cases.
*
* @param PhpCsFile $phpcsFile The file where the token was found.
* @param int $stackPtr The position in the stack where
* the token was found.
*
* @return void
*
* @SuppressWarnings(PHPMD.ElseExpression) This is for performance reason.
*/
public function process(PhpCsFile $phpcsFile, $stackPtr)
{
$tokens = $phpcsFile->getTokens();
if ($this->shouldLookBefore()) {
$classnamePosition = $phpcsFile->findPrevious(T_STRING, $stackPtr);
} else {
$classnamePosition = $phpcsFile->findNext(T_STRING, $stackPtr);
}
if ($classnamePosition === false) {
return;
}
$classname = $tokens[$classnamePosition]['content'];
$this->processFeatures($phpcsFile, $classnamePosition, $classname);
}
}

View file

@ -20,12 +20,12 @@
*/ */
use PHP_CodeSniffer_File as PhpCsFile; use PHP_CodeSniffer_File as PhpCsFile;
use Typo3Update\Sniffs\LegacyClassnames\AbstractClassnameChecker; use Typo3Update\Sniffs\Classname\AbstractClassnameChecker;
/** /**
* Detect and migrate extend and implement of old legacy classnames. * Detect and migrate extend and implement of old legacy classnames.
*/ */
class Typo3Update_Sniffs_LegacyClassnames_InheritanceSniff extends AbstractClassnameChecker class Typo3Update_Sniffs_Classname_InheritanceSniff extends AbstractClassnameChecker
{ {
/** /**
* Returns the token types that this sniff is interested in. * Returns the token types that this sniff is interested in.
@ -79,6 +79,7 @@ class Typo3Update_Sniffs_LegacyClassnames_InheritanceSniff extends AbstractClass
} }
foreach ($interfaces as $interface) { foreach ($interfaces as $interface) {
// TODO: Migrate
if (! $this->isLegacyClassname($interface)) { if (! $this->isLegacyClassname($interface)) {
continue; continue;
} }
@ -88,7 +89,7 @@ class Typo3Update_Sniffs_LegacyClassnames_InheritanceSniff extends AbstractClass
continue; continue;
} }
$this->addFixableError($phpcsFile, $position, $interface); $this->processFeatures($phpcsFile, $position, $interface);
} }
} }
} }

View file

@ -20,12 +20,12 @@
*/ */
use PHP_CodeSniffer_File as PhpCsFile; use PHP_CodeSniffer_File as PhpCsFile;
use Typo3Update\Sniffs\LegacyClassnames\AbstractClassnameChecker; use Typo3Update\Sniffs\Classname\AbstractClassnameChecker;
/** /**
* Migrate PHP inline comments, e.g. for IDEs. * Migrate PHP inline comments, e.g. for IDEs.
*/ */
class Typo3Update_Sniffs_LegacyClassnames_InlineCommentSniff extends AbstractClassnameChecker class Typo3Update_Sniffs_Classname_InlineCommentSniff extends AbstractClassnameChecker
{ {
/** /**
* Returns the token types that this sniff is interested in. * Returns the token types that this sniff is interested in.
@ -59,7 +59,7 @@ class Typo3Update_Sniffs_LegacyClassnames_InlineCommentSniff extends AbstractCla
return; return;
} }
$this->addFixableError($phpcsFile, $stackPtr, $commentParts[$this->getClassnamePosition($commentParts)]); $this->processFeatures($phpcsFile, $stackPtr, $commentParts[$this->getClassnamePosition($commentParts)]);
} }
/** /**

View file

@ -19,12 +19,12 @@
* 02110-1301, USA. * 02110-1301, USA.
*/ */
use Typo3Update\Sniffs\LegacyClassnames\AbstractClassnameChecker; use Typo3Update\Sniffs\Classname\AbstractClassnameChecker;
/** /**
* Detect and migrate instanceof checks of old legacy classnames. * Detect and migrate instanceof checks of old legacy classnames.
*/ */
class Typo3Update_Sniffs_LegacyClassnames_InstanceofSniff extends AbstractClassnameChecker class Typo3Update_Sniffs_Classname_InstanceofSniff extends AbstractClassnameChecker
{ {
/** /**
* Returns the token types that this sniff is interested in. * Returns the token types that this sniff is interested in.

View file

@ -21,12 +21,12 @@
use PHP_CodeSniffer_File as PhpCsFile; use PHP_CodeSniffer_File as PhpCsFile;
use PHP_CodeSniffer_Tokens as Tokens; use PHP_CodeSniffer_Tokens as Tokens;
use Typo3Update\Sniffs\LegacyClassnames\AbstractClassnameChecker; use Typo3Update\Sniffs\Classname\AbstractClassnameChecker;
/** /**
* Detect and migrate instantiations of old legacy classnames using "makeInstance". * Detect and migrate instantiations of old legacy classnames using "makeInstance".
*/ */
class Typo3Update_Sniffs_LegacyClassnames_InstantiationWithMakeInstanceSniff extends AbstractClassnameChecker class Typo3Update_Sniffs_Classname_InstantiationWithMakeInstanceSniff extends AbstractClassnameChecker
{ {
use \Typo3Update\Sniffs\ExtendedPhpCsSupportTrait; use \Typo3Update\Sniffs\ExtendedPhpCsSupportTrait;
@ -67,7 +67,7 @@ class Typo3Update_Sniffs_LegacyClassnames_InstantiationWithMakeInstanceSniff ext
$classname = $tokens[$classnamePosition]['content']; $classname = $tokens[$classnamePosition]['content'];
$this->originalTokenContent = $tokens[$classnamePosition]['content']; $this->originalTokenContent = $tokens[$classnamePosition]['content'];
$this->addFixableError($phpcsFile, $classnamePosition, $classname); $this->processFeatures($phpcsFile, $classnamePosition, $classname);
} }
/** /**

View file

@ -19,12 +19,12 @@
* 02110-1301, USA. * 02110-1301, USA.
*/ */
use Typo3Update\Sniffs\LegacyClassnames\AbstractClassnameChecker; use Typo3Update\Sniffs\Classname\AbstractClassnameChecker;
/** /**
* Detect and migrate old legacy classnames instantiations using phps "new". * Detect and migrate old legacy classnames instantiations using phps "new".
*/ */
class Typo3Update_Sniffs_LegacyClassnames_InstantiationWithNewSniff extends AbstractClassnameChecker class Typo3Update_Sniffs_Classname_InstantiationWithNewSniff extends AbstractClassnameChecker
{ {
/** /**
* Returns the token types that this sniff is interested in. * Returns the token types that this sniff is interested in.

View file

@ -21,12 +21,12 @@
use PHP_CodeSniffer_File as PhpCsFile; use PHP_CodeSniffer_File as PhpCsFile;
use PHP_CodeSniffer_Tokens as Tokens; use PHP_CodeSniffer_Tokens as Tokens;
use Typo3Update\Sniffs\LegacyClassnames\AbstractClassnameChecker; use Typo3Update\Sniffs\Classname\AbstractClassnameChecker;
/** /**
* Detect and migrate old legacy classname instantiations using objectmanager create and get. * Detect and migrate old legacy classname instantiations using objectmanager create and get.
*/ */
class Typo3Update_Sniffs_LegacyClassnames_InstantiationWithObjectManagerSniff extends AbstractClassnameChecker class Typo3Update_Sniffs_Classname_InstantiationWithObjectManagerSniff extends AbstractClassnameChecker
{ {
use \Typo3Update\Sniffs\ExtendedPhpCsSupportTrait; use \Typo3Update\Sniffs\ExtendedPhpCsSupportTrait;
@ -80,20 +80,6 @@ class Typo3Update_Sniffs_LegacyClassnames_InstantiationWithObjectManagerSniff ex
} }
$classname = $tokens[$classnamePosition]['content']; $classname = $tokens[$classnamePosition]['content'];
$this->originalTokenContent = $tokens[$classnamePosition]['content']; $this->processFeatures($phpcsFile, $classnamePosition, $classname);
$this->addFixableError($phpcsFile, $classnamePosition, $classname);
}
/**
* As token contains more then just class name, we have to build new content ourself.
*
* @param string $newClassname
* @param string $originalClassname
* @param PhpCsFile $phpcsFile
* @return string
*/
protected function getTokenForReplacement($newClassname, $originalClassname, PhpCsFile $phpcsFile)
{
return $this->getTokenReplacementForString($newClassname);
} }
} }

View file

@ -20,12 +20,12 @@
*/ */
use PHP_CodeSniffer_File as PhpcsFile; use PHP_CodeSniffer_File as PhpcsFile;
use Typo3Update\Sniffs\LegacyClassnames\AbstractClassnameChecker; use Typo3Update\Sniffs\Classname\AbstractClassnameChecker;
/** /**
* Detect and migrate instantiations of old legacy classnames using "makeInstance". * Detect and migrate instantiations of old legacy classnames using "makeInstance".
*/ */
class Typo3Update_Sniffs_LegacyClassnames_IsACallSniff extends AbstractClassnameChecker class Typo3Update_Sniffs_Classname_IsACallSniff extends AbstractClassnameChecker
{ {
use \Typo3Update\Sniffs\ExtendedPhpCsSupportTrait; use \Typo3Update\Sniffs\ExtendedPhpCsSupportTrait;
@ -69,20 +69,6 @@ class Typo3Update_Sniffs_LegacyClassnames_IsACallSniff extends AbstractClassname
} }
$classname = $tokens[$classnamePosition]['content']; $classname = $tokens[$classnamePosition]['content'];
$this->originalTokenContent = $tokens[$classnamePosition]['content']; $this->processFeatures($phpcsFile, $classnamePosition, $classname);
$this->addFixableError($phpcsFile, $classnamePosition, $classname);
}
/**
* As token contains more then just class name, we have to build new content ourself.
*
* @param string $newClassname
* @param string $originalClassname
* @param PhpCsFile $phpcsFile
* @return string
*/
protected function getTokenForReplacement($newClassname, $originalClassname, PhpCsFile $phpcsFile)
{
return $this->getTokenReplacementForString($newClassname);
} }
} }

View file

@ -20,13 +20,13 @@
*/ */
use PHP_CodeSniffer_File as PhpCsFile; use PHP_CodeSniffer_File as PhpCsFile;
use Typo3Update\Sniffs\LegacyClassnames\AbstractClassnameChecker; use Typo3Update\Sniffs\Classname\AbstractClassnameChecker;
use Typo3Update\Sniffs\Options; use Typo3Update\Options;
/** /**
* Detect missing namespaces for class definitions. * Detect missing namespaces for class definitions.
*/ */
class Typo3Update_Sniffs_LegacyClassnames_MissingNamespaceSniff extends AbstractClassnameChecker class Typo3Update_Sniffs_Classname_MissingNamespaceSniff extends AbstractClassnameChecker
{ {
/** /**
* Returns the token types that this sniff is interested in. * Returns the token types that this sniff is interested in.
@ -66,7 +66,8 @@ class Typo3Update_Sniffs_LegacyClassnames_MissingNamespaceSniff extends Abstract
} }
$classname = $tokens[$classnamePosition]['content']; $classname = $tokens[$classnamePosition]['content'];
$this->addFixableError($phpcsFile, $classnamePosition, $classname); // TODO: Migrate class, use custom feature as some parts are different!
// $this->addFixableError($phpcsFile, $classnamePosition, $classname);
} }
/** /**

View file

@ -20,15 +20,20 @@
*/ */
use PHP_CodeSniffer_File as PhpCsFile; use PHP_CodeSniffer_File as PhpCsFile;
use Typo3Update\Sniffs\LegacyClassnames\AbstractClassnameChecker; use PHP_CodeSniffer_Sniff as PhpCsSniff;
use Typo3Update\FeaturesSupport;
/** /**
* Migrate PHP Doc comments. * Handle PHP Doc comments.
* *
* E.g. annotations like @param or @return, see $allowedTags. * E.g. annotations like @param or @return, see $allowedTags.
*
* Will do nothing itself, but call features.
*/ */
class Typo3Update_Sniffs_LegacyClassnames_DocCommentSniff extends AbstractClassnameChecker class Typo3Update_Sniffs_Classname_PhpDocCommentSniff implements PhpCsSniff
{ {
use FeaturesSupport;
/** /**
* The configured tags will be processed. * The configured tags will be processed.
* @var array<string> * @var array<string>
@ -42,9 +47,7 @@ class Typo3Update_Sniffs_LegacyClassnames_DocCommentSniff extends AbstractClassn
*/ */
public function register() public function register()
{ {
return [ return [T_DOC_COMMENT_TAG];
T_DOC_COMMENT_TAG,
];
} }
/** /**
@ -68,32 +71,8 @@ class Typo3Update_Sniffs_LegacyClassnames_DocCommentSniff extends AbstractClassn
} }
$classnames = explode('|', explode(' ', $tokens[$classnamePosition]['content'])[0]); $classnames = explode('|', explode(' ', $tokens[$classnamePosition]['content'])[0]);
$this->originalTokenContent = $tokens[$classnamePosition]['content'];
foreach ($classnames as $classname) { foreach ($classnames as $classname) {
$this->addFixableError($phpcsFile, $classnamePosition, $classname); $this->processFeatures($phpcsFile, $classnamePosition, $classname);
} }
} }
/**
* As token contains more then just class name, we have to build new content ourself.
*
* @param string $newClassname
* @param string $originalClassname
* @param PhpCsFile $phpcsFile
* @return string
*/
protected function getTokenForReplacement($newClassname, $originalClassname, PhpCsFile $phpcsFile)
{
$token = explode(' ', $this->originalTokenContent);
$classNames = explode('|', $token[0]);
foreach ($classNames as $position => $classname) {
if ($classname === $originalClassname) {
$classNames[$position] = $newClassname;
}
}
$token[0] = implode('|', $classNames);
return implode(' ', $token);
}
} }

View file

@ -19,12 +19,12 @@
* 02110-1301, USA. * 02110-1301, USA.
*/ */
use Typo3Update\Sniffs\LegacyClassnames\AbstractClassnameChecker; use Typo3Update\Sniffs\Classname\AbstractClassnameChecker;
/** /**
* Detect and migrate static calls to old legacy classnames. * Detect and migrate static calls to old legacy classnames.
*/ */
class Typo3Update_Sniffs_LegacyClassnames_StaticCallSniff extends AbstractClassnameChecker class Typo3Update_Sniffs_Classname_StaticCallSniff extends AbstractClassnameChecker
{ {
/** /**
* Define whether the T_STRING default behaviour should be checked before * Define whether the T_STRING default behaviour should be checked before

View file

@ -19,12 +19,12 @@
* 02110-1301, USA. * 02110-1301, USA.
*/ */
use Typo3Update\Sniffs\LegacyClassnames\AbstractClassnameChecker; use Typo3Update\Sniffs\Classname\AbstractClassnameChecker;
/** /**
* Migrate Typehints in catch statements. * Migrate Typehints in catch statements.
*/ */
class Typo3Update_Sniffs_LegacyClassnames_TypehintCatchExceptionSniff extends AbstractClassnameChecker class Typo3Update_Sniffs_Classname_TypehintCatchExceptionSniff extends AbstractClassnameChecker
{ {
/** /**
* Returns the token types that this sniff is interested in. * Returns the token types that this sniff is interested in.

View file

@ -20,12 +20,12 @@
*/ */
use PHP_CodeSniffer_File as PhpCsFile; use PHP_CodeSniffer_File as PhpCsFile;
use Typo3Update\Sniffs\LegacyClassnames\AbstractClassnameChecker; use Typo3Update\Sniffs\Classname\AbstractClassnameChecker;
/** /**
* Migrate Typehints in function / method definitions. * Migrate Typehints in function / method definitions.
*/ */
class Typo3Update_Sniffs_LegacyClassnames_TypehintSniff extends AbstractClassnameChecker class Typo3Update_Sniffs_Classname_TypehintSniff extends AbstractClassnameChecker
{ {
/** /**
* Returns the token types that this sniff is interested in. * Returns the token types that this sniff is interested in.
@ -58,7 +58,7 @@ class Typo3Update_Sniffs_LegacyClassnames_TypehintSniff extends AbstractClassnam
if ($position === false) { if ($position === false) {
continue; continue;
} }
$this->addFixableError($phpcsFile, $position, $parameter['type_hint']); $this->processFeatures($phpcsFile, $position, $parameter['type_hint']);
} }
} }
} }

View file

@ -20,14 +20,14 @@
*/ */
use PHP_CodeSniffer_File as PhpCsFile; use PHP_CodeSniffer_File as PhpCsFile;
use Typo3Update\Sniffs\LegacyClassnames\AbstractClassnameChecker; use Typo3Update\Sniffs\Classname\AbstractClassnameChecker;
/** /**
* Detect and migrate use statements with legacy classnames.. * Detect and migrate use statements with legacy classnames..
* *
* According to PSR-2, only one class per use statement is expected. * According to PSR-2, only one class per use statement is expected.
*/ */
class Typo3Update_Sniffs_LegacyClassnames_UseSniff extends AbstractClassnameChecker class Typo3Update_Sniffs_Classname_UseSniff extends AbstractClassnameChecker
{ {
/** /**
* Returns the token types that this sniff is interested in. * Returns the token types that this sniff is interested in.
@ -38,23 +38,4 @@ class Typo3Update_Sniffs_LegacyClassnames_UseSniff extends AbstractClassnameChec
{ {
return [T_USE]; return [T_USE];
} }
/**
* Overwrite to remove prefix.
*
* @param PhpCsFile $phpcsFile
* @param int $classnamePosition
* @param string $classname
* @param bool $forceEmptyPrefix Defines whether '\\' prefix should be checked or always be left out.
*
* @SuppressWarnings(PHPMD.BooleanArgumentFlag)
*/
protected function replaceLegacyClassname(
PhpCsFile $phpcsFile,
$classnamePosition,
$classname,
$forceEmptyPrefix = true
) {
return parent::replaceLegacyClassname($phpcsFile, $classnamePosition, $classname, $forceEmptyPrefix);
}
} }

View file

@ -22,12 +22,12 @@
use PHP_CodeSniffer_File as PhpCsFile; use PHP_CodeSniffer_File as PhpCsFile;
use PHP_CodeSniffer_Sniff as PhpCsSniff; use PHP_CodeSniffer_Sniff as PhpCsSniff;
use PHP_CodeSniffer_Tokens as Tokens; use PHP_CodeSniffer_Tokens as Tokens;
use Typo3Update\Sniffs\Options; use Typo3Update\Options;
/** /**
* Detect whether vendor is missing for plugins and modules registrations and configurations. * Detect whether vendor is missing for plugins and modules registrations and configurations.
*/ */
class Typo3Update_Sniffs_LegacyClassnames_MissingVendorForPluginsAndModulesSniff implements PhpCsSniff class Typo3Update_Sniffs_LegacyClassname_MissingVendorForPluginsAndModulesSniff implements PhpCsSniff
{ {
use \Typo3Update\Sniffs\ExtendedPhpCsSupportTrait; use \Typo3Update\Sniffs\ExtendedPhpCsSupportTrait;

View file

@ -24,7 +24,7 @@ use PHP_CodeSniffer_File as PhpCsFile;
use PHP_CodeSniffer_Sniff as PhpCsSniff; use PHP_CodeSniffer_Sniff as PhpCsSniff;
use PHP_CodeSniffer_Tokens as Tokens; use PHP_CodeSniffer_Tokens as Tokens;
use Symfony\Component\Yaml\Yaml; use Symfony\Component\Yaml\Yaml;
use Typo3Update\Sniffs\Options; use Typo3Update\Options;
/** /**
* Contains common functionality for removed code like constants or functions. * Contains common functionality for removed code like constants or functions.

View file

@ -21,7 +21,7 @@
use PHP_CodeSniffer_File as PhpCsFile; use PHP_CodeSniffer_File as PhpCsFile;
use Typo3Update\Sniffs\Removed\AbstractGenericUsage; use Typo3Update\Sniffs\Removed\AbstractGenericUsage;
use Typo3Update\Sniffs\Options; use Typo3Update\Options;
/** /**
* Sniff that handles all calls to removed constants. * Sniff that handles all calls to removed constants.

View file

@ -22,7 +22,7 @@
use PHP_CodeSniffer_File as PhpCsFile; use PHP_CodeSniffer_File as PhpCsFile;
use PHP_CodeSniffer_Tokens as Tokens; use PHP_CodeSniffer_Tokens as Tokens;
use Typo3Update\Sniffs\Removed\AbstractGenericUsage; use Typo3Update\Sniffs\Removed\AbstractGenericUsage;
use Typo3Update\Sniffs\Options; use Typo3Update\Options;
/** /**
* Sniff that handles all calls to removed functions. * Sniff that handles all calls to removed functions.

View file

@ -2,18 +2,18 @@
<ruleset name="TYPO3 Update"> <ruleset name="TYPO3 Update">
<description>Provides sniffs and fixes for TYPO3 Updates.</description> <description>Provides sniffs and fixes for TYPO3 Updates.</description>
<rule ref="Typo3Update.LegacyClassnames.Instanceof"> <rule ref="Typo3Update.Classname.Instanceof">
<properties> <properties>
<property name="legacyExtensions" type="array" value="Extbase,Fluid,Frontend,Core"/> <property name="legacyExtensions" type="array" value="Extbase,Fluid,Frontend,Core"/>
</properties> </properties>
</rule> </rule>
<rule ref="Typo3Update.LegacyClassnames.DocComment"> <rule ref="Typo3Update.Classname.PhpDocComment">
<properties> <properties>
<property name="allowedTags" type="array" value="@param,@return,@var,@see,@throws"/> <property name="allowedTags" type="array" value="@param,@return,@var,@see,@throws"/>
</properties> </properties>
</rule> </rule>
<rule ref="Typo3Update.LegacyClassnames.MissingNamespace.legacyClassname"> <rule ref="Typo3Update.Classname.MissingNamespace.legacyClassname">
<message>Legacy class definitions are not allowed; found "%s". Wrap your class inside a namespace.</message> <message>Legacy class definitions are not allowed; found "%s". Wrap your class inside a namespace.</message>
</rule> </rule>
</ruleset> </ruleset>

View file

@ -9,7 +9,7 @@
"line": 22, "line": 22,
"message": "Legacy classes are not allowed; found \"Tx_Extbase_Configuration_Configurationmanager\", use \"TYPO3\\CMS\\Extbase\\Configuration\\ConfigurationManager\" instead", "message": "Legacy classes are not allowed; found \"Tx_Extbase_Configuration_Configurationmanager\", use \"TYPO3\\CMS\\Extbase\\Configuration\\ConfigurationManager\" instead",
"severity": 5, "severity": 5,
"source": "Typo3Update.LegacyClassnames.Inheritance.legacyClassname", "source": "Typo3Update.Classname.Inheritance.legacyClassname",
"type": "ERROR" "type": "ERROR"
}, },
{ {
@ -18,7 +18,7 @@
"line": 22, "line": 22,
"message": "Legacy classes are not allowed; found \"t3lib_Singleton\", use \"TYPO3\\CMS\\Core\\SingletonInterface\" instead", "message": "Legacy classes are not allowed; found \"t3lib_Singleton\", use \"TYPO3\\CMS\\Core\\SingletonInterface\" instead",
"severity": 5, "severity": 5,
"source": "Typo3Update.LegacyClassnames.Inheritance.legacyClassname", "source": "Typo3Update.Classname.Inheritance.legacyClassname",
"type": "ERROR" "type": "ERROR"
}, },
{ {
@ -27,7 +27,7 @@
"line": 22, "line": 22,
"message": "Legacy classes are not allowed; found \"Tx_Extbase_Core_BootstrapInterface\", use \"TYPO3\\CMS\\Extbase\\Core\\BootstrapInterface\" instead", "message": "Legacy classes are not allowed; found \"Tx_Extbase_Core_BootstrapInterface\", use \"TYPO3\\CMS\\Extbase\\Core\\BootstrapInterface\" instead",
"severity": 5, "severity": 5,
"source": "Typo3Update.LegacyClassnames.Inheritance.legacyClassname", "source": "Typo3Update.Classname.Inheritance.legacyClassname",
"type": "ERROR" "type": "ERROR"
}, },
{ {
@ -36,7 +36,7 @@
"line": 27, "line": 27,
"message": "Legacy classes are not allowed; found \"Tx_Extbase_Configuration_Configurationmanager\", use \"TYPO3\\CMS\\Extbase\\Configuration\\ConfigurationManager\" instead", "message": "Legacy classes are not allowed; found \"Tx_Extbase_Configuration_Configurationmanager\", use \"TYPO3\\CMS\\Extbase\\Configuration\\ConfigurationManager\" instead",
"severity": 5, "severity": 5,
"source": "Typo3Update.LegacyClassnames.Inheritance.legacyClassname", "source": "Typo3Update.Classname.Inheritance.legacyClassname",
"type": "ERROR" "type": "ERROR"
}, },
{ {
@ -45,7 +45,7 @@
"line": 28, "line": 28,
"message": "Legacy classes are not allowed; found \"t3lib_Singleton\", use \"TYPO3\\CMS\\Core\\SingletonInterface\" instead", "message": "Legacy classes are not allowed; found \"t3lib_Singleton\", use \"TYPO3\\CMS\\Core\\SingletonInterface\" instead",
"severity": 5, "severity": 5,
"source": "Typo3Update.LegacyClassnames.Inheritance.legacyClassname", "source": "Typo3Update.Classname.Inheritance.legacyClassname",
"type": "ERROR" "type": "ERROR"
}, },
{ {
@ -54,7 +54,7 @@
"line": 29, "line": 29,
"message": "Legacy classes are not allowed; found \"Tx_Extbase_Core_BootstrapInterface\", use \"TYPO3\\CMS\\Extbase\\Core\\BootstrapInterface\" instead", "message": "Legacy classes are not allowed; found \"Tx_Extbase_Core_BootstrapInterface\", use \"TYPO3\\CMS\\Extbase\\Core\\BootstrapInterface\" instead",
"severity": 5, "severity": 5,
"source": "Typo3Update.LegacyClassnames.Inheritance.legacyClassname", "source": "Typo3Update.Classname.Inheritance.legacyClassname",
"type": "ERROR" "type": "ERROR"
} }
], ],

View file

@ -9,7 +9,7 @@
"line": 26, "line": 26,
"message": "Legacy classes are not allowed; found \"Tx_Extbase_Command_HelpCommandController\", use \"TYPO3\\CMS\\Extbase\\Command\\HelpCommandController\" instead", "message": "Legacy classes are not allowed; found \"Tx_Extbase_Command_HelpCommandController\", use \"TYPO3\\CMS\\Extbase\\Command\\HelpCommandController\" instead",
"severity": 5, "severity": 5,
"source": "Typo3Update.LegacyClassnames.InlineComment.legacyClassname", "source": "Typo3Update.Classname.InlineComment.legacyClassname",
"type": "ERROR" "type": "ERROR"
}, },
{ {
@ -18,7 +18,7 @@
"line": 29, "line": 29,
"message": "Legacy classes are not allowed; found \"Tx_Extbase_Command_HelpCommandController\", use \"TYPO3\\CMS\\Extbase\\Command\\HelpCommandController\" instead", "message": "Legacy classes are not allowed; found \"Tx_Extbase_Command_HelpCommandController\", use \"TYPO3\\CMS\\Extbase\\Command\\HelpCommandController\" instead",
"severity": 5, "severity": 5,
"source": "Typo3Update.LegacyClassnames.InlineComment.legacyClassname", "source": "Typo3Update.Classname.InlineComment.legacyClassname",
"type": "ERROR" "type": "ERROR"
}, },
{ {
@ -27,7 +27,7 @@
"line": 32, "line": 32,
"message": "Legacy classes are not allowed; found \"Tx_Extbase_Command_HelpCommandController\", use \"TYPO3\\CMS\\Extbase\\Command\\HelpCommandController\" instead", "message": "Legacy classes are not allowed; found \"Tx_Extbase_Command_HelpCommandController\", use \"TYPO3\\CMS\\Extbase\\Command\\HelpCommandController\" instead",
"severity": 5, "severity": 5,
"source": "Typo3Update.LegacyClassnames.InlineComment.legacyClassname", "source": "Typo3Update.Classname.InlineComment.legacyClassname",
"type": "ERROR" "type": "ERROR"
}, },
{ {
@ -36,7 +36,7 @@
"line": 35, "line": 35,
"message": "Legacy classes are not allowed; found \"Tx_Extbase_Command_HelpCommandController\", use \"TYPO3\\CMS\\Extbase\\Command\\HelpCommandController\" instead", "message": "Legacy classes are not allowed; found \"Tx_Extbase_Command_HelpCommandController\", use \"TYPO3\\CMS\\Extbase\\Command\\HelpCommandController\" instead",
"severity": 5, "severity": 5,
"source": "Typo3Update.LegacyClassnames.InlineComment.legacyClassname", "source": "Typo3Update.Classname.InlineComment.legacyClassname",
"type": "ERROR" "type": "ERROR"
} }
], ],

View file

@ -9,7 +9,7 @@
"line": 22, "line": 22,
"message": "Legacy classes are not allowed; found \"t3lib_Singleton\", use \"TYPO3\\CMS\\Core\\SingletonInterface\" instead", "message": "Legacy classes are not allowed; found \"t3lib_Singleton\", use \"TYPO3\\CMS\\Core\\SingletonInterface\" instead",
"severity": 5, "severity": 5,
"source": "Typo3Update.LegacyClassnames.Instanceof.legacyClassname", "source": "Typo3Update.Classname.Instanceof.legacyClassname",
"type": "ERROR" "type": "ERROR"
} }
], ],

View file

@ -9,7 +9,7 @@
"line": 22, "line": 22,
"message": "Legacy classes are not allowed; found \"Tx_Extbase_Command_HelpCommandController\", use \"TYPO3\\CMS\\Extbase\\Command\\HelpCommandController\" instead", "message": "Legacy classes are not allowed; found \"Tx_Extbase_Command_HelpCommandController\", use \"TYPO3\\CMS\\Extbase\\Command\\HelpCommandController\" instead",
"severity": 5, "severity": 5,
"source": "Typo3Update.LegacyClassnames.InstantiationWithMakeInstance.legacyClassname", "source": "Typo3Update.Classname.InstantiationWithMakeInstance.legacyClassname",
"type": "ERROR" "type": "ERROR"
} }
], ],

View file

@ -9,7 +9,7 @@
"line": 22, "line": 22,
"message": "Legacy classes are not allowed; found \"Tx_Extbase_Command_HelpCommandController\", use \"TYPO3\\CMS\\Extbase\\Command\\HelpCommandController\" instead", "message": "Legacy classes are not allowed; found \"Tx_Extbase_Command_HelpCommandController\", use \"TYPO3\\CMS\\Extbase\\Command\\HelpCommandController\" instead",
"severity": 5, "severity": 5,
"source": "Typo3Update.LegacyClassnames.InstantiationWithNew.legacyClassname", "source": "Typo3Update.Classname.InstantiationWithNew.legacyClassname",
"type": "ERROR" "type": "ERROR"
}, },
{ {
@ -18,7 +18,7 @@
"line": 23, "line": 23,
"message": "Legacy classes are not allowed; found \"Tx_Extbase_Command_HelpCommandController\", use \"TYPO3\\CMS\\Extbase\\Command\\HelpCommandController\" instead", "message": "Legacy classes are not allowed; found \"Tx_Extbase_Command_HelpCommandController\", use \"TYPO3\\CMS\\Extbase\\Command\\HelpCommandController\" instead",
"severity": 5, "severity": 5,
"source": "Typo3Update.LegacyClassnames.InstantiationWithNew.legacyClassname", "source": "Typo3Update.Classname.InstantiationWithNew.legacyClassname",
"type": "ERROR" "type": "ERROR"
}, },
{ {
@ -27,7 +27,7 @@
"line": 24, "line": 24,
"message": "Legacy classes are not allowed; found \"Tx_Extbase_Command_HelpCommandController\", use \"TYPO3\\CMS\\Extbase\\Command\\HelpCommandController\" instead", "message": "Legacy classes are not allowed; found \"Tx_Extbase_Command_HelpCommandController\", use \"TYPO3\\CMS\\Extbase\\Command\\HelpCommandController\" instead",
"severity": 5, "severity": 5,
"source": "Typo3Update.LegacyClassnames.InstantiationWithNew.legacyClassname", "source": "Typo3Update.Classname.InstantiationWithNew.legacyClassname",
"type": "ERROR" "type": "ERROR"
}, },
{ {
@ -36,7 +36,7 @@
"line": 27, "line": 27,
"message": "Legacy classes are not allowed; found \"Tx_Extbase_Command_HelpCommandController\", use \"TYPO3\\CMS\\Extbase\\Command\\HelpCommandController\" instead", "message": "Legacy classes are not allowed; found \"Tx_Extbase_Command_HelpCommandController\", use \"TYPO3\\CMS\\Extbase\\Command\\HelpCommandController\" instead",
"severity": 5, "severity": 5,
"source": "Typo3Update.LegacyClassnames.InstantiationWithNew.legacyClassname", "source": "Typo3Update.Classname.InstantiationWithNew.legacyClassname",
"type": "ERROR" "type": "ERROR"
}, },
{ {
@ -45,7 +45,7 @@
"line": 28, "line": 28,
"message": "Legacy classes are not allowed; found \"Tx_Extbase_Command_HelpCommandController\", use \"TYPO3\\CMS\\Extbase\\Command\\HelpCommandController\" instead", "message": "Legacy classes are not allowed; found \"Tx_Extbase_Command_HelpCommandController\", use \"TYPO3\\CMS\\Extbase\\Command\\HelpCommandController\" instead",
"severity": 5, "severity": 5,
"source": "Typo3Update.LegacyClassnames.InstantiationWithNew.legacyClassname", "source": "Typo3Update.Classname.InstantiationWithNew.legacyClassname",
"type": "ERROR" "type": "ERROR"
}, },
{ {
@ -54,7 +54,7 @@
"line": 29, "line": 29,
"message": "Legacy classes are not allowed; found \"Tx_Extbase_Command_HelpCommandController\", use \"TYPO3\\CMS\\Extbase\\Command\\HelpCommandController\" instead", "message": "Legacy classes are not allowed; found \"Tx_Extbase_Command_HelpCommandController\", use \"TYPO3\\CMS\\Extbase\\Command\\HelpCommandController\" instead",
"severity": 5, "severity": 5,
"source": "Typo3Update.LegacyClassnames.InstantiationWithNew.legacyClassname", "source": "Typo3Update.Classname.InstantiationWithNew.legacyClassname",
"type": "ERROR" "type": "ERROR"
} }
], ],

View file

@ -9,7 +9,7 @@
"line": 24, "line": 24,
"message": "Legacy classes are not allowed; found \"Tx_Extbase_Command_HelpCommandController\", use \"TYPO3\\CMS\\Extbase\\Command\\HelpCommandController\" instead", "message": "Legacy classes are not allowed; found \"Tx_Extbase_Command_HelpCommandController\", use \"TYPO3\\CMS\\Extbase\\Command\\HelpCommandController\" instead",
"severity": 5, "severity": 5,
"source": "Typo3Update.LegacyClassnames.InstantiationWithObjectManager.legacyClassname", "source": "Typo3Update.Classname.InstantiationWithObjectManager.legacyClassname",
"type": "ERROR" "type": "ERROR"
}, },
{ {
@ -18,7 +18,7 @@
"line": 25, "line": 25,
"message": "Legacy classes are not allowed; found \"Tx_Extbase_Command_HelpCommandController\", use \"TYPO3\\CMS\\Extbase\\Command\\HelpCommandController\" instead", "message": "Legacy classes are not allowed; found \"Tx_Extbase_Command_HelpCommandController\", use \"TYPO3\\CMS\\Extbase\\Command\\HelpCommandController\" instead",
"severity": 5, "severity": 5,
"source": "Typo3Update.LegacyClassnames.InstantiationWithObjectManager.legacyClassname", "source": "Typo3Update.Classname.InstantiationWithObjectManager.legacyClassname",
"type": "ERROR" "type": "ERROR"
}, },
{ {
@ -27,7 +27,7 @@
"line": 31, "line": 31,
"message": "Legacy classes are not allowed; found \"Tx_Extbase_Command_HelpCommandController\", use \"TYPO3\\CMS\\Extbase\\Command\\HelpCommandController\" instead", "message": "Legacy classes are not allowed; found \"Tx_Extbase_Command_HelpCommandController\", use \"TYPO3\\CMS\\Extbase\\Command\\HelpCommandController\" instead",
"severity": 5, "severity": 5,
"source": "Typo3Update.LegacyClassnames.InstantiationWithObjectManager.legacyClassname", "source": "Typo3Update.Classname.InstantiationWithObjectManager.legacyClassname",
"type": "ERROR" "type": "ERROR"
}, },
{ {
@ -36,7 +36,7 @@
"line": 33, "line": 33,
"message": "Legacy classes are not allowed; found \"Tx_Extbase_Command_HelpCommandController\", use \"TYPO3\\CMS\\Extbase\\Command\\HelpCommandController\" instead", "message": "Legacy classes are not allowed; found \"Tx_Extbase_Command_HelpCommandController\", use \"TYPO3\\CMS\\Extbase\\Command\\HelpCommandController\" instead",
"severity": 5, "severity": 5,
"source": "Typo3Update.LegacyClassnames.InstantiationWithObjectManager.legacyClassname", "source": "Typo3Update.Classname.InstantiationWithObjectManager.legacyClassname",
"type": "ERROR" "type": "ERROR"
} }
], ],

View file

@ -9,7 +9,7 @@
"line": 26, "line": 26,
"message": "Legacy classes are not allowed; found \"t3lib_Singleton\", use \"TYPO3\\CMS\\Core\\SingletonInterface\" instead", "message": "Legacy classes are not allowed; found \"t3lib_Singleton\", use \"TYPO3\\CMS\\Core\\SingletonInterface\" instead",
"severity": 5, "severity": 5,
"source": "Typo3Update.LegacyClassnames.IsACall.legacyClassname", "source": "Typo3Update.Classname.IsACall.legacyClassname",
"type": "ERROR" "type": "ERROR"
}, },
{ {
@ -18,7 +18,7 @@
"line": 29, "line": 29,
"message": "Legacy classes are not allowed; found \"t3lib_Singleton\", use \"TYPO3\\CMS\\Core\\SingletonInterface\" instead", "message": "Legacy classes are not allowed; found \"t3lib_Singleton\", use \"TYPO3\\CMS\\Core\\SingletonInterface\" instead",
"severity": 5, "severity": 5,
"source": "Typo3Update.LegacyClassnames.IsACall.legacyClassname", "source": "Typo3Update.Classname.IsACall.legacyClassname",
"type": "ERROR" "type": "ERROR"
} }
], ],

View file

@ -9,7 +9,7 @@
"line": 24, "line": 24,
"message": "Legacy class definitions are not allowed; found \"Tx_ExtName_Controller_Frontendcontroller\". Wrap your class inside a namespace.", "message": "Legacy class definitions are not allowed; found \"Tx_ExtName_Controller_Frontendcontroller\". Wrap your class inside a namespace.",
"severity": 5, "severity": 5,
"source": "Typo3Update.LegacyClassnames.MissingNamespace.legacyClassname", "source": "Typo3Update.Classname.MissingNamespace.legacyClassname",
"type": "ERROR" "type": "ERROR"
} }
], ],

View file

@ -9,7 +9,7 @@
"line": 24, "line": 24,
"message": "Legacy class definitions are not allowed; found \"Tx_ExtName_Controller_Frontendcontroller\". Wrap your class inside a namespace.", "message": "Legacy class definitions are not allowed; found \"Tx_ExtName_Controller_Frontendcontroller\". Wrap your class inside a namespace.",
"severity": 5, "severity": 5,
"source": "Typo3Update.LegacyClassnames.MissingNamespace.legacyClassname", "source": "Typo3Update.Classname.MissingNamespace.legacyClassname",
"type": "ERROR" "type": "ERROR"
} }
], ],

View file

@ -1,4 +1,4 @@
--- tests/Fixtures/Standards/Typo3Update/Sniffs/LegacyClassnames/DocCommentSniff/InputFileForIssues.php --- tests/Fixtures/Standards/Typo3Update/Sniffs/Classname/PhpDocCommentSniff/InputFileForIssues.php
+++ PHP_CodeSniffer +++ PHP_CodeSniffer
@@ -22,19 +22,19 @@ @@ -22,19 +22,19 @@
class InputFileForIssues class InputFileForIssues

View file

@ -9,7 +9,7 @@
"line": 25, "line": 25,
"message": "Legacy classes are not allowed; found \"Tx_Extbase_Domain_Repository_CategoryRepository\", use \"TYPO3\\CMS\\Extbase\\Domain\\Repository\\CategoryRepository\" instead", "message": "Legacy classes are not allowed; found \"Tx_Extbase_Domain_Repository_CategoryRepository\", use \"TYPO3\\CMS\\Extbase\\Domain\\Repository\\CategoryRepository\" instead",
"severity": 5, "severity": 5,
"source": "Typo3Update.LegacyClassnames.DocComment.legacyClassname", "source": "Typo3Update.Classname.PhpDocComment.legacyClassname",
"type": "ERROR" "type": "ERROR"
}, },
{ {
@ -18,7 +18,7 @@
"line": 31, "line": 31,
"message": "Legacy classes are not allowed; found \"t3lib_div\", use \"TYPO3\\CMS\\Core\\Utility\\GeneralUtility\" instead", "message": "Legacy classes are not allowed; found \"t3lib_div\", use \"TYPO3\\CMS\\Core\\Utility\\GeneralUtility\" instead",
"severity": 5, "severity": 5,
"source": "Typo3Update.LegacyClassnames.DocComment.legacyClassname", "source": "Typo3Update.Classname.PhpDocComment.legacyClassname",
"type": "ERROR" "type": "ERROR"
}, },
{ {
@ -27,7 +27,7 @@
"line": 33, "line": 33,
"message": "Legacy classes are not allowed; found \"Tx_Extbase_Configuration_Configurationmanager\", use \"TYPO3\\CMS\\Extbase\\Configuration\\ConfigurationManager\" instead", "message": "Legacy classes are not allowed; found \"Tx_Extbase_Configuration_Configurationmanager\", use \"TYPO3\\CMS\\Extbase\\Configuration\\ConfigurationManager\" instead",
"severity": 5, "severity": 5,
"source": "Typo3Update.LegacyClassnames.DocComment.legacyClassname", "source": "Typo3Update.Classname.PhpDocComment.legacyClassname",
"type": "ERROR" "type": "ERROR"
}, },
{ {
@ -36,7 +36,7 @@
"line": 37, "line": 37,
"message": "Legacy classes are not allowed; found \"t3lib_div\", use \"TYPO3\\CMS\\Core\\Utility\\GeneralUtility\" instead", "message": "Legacy classes are not allowed; found \"t3lib_div\", use \"TYPO3\\CMS\\Core\\Utility\\GeneralUtility\" instead",
"severity": 5, "severity": 5,
"source": "Typo3Update.LegacyClassnames.DocComment.legacyClassname", "source": "Typo3Update.Classname.PhpDocComment.legacyClassname",
"type": "ERROR" "type": "ERROR"
} }
], ],

View file

@ -9,7 +9,7 @@
"line": 22, "line": 22,
"message": "Legacy classes are not allowed; found \"Tx_Extbase_Utility_Extension\", use \"TYPO3\\CMS\\Extbase\\Utility\\ExtensionUtility\" instead", "message": "Legacy classes are not allowed; found \"Tx_Extbase_Utility_Extension\", use \"TYPO3\\CMS\\Extbase\\Utility\\ExtensionUtility\" instead",
"severity": 5, "severity": 5,
"source": "Typo3Update.LegacyClassnames.StaticCall.legacyClassname", "source": "Typo3Update.Classname.StaticCall.legacyClassname",
"type": "ERROR" "type": "ERROR"
}, },
{ {
@ -18,7 +18,7 @@
"line": 27, "line": 27,
"message": "Legacy classes are not allowed; found \"t3lib_div\", use \"TYPO3\\CMS\\Core\\Utility\\GeneralUtility\" instead", "message": "Legacy classes are not allowed; found \"t3lib_div\", use \"TYPO3\\CMS\\Core\\Utility\\GeneralUtility\" instead",
"severity": 5, "severity": 5,
"source": "Typo3Update.LegacyClassnames.StaticCall.legacyClassname", "source": "Typo3Update.Classname.StaticCall.legacyClassname",
"type": "ERROR" "type": "ERROR"
}, },
{ {
@ -27,7 +27,7 @@
"line": 27, "line": 27,
"message": "Legacy classes are not allowed; found \"Tx_Extbase_Command_HelpCommandController\", use \"TYPO3\\CMS\\Extbase\\Command\\HelpCommandController\" instead", "message": "Legacy classes are not allowed; found \"Tx_Extbase_Command_HelpCommandController\", use \"TYPO3\\CMS\\Extbase\\Command\\HelpCommandController\" instead",
"severity": 5, "severity": 5,
"source": "Typo3Update.LegacyClassnames.StaticCall.legacyClassname", "source": "Typo3Update.Classname.StaticCall.legacyClassname",
"type": "ERROR" "type": "ERROR"
}, },
{ {
@ -36,7 +36,7 @@
"line": 28, "line": 28,
"message": "Legacy classes are not allowed; found \"Tx_Extbase_Command_HelpCommandController\", use \"TYPO3\\CMS\\Extbase\\Command\\HelpCommandController\" instead", "message": "Legacy classes are not allowed; found \"Tx_Extbase_Command_HelpCommandController\", use \"TYPO3\\CMS\\Extbase\\Command\\HelpCommandController\" instead",
"severity": 5, "severity": 5,
"source": "Typo3Update.LegacyClassnames.StaticCall.legacyClassname", "source": "Typo3Update.Classname.StaticCall.legacyClassname",
"type": "ERROR" "type": "ERROR"
}, },
{ {
@ -45,7 +45,7 @@
"line": 30, "line": 30,
"message": "Legacy classes are not allowed; found \"Tx_Extbase_Command_HelpCommandController\", use \"TYPO3\\CMS\\Extbase\\Command\\HelpCommandController\" instead", "message": "Legacy classes are not allowed; found \"Tx_Extbase_Command_HelpCommandController\", use \"TYPO3\\CMS\\Extbase\\Command\\HelpCommandController\" instead",
"severity": 5, "severity": 5,
"source": "Typo3Update.LegacyClassnames.StaticCall.legacyClassname", "source": "Typo3Update.Classname.StaticCall.legacyClassname",
"type": "ERROR" "type": "ERROR"
}, },
{ {
@ -54,7 +54,7 @@
"line": 31, "line": 31,
"message": "Legacy classes are not allowed; found \"t3lib_Singleton\", use \"TYPO3\\CMS\\Core\\SingletonInterface\" instead", "message": "Legacy classes are not allowed; found \"t3lib_Singleton\", use \"TYPO3\\CMS\\Core\\SingletonInterface\" instead",
"severity": 5, "severity": 5,
"source": "Typo3Update.LegacyClassnames.StaticCall.legacyClassname", "source": "Typo3Update.Classname.StaticCall.legacyClassname",
"type": "ERROR" "type": "ERROR"
} }
], ],

View file

@ -9,7 +9,7 @@
"line": 24, "line": 24,
"message": "Legacy classes are not allowed; found \"Tx_Extbase_Exception\", use \"TYPO3\\CMS\\Extbase\\Exception\" instead", "message": "Legacy classes are not allowed; found \"Tx_Extbase_Exception\", use \"TYPO3\\CMS\\Extbase\\Exception\" instead",
"severity": 5, "severity": 5,
"source": "Typo3Update.LegacyClassnames.TypeHintCatchException.legacyClassname", "source": "Typo3Update.Classname.TypeHintCatchException.legacyClassname",
"type": "ERROR" "type": "ERROR"
}, },
{ {
@ -18,7 +18,7 @@
"line": 30, "line": 30,
"message": "Legacy classes are not allowed; found \"Tx_Extbase_Exception\", use \"TYPO3\\CMS\\Extbase\\Exception\" instead", "message": "Legacy classes are not allowed; found \"Tx_Extbase_Exception\", use \"TYPO3\\CMS\\Extbase\\Exception\" instead",
"severity": 5, "severity": 5,
"source": "Typo3Update.LegacyClassnames.TypeHintCatchException.legacyClassname", "source": "Typo3Update.Classname.TypeHintCatchException.legacyClassname",
"type": "ERROR" "type": "ERROR"
} }
], ],

View file

@ -9,7 +9,7 @@
"line": 28, "line": 28,
"message": "Legacy classes are not allowed; found \"Tx_Extbase_Domain_Model_Backenduser\", use \"TYPO3\\CMS\\Extbase\\Domain\\Model\\BackendUser\" instead", "message": "Legacy classes are not allowed; found \"Tx_Extbase_Domain_Model_Backenduser\", use \"TYPO3\\CMS\\Extbase\\Domain\\Model\\BackendUser\" instead",
"severity": 5, "severity": 5,
"source": "Typo3Update.LegacyClassnames.TypeHint.legacyClassname", "source": "Typo3Update.Classname.TypeHint.legacyClassname",
"type": "ERROR" "type": "ERROR"
}, },
{ {
@ -18,7 +18,7 @@
"line": 31, "line": 31,
"message": "Legacy classes are not allowed; found \"Tx_Extbase_Domain_Model_Backenduser\", use \"TYPO3\\CMS\\Extbase\\Domain\\Model\\BackendUser\" instead", "message": "Legacy classes are not allowed; found \"Tx_Extbase_Domain_Model_Backenduser\", use \"TYPO3\\CMS\\Extbase\\Domain\\Model\\BackendUser\" instead",
"severity": 5, "severity": 5,
"source": "Typo3Update.LegacyClassnames.TypeHint.legacyClassname", "source": "Typo3Update.Classname.TypeHint.legacyClassname",
"type": "ERROR" "type": "ERROR"
}, },
{ {
@ -27,7 +27,7 @@
"line": 43, "line": 43,
"message": "Legacy classes are not allowed; found \"Tx_Extbase_Domain_Model_Backenduser\", use \"TYPO3\\CMS\\Extbase\\Domain\\Model\\BackendUser\" instead", "message": "Legacy classes are not allowed; found \"Tx_Extbase_Domain_Model_Backenduser\", use \"TYPO3\\CMS\\Extbase\\Domain\\Model\\BackendUser\" instead",
"severity": 5, "severity": 5,
"source": "Typo3Update.LegacyClassnames.TypeHint.legacyClassname", "source": "Typo3Update.Classname.TypeHint.legacyClassname",
"type": "ERROR" "type": "ERROR"
}, },
{ {
@ -36,7 +36,7 @@
"line": 46, "line": 46,
"message": "Legacy classes are not allowed; found \"Tx_Extbase_Domain_Model_Backenduser\", use \"TYPO3\\CMS\\Extbase\\Domain\\Model\\BackendUser\" instead", "message": "Legacy classes are not allowed; found \"Tx_Extbase_Domain_Model_Backenduser\", use \"TYPO3\\CMS\\Extbase\\Domain\\Model\\BackendUser\" instead",
"severity": 5, "severity": 5,
"source": "Typo3Update.LegacyClassnames.TypeHint.legacyClassname", "source": "Typo3Update.Classname.TypeHint.legacyClassname",
"type": "ERROR" "type": "ERROR"
}, },
{ {
@ -45,7 +45,7 @@
"line": 56, "line": 56,
"message": "Legacy classes are not allowed; found \"Tx_Extbase_Domain_Model_Backenduser\", use \"TYPO3\\CMS\\Extbase\\Domain\\Model\\BackendUser\" instead", "message": "Legacy classes are not allowed; found \"Tx_Extbase_Domain_Model_Backenduser\", use \"TYPO3\\CMS\\Extbase\\Domain\\Model\\BackendUser\" instead",
"severity": 5, "severity": 5,
"source": "Typo3Update.LegacyClassnames.TypeHint.legacyClassname", "source": "Typo3Update.Classname.TypeHint.legacyClassname",
"type": "ERROR" "type": "ERROR"
}, },
{ {
@ -54,7 +54,7 @@
"line": 59, "line": 59,
"message": "Legacy classes are not allowed; found \"Tx_Extbase_Domain_Model_Backenduser\", use \"TYPO3\\CMS\\Extbase\\Domain\\Model\\BackendUser\" instead", "message": "Legacy classes are not allowed; found \"Tx_Extbase_Domain_Model_Backenduser\", use \"TYPO3\\CMS\\Extbase\\Domain\\Model\\BackendUser\" instead",
"severity": 5, "severity": 5,
"source": "Typo3Update.LegacyClassnames.TypeHint.legacyClassname", "source": "Typo3Update.Classname.TypeHint.legacyClassname",
"type": "ERROR" "type": "ERROR"
} }
], ],

View file

@ -9,7 +9,7 @@
"line": 22, "line": 22,
"message": "Legacy classes are not allowed; found \"Tx_Extbase_Domain_Model_Backenduser\", use \"TYPO3\\CMS\\Extbase\\Domain\\Model\\BackendUser\" instead", "message": "Legacy classes are not allowed; found \"Tx_Extbase_Domain_Model_Backenduser\", use \"TYPO3\\CMS\\Extbase\\Domain\\Model\\BackendUser\" instead",
"severity": 5, "severity": 5,
"source": "Typo3Update.LegacyClassnames.Use.legacyClassname", "source": "Typo3Update.Classname.Use.legacyClassname",
"type": "ERROR" "type": "ERROR"
}, },
{ {
@ -18,7 +18,7 @@
"line": 23, "line": 23,
"message": "Legacy classes are not allowed; found \"Tx_Extbase_Domain_Model_Backenduser\", use \"TYPO3\\CMS\\Extbase\\Domain\\Model\\BackendUser\" instead", "message": "Legacy classes are not allowed; found \"Tx_Extbase_Domain_Model_Backenduser\", use \"TYPO3\\CMS\\Extbase\\Domain\\Model\\BackendUser\" instead",
"severity": 5, "severity": 5,
"source": "Typo3Update.LegacyClassnames.Use.legacyClassname", "source": "Typo3Update.Classname.Use.legacyClassname",
"type": "ERROR" "type": "ERROR"
} }
], ],

View file

@ -9,7 +9,7 @@
"line": 23, "line": 23,
"message": "No vendor is given, that will break TYPO3 handling for namespaced classes. Add vendor before Extensionkey like: \"MyCustomVendor.\" . $_EXTKEY", "message": "No vendor is given, that will break TYPO3 handling for namespaced classes. Add vendor before Extensionkey like: \"MyCustomVendor.\" . $_EXTKEY",
"severity": 5, "severity": 5,
"source": "Typo3Update.LegacyClassnames.MissingVendorForPluginsAndModules.missingVendor", "source": "Typo3Update.LegacyClassname.MissingVendorForPluginsAndModules.missingVendor",
"type": "ERROR" "type": "ERROR"
}, },
{ {
@ -18,7 +18,7 @@
"line": 31, "line": 31,
"message": "No vendor is given, that will break TYPO3 handling for namespaced classes. Add vendor before Extensionkey like: \"MyCustomVendor.\" . $_EXTKEY", "message": "No vendor is given, that will break TYPO3 handling for namespaced classes. Add vendor before Extensionkey like: \"MyCustomVendor.\" . $_EXTKEY",
"severity": 5, "severity": 5,
"source": "Typo3Update.LegacyClassnames.MissingVendorForPluginsAndModules.missingVendor", "source": "Typo3Update.LegacyClassname.MissingVendorForPluginsAndModules.missingVendor",
"type": "ERROR" "type": "ERROR"
}, },
{ {
@ -27,7 +27,7 @@
"line": 39, "line": 39,
"message": "No vendor is given, that will break TYPO3 handling for namespaced classes. Add vendor before Extensionkey like: \"MyCustomVendor.\" . $_EXTKEY", "message": "No vendor is given, that will break TYPO3 handling for namespaced classes. Add vendor before Extensionkey like: \"MyCustomVendor.\" . $_EXTKEY",
"severity": 5, "severity": 5,
"source": "Typo3Update.LegacyClassnames.MissingVendorForPluginsAndModules.missingVendor", "source": "Typo3Update.LegacyClassname.MissingVendorForPluginsAndModules.missingVendor",
"type": "ERROR" "type": "ERROR"
}, },
{ {
@ -36,7 +36,7 @@
"line": 45, "line": 45,
"message": "No vendor is given, that will break TYPO3 handling for namespaced classes. Add vendor before Extensionkey like: \"MyCustomVendor.\" . $_EXTKEY", "message": "No vendor is given, that will break TYPO3 handling for namespaced classes. Add vendor before Extensionkey like: \"MyCustomVendor.\" . $_EXTKEY",
"severity": 5, "severity": 5,
"source": "Typo3Update.LegacyClassnames.MissingVendorForPluginsAndModules.missingVendor", "source": "Typo3Update.LegacyClassname.MissingVendorForPluginsAndModules.missingVendor",
"type": "ERROR" "type": "ERROR"
}, },
{ {
@ -45,7 +45,7 @@
"line": 51, "line": 51,
"message": "No vendor is given, that will break TYPO3 handling for namespaced classes. Add vendor before Extensionkey like: \"MyCustomVendor.\" . $_EXTKEY", "message": "No vendor is given, that will break TYPO3 handling for namespaced classes. Add vendor before Extensionkey like: \"MyCustomVendor.\" . $_EXTKEY",
"severity": 5, "severity": 5,
"source": "Typo3Update.LegacyClassnames.MissingVendorForPluginsAndModules.missingVendor", "source": "Typo3Update.LegacyClassname.MissingVendorForPluginsAndModules.missingVendor",
"type": "ERROR" "type": "ERROR"
}, },
{ {
@ -54,7 +54,7 @@
"line": 61, "line": 61,
"message": "No vendor is given, that will break TYPO3 handling for namespaced classes. Add vendor before Extensionkey like: \"MyCustomVendor.\" . $_EXTKEY", "message": "No vendor is given, that will break TYPO3 handling for namespaced classes. Add vendor before Extensionkey like: \"MyCustomVendor.\" . $_EXTKEY",
"severity": 5, "severity": 5,
"source": "Typo3Update.LegacyClassnames.MissingVendorForPluginsAndModules.missingVendor", "source": "Typo3Update.LegacyClassname.MissingVendorForPluginsAndModules.missingVendor",
"type": "ERROR" "type": "ERROR"
} }
], ],

View file

@ -9,7 +9,7 @@
"line": 23, "line": 23,
"message": "No vendor is given, that will break TYPO3 handling for namespaced classes. Add vendor before Extensionkey like: \"YourCompany.\" . $_EXTKEY", "message": "No vendor is given, that will break TYPO3 handling for namespaced classes. Add vendor before Extensionkey like: \"YourCompany.\" . $_EXTKEY",
"severity": 5, "severity": 5,
"source": "Typo3Update.LegacyClassnames.MissingVendorForPluginsAndModules.missingVendor", "source": "Typo3Update.LegacyClassname.MissingVendorForPluginsAndModules.missingVendor",
"type": "ERROR" "type": "ERROR"
}, },
{ {
@ -18,7 +18,7 @@
"line": 31, "line": 31,
"message": "No vendor is given, that will break TYPO3 handling for namespaced classes. Add vendor before Extensionkey like: \"YourCompany.\" . $_EXTKEY", "message": "No vendor is given, that will break TYPO3 handling for namespaced classes. Add vendor before Extensionkey like: \"YourCompany.\" . $_EXTKEY",
"severity": 5, "severity": 5,
"source": "Typo3Update.LegacyClassnames.MissingVendorForPluginsAndModules.missingVendor", "source": "Typo3Update.LegacyClassname.MissingVendorForPluginsAndModules.missingVendor",
"type": "ERROR" "type": "ERROR"
}, },
{ {
@ -27,7 +27,7 @@
"line": 39, "line": 39,
"message": "No vendor is given, that will break TYPO3 handling for namespaced classes. Add vendor before Extensionkey like: \"YourCompany.\" . $_EXTKEY", "message": "No vendor is given, that will break TYPO3 handling for namespaced classes. Add vendor before Extensionkey like: \"YourCompany.\" . $_EXTKEY",
"severity": 5, "severity": 5,
"source": "Typo3Update.LegacyClassnames.MissingVendorForPluginsAndModules.missingVendor", "source": "Typo3Update.LegacyClassname.MissingVendorForPluginsAndModules.missingVendor",
"type": "ERROR" "type": "ERROR"
}, },
{ {
@ -36,7 +36,7 @@
"line": 45, "line": 45,
"message": "No vendor is given, that will break TYPO3 handling for namespaced classes. Add vendor before Extensionkey like: \"YourCompany.\" . $_EXTKEY", "message": "No vendor is given, that will break TYPO3 handling for namespaced classes. Add vendor before Extensionkey like: \"YourCompany.\" . $_EXTKEY",
"severity": 5, "severity": 5,
"source": "Typo3Update.LegacyClassnames.MissingVendorForPluginsAndModules.missingVendor", "source": "Typo3Update.LegacyClassname.MissingVendorForPluginsAndModules.missingVendor",
"type": "ERROR" "type": "ERROR"
}, },
{ {
@ -45,7 +45,7 @@
"line": 51, "line": 51,
"message": "No vendor is given, that will break TYPO3 handling for namespaced classes. Add vendor before Extensionkey like: \"YourCompany.\" . $_EXTKEY", "message": "No vendor is given, that will break TYPO3 handling for namespaced classes. Add vendor before Extensionkey like: \"YourCompany.\" . $_EXTKEY",
"severity": 5, "severity": 5,
"source": "Typo3Update.LegacyClassnames.MissingVendorForPluginsAndModules.missingVendor", "source": "Typo3Update.LegacyClassname.MissingVendorForPluginsAndModules.missingVendor",
"type": "ERROR" "type": "ERROR"
}, },
{ {
@ -54,7 +54,7 @@
"line": 61, "line": 61,
"message": "No vendor is given, that will break TYPO3 handling for namespaced classes. Add vendor before Extensionkey like: \"YourCompany.\" . $_EXTKEY", "message": "No vendor is given, that will break TYPO3 handling for namespaced classes. Add vendor before Extensionkey like: \"YourCompany.\" . $_EXTKEY",
"severity": 5, "severity": 5,
"source": "Typo3Update.LegacyClassnames.MissingVendorForPluginsAndModules.missingVendor", "source": "Typo3Update.LegacyClassname.MissingVendorForPluginsAndModules.missingVendor",
"type": "ERROR" "type": "ERROR"
} }
], ],