diff --git a/docs/routing.md b/docs/routing.md index df3315d07..3a5e5b1bf 100644 --- a/docs/routing.md +++ b/docs/routing.md @@ -22,7 +22,7 @@ app_book: ```php # src/Entity/Book -use Sylius\Component\Resource\Annotation\SyliusCrudRoutes; +use Sylius\Resource\Annotation\SyliusCrudRoutes; #[SyliusCrudRoutes( alias: 'app.book', @@ -68,7 +68,7 @@ app_book: ```php # src/Entity/Book -use Sylius\Component\Resource\Annotation\SyliusCrudRoutes; +use Sylius\Resource\Annotation\SyliusCrudRoutes; #[SyliusCrudRoutes( alias: 'app.book', @@ -140,7 +140,7 @@ app_book: ```php # src/Entity/Book -use Sylius\Component\Resource\Annotation\SyliusCrudRoutes; +use Sylius\Resource\Annotation\SyliusCrudRoutes; #[SyliusCrudRoutes( alias: 'app.book', @@ -185,7 +185,7 @@ app_book: ```php # src/Entity/Book -use Sylius\Component\Resource\Annotation\SyliusCrudRoutes; +use Sylius\Resource\Annotation\SyliusCrudRoutes; #[SyliusCrudRoutes( alias: 'app.book', @@ -235,7 +235,7 @@ app_library_book: ```php # src/Entity/Book -use Sylius\Component\Resource\Annotation\SyliusCrudRoutes; +use Sylius\Resource\Annotation\SyliusCrudRoutes; #[SyliusCrudRoutes( alias: 'app.book', @@ -295,7 +295,7 @@ app_admin_book: ```php # src/Entity/Book -use Sylius\Component\Resource\Annotation\SyliusCrudRoutes; +use Sylius\Resource\Annotation\SyliusCrudRoutes; #[SyliusCrudRoutes( alias: 'app.book', @@ -336,7 +336,7 @@ app_book: # src/Entity/Book use App\Form\Type\AdminBookType; -use Sylius\Component\Resource\Annotation\SyliusCrudRoutes; +use Sylius\Resource\Annotation\SyliusCrudRoutes; #[SyliusCrudRoutes( alias: 'app.book', @@ -373,7 +373,7 @@ app_book: ```php # src/Entity/Book -use Sylius\Component\Resource\Annotation\SyliusCrudRoutes; +use Sylius\Resource\Annotation\SyliusCrudRoutes; #[SyliusCrudRoutes( alias: 'app.book', @@ -431,7 +431,7 @@ app_book: ```php # src/Entity/Book -use Sylius\Component\Resource\Annotation\SyliusCrudRoutes; +use Sylius\Resource\Annotation\SyliusCrudRoutes; #[SyliusCrudRoutes( alias: 'app.book', @@ -485,7 +485,7 @@ app_book: ```php # src/Entity/Book -use Sylius\Component\Resource\Annotation\SyliusCrudRoutes; +use Sylius\Resource\Annotation\SyliusCrudRoutes; #[SyliusCrudRoutes( identifier: 'isbn', diff --git a/docs/show_resource.md b/docs/show_resource.md index 49f21b181..2210eed40 100644 --- a/docs/show_resource.md +++ b/docs/show_resource.md @@ -25,7 +25,7 @@ app_book_show: ```php // src/Entity/Book -use Sylius\Component\Resource\Annotation\SyliusRoute; +use Sylius\Resource\Annotation\SyliusRoute; #[SyliusRoute( name: 'app_book_show', @@ -68,7 +68,7 @@ app_admin_book_show: ```php # src/Entity/Book -use Sylius\Component\Resource\Annotation\SyliusRoute; +use Sylius\Resource\Annotation\SyliusRoute; #[SyliusRoute( name: 'app_admin_book_show', @@ -111,7 +111,7 @@ app_book_show: ```php # src/Entity/Book -use Sylius\Component\Resource\Annotation\SyliusRoute; +use Sylius\Resource\Annotation\SyliusRoute; #[SyliusRoute( name: 'app_book_show', @@ -158,7 +158,7 @@ app_book_show: ```php # src/Entity/Book -use Sylius\Component\Resource\Annotation\SyliusRoute; +use Sylius\Resource\Annotation\SyliusRoute; #[SyliusRoute( name: 'app_book_show', @@ -203,7 +203,7 @@ app_book_show: ```php # src/Entity/Book -use Sylius\Component\Resource\Annotation\SyliusRoute; +use Sylius\Resource\Annotation\SyliusRoute; #[SyliusRoute( name: 'app_book_show', @@ -251,7 +251,7 @@ app_book_show: ```php # src/Entity/Book -use Sylius\Component\Resource\Annotation\SyliusRoute; +use Sylius\Resource\Annotation\SyliusRoute; #[SyliusRoute( name: 'app_book_show', diff --git a/docs/update_resource.md b/docs/update_resource.md index a0f70a0d3..43fa54c6e 100644 --- a/docs/update_resource.md +++ b/docs/update_resource.md @@ -21,7 +21,7 @@ app_book_update: ```php // src/Entity/Book -use Sylius\Component\Resource\Annotation\SyliusRoute; +use Sylius\Resource\Annotation\SyliusRoute; #[SyliusRoute( name: 'app_book_update', @@ -74,7 +74,7 @@ app_book_update: ```php // src/Entity/Book -use Sylius\Component\Resource\Annotation\SyliusRoute; +use Sylius\Resource\Annotation\SyliusRoute; #[SyliusRoute( name: 'app_book_update', @@ -113,7 +113,7 @@ app_book_update: // src/Entity/Book use App\Form\BookType; -use Sylius\Component\Resource\Annotation\SyliusRoute; +use Sylius\Resource\Annotation\SyliusRoute; #[SyliusRoute( name: 'app_book_update', @@ -157,7 +157,7 @@ app_book_update: // src/Entity/Book use App\Form\BookType; -use Sylius\Component\Resource\Annotation\SyliusRoute; +use Sylius\Resource\Annotation\SyliusRoute; #[SyliusRoute( name: 'app_book_update', @@ -199,7 +199,7 @@ app_book_update: // src/Entity/Book use App\Form\BookType; -use Sylius\Component\Resource\Annotation\SyliusRoute; +use Sylius\Resource\Annotation\SyliusRoute; #[SyliusRoute( name: 'app_book_update', @@ -240,7 +240,7 @@ app_book_update: // src/Entity/Book use App\Form\BookType; -use Sylius\Component\Resource\Annotation\SyliusRoute; +use Sylius\Resource\Annotation\SyliusRoute; #[SyliusRoute( name: 'app_book_update', @@ -279,7 +279,7 @@ app_book_update: // src/Entity/Book use App\Form\BookType; -use Sylius\Component\Resource\Annotation\SyliusRoute; +use Sylius\Resource\Annotation\SyliusRoute; #[SyliusRoute( name: 'app_book_update', @@ -323,7 +323,7 @@ app_book_customer_update: // src/Entity/Book use App\Form\BookType; -use Sylius\Component\Resource\Annotation\SyliusRoute; +use Sylius\Resource\Annotation\SyliusRoute; #[SyliusRoute( name: 'app_book_customer_update', @@ -368,7 +368,7 @@ app_book_update: // src/Entity/Book use App\Form\BookType; -use Sylius\Component\Resource\Annotation\SyliusRoute; +use Sylius\Resource\Annotation\SyliusRoute; #[SyliusRoute( name: 'app_book_update', diff --git a/phpstan.neon b/phpstan.neon index 65d666421..818cb46cc 100644 --- a/phpstan.neon +++ b/phpstan.neon @@ -23,6 +23,7 @@ parameters: - %currentWorkingDirectory%/src/Bundle/Routing/Configuration.php - %currentWorkingDirectory%/src/Bundle/spec/* - %currentWorkingDirectory%/src/Bundle/Tests/* + - %currentWorkingDirectory%/src/Component/Annotation/* - %currentWorkingDirectory%/src/Component/Reflection/ClassReflection.php - %currentWorkingDirectory%/src/Component/spec/* - %currentWorkingDirectory%/src/Component/vendor/* diff --git a/psalm.xml b/psalm.xml index ba9dcc9aa..d7abfab69 100644 --- a/psalm.xml +++ b/psalm.xml @@ -183,6 +183,7 @@ + diff --git a/src/Bundle/Routing/CrudRoutesAttributesLoader.php b/src/Bundle/Routing/CrudRoutesAttributesLoader.php index 131517a21..9e38f0809 100644 --- a/src/Bundle/Routing/CrudRoutesAttributesLoader.php +++ b/src/Bundle/Routing/CrudRoutesAttributesLoader.php @@ -13,8 +13,8 @@ namespace Sylius\Bundle\ResourceBundle\Routing; -use Sylius\Component\Resource\Annotation\SyliusCrudRoutes; use Sylius\Component\Resource\Reflection\ClassReflection; +use Sylius\Resource\Annotation\SyliusCrudRoutes; use Symfony\Bundle\FrameworkBundle\Routing\RouteLoaderInterface; use Symfony\Component\Routing\RouteCollection; use Symfony\Component\Yaml\Yaml; diff --git a/src/Bundle/Routing/RouteAttributesFactory.php b/src/Bundle/Routing/RouteAttributesFactory.php index 3e92bd3eb..5677a0554 100644 --- a/src/Bundle/Routing/RouteAttributesFactory.php +++ b/src/Bundle/Routing/RouteAttributesFactory.php @@ -13,8 +13,8 @@ namespace Sylius\Bundle\ResourceBundle\Routing; -use Sylius\Component\Resource\Annotation\SyliusRoute; use Sylius\Component\Resource\Reflection\ClassReflection; +use Sylius\Resource\Annotation\SyliusRoute; use Symfony\Component\Routing\Route; use Symfony\Component\Routing\RouteCollection; use Webmozart\Assert\Assert; diff --git a/src/Component/Annotation/SyliusCrudRoutes.php b/src/Component/Annotation/SyliusCrudRoutes.php index b82de7543..47d42d839 100644 --- a/src/Component/Annotation/SyliusCrudRoutes.php +++ b/src/Component/Annotation/SyliusCrudRoutes.php @@ -13,70 +13,11 @@ namespace Sylius\Component\Resource\Annotation; -#[\Attribute(\Attribute::TARGET_CLASS | \Attribute::IS_REPEATABLE)] -final class SyliusCrudRoutes -{ - public ?string $alias = null; +class_exists(\Sylius\Resource\Annotation\SyliusCrudRoutes::class); - public ?string $path = null; - - public ?string $identifier = null; - - public ?array $criteria = null; - - public ?bool $filterable = null; - - public ?string $form = null; - - public ?string $serializationVersion = null; - - public ?string $section = null; - - public ?string $redirect = null; - - public ?string $templates = null; - - public ?string $grid = null; - - public ?bool $permission = null; - - public ?array $except = null; - - public ?array $only = null; - - public ?array $vars = null; - - public function __construct( - ?string $alias = null, - ?string $path = null, - ?string $identifier = null, - ?array $criteria = null, - ?bool $filterable = null, - ?string $form = null, - ?string $serializationVersion = null, - ?string $section = null, - ?string $redirect = null, - ?string $templates = null, - ?string $grid = null, - ?bool $permission = null, - ?array $except = null, - ?array $only = null, - ?array $vars = null, - ) { - $this->alias = $alias; - $this->path = $path; - $this->identifier = $identifier; - $this->criteria = $criteria; - $this->filterable = $filterable; - $this->form = $form; - $this->serializationVersion = $serializationVersion; - $this->section = $section; - $this->redirect = $redirect; - $this->templates = $templates; - $this->grid = $grid; - $this->permission = $permission; - $this->except = $except; - $this->only = $only; - $this->vars = $vars; +if (false) { + #[\Attribute(\Attribute::TARGET_CLASS | \Attribute::IS_REPEATABLE)] + final class SyliusCrudRoutes extends \Sylius\Resource\Annotation\SyliusCrudRoutes + { } } diff --git a/src/Component/Annotation/SyliusRoute.php b/src/Component/Annotation/SyliusRoute.php index dd4fe113b..b936ddcb8 100644 --- a/src/Component/Annotation/SyliusRoute.php +++ b/src/Component/Annotation/SyliusRoute.php @@ -13,34 +13,11 @@ namespace Sylius\Component\Resource\Annotation; -#[\Attribute(\Attribute::TARGET_CLASS | \Attribute::IS_REPEATABLE)] -final class SyliusRoute -{ - public function __construct( - public ?string $name = null, - public ?string $path = null, - public ?array $methods = null, - public ?string $controller = null, - public ?string $template = null, - public ?array $repository = null, - public ?array $criteria = null, - public ?array $serializationGroups = null, - public ?string $serializationVersion = null, - public ?array $requirements = null, - public ?array $options = null, - public ?string $host = null, - public ?array $schemes = null, - public ?int $priority = null, - public ?array $vars = null, - public string | array | null $form = null, - public ?string $section = null, - public ?bool $permission = null, - public ?string $grid = null, - public ?bool $csrfProtection = null, - public string | array | null $redirect = null, - public ?array $stateMachine = null, - public ?string $event = null, - public ?bool $returnContent = null, - ) { +class_exists(\Sylius\Resource\Annotation\SyliusRoute::class); + +if (false) { + #[\Attribute(\Attribute::TARGET_CLASS | \Attribute::IS_REPEATABLE)] + final class SyliusRoute extends \Sylius\Resource\Annotation\SyliusRoute + { } } diff --git a/src/Component/Tests/Reflection/ClassReflectionTest.php b/src/Component/Tests/Reflection/ClassReflectionTest.php index a9740900f..6b1f4f7d1 100644 --- a/src/Component/Tests/Reflection/ClassReflectionTest.php +++ b/src/Component/Tests/Reflection/ClassReflectionTest.php @@ -17,12 +17,12 @@ use App\Entity\Route\ShowBook; use App\Entity\Route\ShowBookWithPriority; use PHPUnit\Framework\TestCase; -use Sylius\Component\Resource\Annotation\SyliusCrudRoutes; -use Sylius\Component\Resource\Annotation\SyliusRoute; use Sylius\Component\Resource\Reflection\ClassReflection; use Sylius\Component\Resource\Tests\Dummy\DummyClassOne; use Sylius\Component\Resource\Tests\Dummy\DummyClassTwo; use Sylius\Component\Resource\Tests\Dummy\TraitPass; +use Sylius\Resource\Annotation\SyliusCrudRoutes; +use Sylius\Resource\Annotation\SyliusRoute; final class ClassReflectionTest extends TestCase { diff --git a/src/Component/src/Annotation/SyliusCrudRoutes.php b/src/Component/src/Annotation/SyliusCrudRoutes.php new file mode 100644 index 000000000..d350fd49c --- /dev/null +++ b/src/Component/src/Annotation/SyliusCrudRoutes.php @@ -0,0 +1,84 @@ +alias = $alias; + $this->path = $path; + $this->identifier = $identifier; + $this->criteria = $criteria; + $this->filterable = $filterable; + $this->form = $form; + $this->serializationVersion = $serializationVersion; + $this->section = $section; + $this->redirect = $redirect; + $this->templates = $templates; + $this->grid = $grid; + $this->permission = $permission; + $this->except = $except; + $this->only = $only; + $this->vars = $vars; + } +} + +class_alias(SyliusCrudRoutes::class, \Sylius\Component\Resource\Annotation\SyliusCrudRoutes::class); diff --git a/src/Component/src/Annotation/SyliusRoute.php b/src/Component/src/Annotation/SyliusRoute.php new file mode 100644 index 000000000..6dd882263 --- /dev/null +++ b/src/Component/src/Annotation/SyliusRoute.php @@ -0,0 +1,48 @@ +