From c00b8d4b7578c31716a8c3143847edef191e3ffd Mon Sep 17 00:00:00 2001 From: TomasVotruba Date: Fri, 27 Mar 2020 22:51:44 +0100 Subject: [PATCH 1/2] fix bracket mallform in annotations --- .../src/PhpDocNode/AbstractTagValueNode.php | 4 +++- .../src/PhpDocNode/Symfony/SymfonyRouteTagValueNode.php | 3 --- .../PhpDocInfoPrinter/FixtureBasic/route_with_brackets.txt | 3 +++ .../FixtureVersion5/with_route_options.php.inc | 4 ++-- 4 files changed, 8 insertions(+), 6 deletions(-) create mode 100644 packages/better-php-doc-parser/tests/PhpDocInfo/PhpDocInfoPrinter/FixtureBasic/route_with_brackets.txt diff --git a/packages/better-php-doc-parser/src/PhpDocNode/AbstractTagValueNode.php b/packages/better-php-doc-parser/src/PhpDocNode/AbstractTagValueNode.php index d6acb77b843d..492ebcaa3d8e 100644 --- a/packages/better-php-doc-parser/src/PhpDocNode/AbstractTagValueNode.php +++ b/packages/better-php-doc-parser/src/PhpDocNode/AbstractTagValueNode.php @@ -53,7 +53,9 @@ protected function printArrayItem(array $item, ?string $key = null): string { $json = Json::encode($item); $json = Strings::replace($json, '#,#', ', '); - $json = Strings::replace($json, '#\[(.*?)\]#', '{$1}'); + + // change brackets from json to annotations + $json = Strings::replace($json, '#^\[(.*?)\]$#', '{$1}'); // cleanup json encoded extra slashes $json = Strings::replace($json, '#\\\\\\\\#', '\\'); diff --git a/packages/better-php-doc-parser/src/PhpDocNode/Symfony/SymfonyRouteTagValueNode.php b/packages/better-php-doc-parser/src/PhpDocNode/Symfony/SymfonyRouteTagValueNode.php index a75241062ddf..71053d8ba685 100644 --- a/packages/better-php-doc-parser/src/PhpDocNode/Symfony/SymfonyRouteTagValueNode.php +++ b/packages/better-php-doc-parser/src/PhpDocNode/Symfony/SymfonyRouteTagValueNode.php @@ -128,9 +128,6 @@ public function __toString(): string return $this->printContentItems($contentItems); } - /** - * @param mixed[] $methods - */ public function changeMethods(array $methods): void { $this->orderedVisibleItems[] = 'methods'; diff --git a/packages/better-php-doc-parser/tests/PhpDocInfo/PhpDocInfoPrinter/FixtureBasic/route_with_brackets.txt b/packages/better-php-doc-parser/tests/PhpDocInfo/PhpDocInfoPrinter/FixtureBasic/route_with_brackets.txt new file mode 100644 index 000000000000..94be0cd6da23 --- /dev/null +++ b/packages/better-php-doc-parser/tests/PhpDocInfo/PhpDocInfoPrinter/FixtureBasic/route_with_brackets.txt @@ -0,0 +1,3 @@ +/** + * @Route("/demo/{letter}", requirements={"letter"="[a-z]{1}"}) + */ diff --git a/rules/sensio/tests/Rector/FrameworkExtraBundle/TemplateAnnotationRector/FixtureVersion5/with_route_options.php.inc b/rules/sensio/tests/Rector/FrameworkExtraBundle/TemplateAnnotationRector/FixtureVersion5/with_route_options.php.inc index 3ea25a133211..9deadb2bd005 100755 --- a/rules/sensio/tests/Rector/FrameworkExtraBundle/TemplateAnnotationRector/FixtureVersion5/with_route_options.php.inc +++ b/rules/sensio/tests/Rector/FrameworkExtraBundle/TemplateAnnotationRector/FixtureVersion5/with_route_options.php.inc @@ -9,7 +9,7 @@ use Symfony\Component\Routing\Annotation\Route; class WithRouteOptions extends AbstractController { /** - * @Route("/{category}", name="report_overview", defaults={"category":null}, requirements={"category":"\d+"}) + * @Route("/{category}", name="report_overview", defaults={"category":null}, requirements={"category":"[a-z]\d+"}) * @Template("PAPPReportBundle:Report:report_list.html.twig") */ public function index($category = null) @@ -33,7 +33,7 @@ use Symfony\Component\Routing\Annotation\Route; class WithRouteOptions extends AbstractController { /** - * @Route("/{category}", name="report_overview", defaults={"category":null}, requirements={"category":"\d+"}) + * @Route("/{category}", name="report_overview", defaults={"category":null}, requirements={"category":"[a-z]\d+"}) */ public function index($category = null): \Symfony\Component\HttpFoundation\Response { From 8338004d4e1f85f0eb4829ece3dff43a1ac01f01 Mon Sep 17 00:00:00 2001 From: TomasVotruba Date: Fri, 27 Mar 2020 22:52:14 +0100 Subject: [PATCH 2/2] test = --- .../PhpDocInfoPrinter/FixtureBasic/route_with_brackets.txt | 3 --- .../FixtureVersion5/with_route_options.php.inc | 4 ++-- 2 files changed, 2 insertions(+), 5 deletions(-) delete mode 100644 packages/better-php-doc-parser/tests/PhpDocInfo/PhpDocInfoPrinter/FixtureBasic/route_with_brackets.txt diff --git a/packages/better-php-doc-parser/tests/PhpDocInfo/PhpDocInfoPrinter/FixtureBasic/route_with_brackets.txt b/packages/better-php-doc-parser/tests/PhpDocInfo/PhpDocInfoPrinter/FixtureBasic/route_with_brackets.txt deleted file mode 100644 index 94be0cd6da23..000000000000 --- a/packages/better-php-doc-parser/tests/PhpDocInfo/PhpDocInfoPrinter/FixtureBasic/route_with_brackets.txt +++ /dev/null @@ -1,3 +0,0 @@ -/** - * @Route("/demo/{letter}", requirements={"letter"="[a-z]{1}"}) - */ diff --git a/rules/sensio/tests/Rector/FrameworkExtraBundle/TemplateAnnotationRector/FixtureVersion5/with_route_options.php.inc b/rules/sensio/tests/Rector/FrameworkExtraBundle/TemplateAnnotationRector/FixtureVersion5/with_route_options.php.inc index 9deadb2bd005..ec2a7265941c 100755 --- a/rules/sensio/tests/Rector/FrameworkExtraBundle/TemplateAnnotationRector/FixtureVersion5/with_route_options.php.inc +++ b/rules/sensio/tests/Rector/FrameworkExtraBundle/TemplateAnnotationRector/FixtureVersion5/with_route_options.php.inc @@ -9,7 +9,7 @@ use Symfony\Component\Routing\Annotation\Route; class WithRouteOptions extends AbstractController { /** - * @Route("/{category}", name="report_overview", defaults={"category":null}, requirements={"category":"[a-z]\d+"}) + * @Route("/{category}", name="report_overview", defaults={"category":null}, requirements={"category"="[a-z]\d+"}) * @Template("PAPPReportBundle:Report:report_list.html.twig") */ public function index($category = null) @@ -33,7 +33,7 @@ use Symfony\Component\Routing\Annotation\Route; class WithRouteOptions extends AbstractController { /** - * @Route("/{category}", name="report_overview", defaults={"category":null}, requirements={"category":"[a-z]\d+"}) + * @Route("/{category}", name="report_overview", defaults={"category":null}, requirements={"category"="[a-z]\d+"}) */ public function index($category = null): \Symfony\Component\HttpFoundation\Response {