Skip to content
Snippets Groups Projects
Unverified Commit d18eeb13 authored by Klaus Purer's avatar Klaus Purer Committed by GitHub
Browse files

fix(FullyQualifiedNamespace): Do not check names in PHP attributes for now (#3483583)

parent ba30df56
No related branches found
No related tags found
No related merge requests found
...@@ -65,6 +65,11 @@ class FullyQualifiedNamespaceSniff implements Sniff ...@@ -65,6 +65,11 @@ class FullyQualifiedNamespaceSniff implements Sniff
return; return;
} }
// Skip names in PHP attributes, no standards defined yet.
if (isset($tokens[$stackPtr]['attribute_closer']) === true) {
return $tokens[$stackPtr]['attribute_closer'];
}
// Check if this is a use statement and ignore those. // Check if this is a use statement and ignore those.
$before = $phpcsFile->findPrevious([T_STRING, T_NS_SEPARATOR, T_WHITESPACE, T_COMMA, T_AS], $stackPtr, null, true); $before = $phpcsFile->findPrevious([T_STRING, T_NS_SEPARATOR, T_WHITESPACE, T_COMMA, T_AS], $stackPtr, null, true);
if ($tokens[$before]['code'] === T_USE || $tokens[$before]['code'] === T_NAMESPACE) { if ($tokens[$before]['code'] === T_USE || $tokens[$before]['code'] === T_NAMESPACE) {
......
...@@ -8,7 +8,7 @@ use Drupal\Core\Access\AccessResult; ...@@ -8,7 +8,7 @@ use Drupal\Core\Access\AccessResult;
use Drupal\Core\Session\AccountInterface; use Drupal\Core\Session\AccountInterface;
/** /**
* Test action which is always usable. * Fully qualified names are allowed, there is no standard yet.
*/ */
#[\Drupal\action_link\Attribute\StateAction( #[\Drupal\action_link\Attribute\StateAction(
id: 'test_always', id: 'test_always',
......
...@@ -2,17 +2,18 @@ ...@@ -2,17 +2,18 @@
namespace Drupal\action_link_test_plugins\Plugin\StateAction; namespace Drupal\action_link_test_plugins\Plugin\StateAction;
use Drupal\Core\StringTranslation\TranslatableMarkup; use Drupal\action_link\Entity\ActionLinkInterface;
use Drupal\action_link\Attribute\StateAction;
use Drupal\action_link\Plugin\StateAction\StateActionBase; use Drupal\action_link\Plugin\StateAction\StateActionBase;
use Drupal\Core\Access\AccessResult;
use Drupal\Core\Session\AccountInterface;
/** /**
* Test action which is always usable. * Fully qualified names are allowed, there is no standard yet.
*/ */
#[StateAction( #[\Drupal\action_link\Attribute\StateAction(
id: 'test_always', id: 'test_always',
label: new TranslatableMarkup('Test Always'), label: new \Drupal\Core\StringTranslation\TranslatableMarkup('Test Always'),
description: new TranslatableMarkup('Test Always'), description: new \Drupal\Core\StringTranslation\TranslatableMarkup('Test Always'),
directions: [ directions: [
'change' => 'change', 'change' => 'change',
] ]
......
...@@ -38,11 +38,7 @@ class FullyQualifiedNamespaceUnitTest extends CoderSniffUnitTest ...@@ -38,11 +38,7 @@ class FullyQualifiedNamespaceUnitTest extends CoderSniffUnitTest
case 'FullyQualifiedNamespaceUnitTest.3.inc': case 'FullyQualifiedNamespaceUnitTest.3.inc':
return [10 => 2]; return [10 => 2];
case 'FullyQualifiedNamespaceUnitTest.4.inc': case 'FullyQualifiedNamespaceUnitTest.4.inc':
return [ return [];
13 => 1,
15 => 1,
16 => 1,
];
}//end switch }//end switch
return []; return [];
......
...@@ -5,8 +5,6 @@ ...@@ -5,8 +5,6 @@
* Testing class/trait comments. * Testing class/trait comments.
*/ */
use Some\Attribute;
/** /**
* *
*/ */
...@@ -62,7 +60,7 @@ class WrongSpacing { ...@@ -62,7 +60,7 @@ class WrongSpacing {
/** /**
* This is correct. * This is correct.
*/ */
#[Attribute(foo: 'bar')] #[Some\Attribute(foo: 'bar')]
#[Other\Attribute(baz: 'qux')] #[Other\Attribute(baz: 'qux')]
class DoubleAttribute { class DoubleAttribute {
......
...@@ -5,8 +5,6 @@ ...@@ -5,8 +5,6 @@
* Some function comment tests. * Some function comment tests.
*/ */
use Some\Attribute;
/** /**
* Test. * Test.
* *
...@@ -581,7 +579,7 @@ class Test41 { ...@@ -581,7 +579,7 @@ class Test41 {
/** /**
* Method docblock. * Method docblock.
*/ */
#[Attribute(foo: 'bar')] #[Some\Attribute(foo: 'bar')]
#[Other\Attribute(baz: 'qux')] #[Other\Attribute(baz: 'qux')]
public function method() { public function method() {
} }
......
...@@ -1914,3 +1914,35 @@ enum PUROSELY_WRONG_BUT_OK: int { ...@@ -1914,3 +1914,35 @@ enum PUROSELY_WRONG_BUT_OK: int {
case One = 1; case One = 1;
case Two = 2; case Two = 2;
} }
/**
* Fully qualified class name is allowed in PHP attributes for now.
*/
#[\Drupal\action_link\Attribute\StateAction(
id: 'test_always',
label: new \Drupal\Core\StringTranslation\TranslatableMarkup('Test Always'),
description: new \Drupal\Core\StringTranslation\TranslatableMarkup('Test Always'),
directions: [
'change' => 'change',
]
)]
class TestAlways extends StateActionBase {
/**
* Partial names are ok in attributes for now.
*/
#[Assert\NotBlank]
private bool $bar;
/**
* Partially qualified names are ok in attributes for now.
*/
#[CLI\Command(
name: 'example',
aliases: ['example-foo']
)]
#[CLI\Option(name: 'pretty_format', description: 'Display the count in pretty format.')]
public function test(array $options = ['pretty-format' => TRUE]): void {
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment