From f26eaba7beccf2ff7b6730e3cdccdd10ffcc6c40 Mon Sep 17 00:00:00 2001 From: Your Name Date: Sun, 17 Mar 2024 08:54:30 +0100 Subject: [PATCH 1/5] deptrac instalation --- .gitignore | 5 +++++ composer.json | 1 + composer.lock | 57 ++++++++++++++++++++++++++++++++++++++++++++++++++- deptrac.yaml | 30 +++++++++++++++++++++++++++ importmap.php | 3 +++ symfony.lock | 12 +++++++++++ 6 files changed, 107 insertions(+), 1 deletion(-) create mode 100644 deptrac.yaml diff --git a/.gitignore b/.gitignore index c51e38625..59a6ae8d2 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ +.idea /public/build/fonts/glyphicons-* /public/build/images/glyphicons-* @@ -22,3 +23,7 @@ /public/assets/ /assets/vendor ###< symfony/asset-mapper ### + +###> qossmic/deptrac-shim ### +/.deptrac.cache +###< qossmic/deptrac-shim ### diff --git a/composer.json b/composer.json index 69a0f9ead..8966b6905 100644 --- a/composer.json +++ b/composer.json @@ -56,6 +56,7 @@ "phpstan/phpstan": "^1.2", "phpstan/phpstan-doctrine": "^1.3", "phpstan/phpstan-symfony": "^1.2", + "qossmic/deptrac-shim": "^1.0", "symfony/browser-kit": "^7.0", "symfony/css-selector": "^7.0", "symfony/debug-bundle": "^7.0", diff --git a/composer.lock b/composer.lock index 221ca001d..99d1d64a6 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "0b3c251bfee5cd3e7eb00c85999b13ce", + "content-hash": "272755586a701b25e7e43ebc5ff798c9", "packages": [ { "name": "composer/semver", @@ -8508,6 +8508,61 @@ }, "time": "2024-01-10T21:54:42+00:00" }, + { + "name": "qossmic/deptrac-shim", + "version": "1.0.2", + "source": { + "type": "git", + "url": "https://github.com/qossmic/deptrac-shim.git", + "reference": "3179a2c4978654add865309e3c280ef3d60f0043" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/qossmic/deptrac-shim/zipball/3179a2c4978654add865309e3c280ef3d60f0043", + "reference": "3179a2c4978654add865309e3c280ef3d60f0043", + "shasum": "" + }, + "require": { + "ext-json": "*", + "ext-tokenizer": "*", + "ext-zlib": "*", + "php": "^8.1" + }, + "replace": { + "qossmic/deptrac": "self.version" + }, + "suggest": { + "ext-dom": "For using the JUnit output formatter" + }, + "bin": [ + "deptrac" + ], + "type": "library", + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Tim Glabisch" + }, + { + "name": "Simon Mönch", + "email": "simon.moench@qossmic.com" + }, + { + "name": "Denis Brumann", + "email": "denis.brumann@qossmic.com", + "role": "maintainer" + } + ], + "description": "deptrac phar distribution", + "support": { + "issues": "https://github.com/qossmic/deptrac-shim/issues", + "source": "https://github.com/qossmic/deptrac-shim/tree/1.0.2" + }, + "time": "2022-12-02T11:47:53+00:00" + }, { "name": "symfony/browser-kit", "version": "v7.0.3", diff --git a/deptrac.yaml b/deptrac.yaml new file mode 100644 index 000000000..a96bbd0ee --- /dev/null +++ b/deptrac.yaml @@ -0,0 +1,30 @@ +parameters: + paths: + - ./src + exclude_files: + - '#.*test.*#' + layers: + - + name: Controller + collectors: + - + type: className + regex: .*Controller.* + - + name: Repository + collectors: + - + type: className + regex: .*Repository.* + - + name: Service + collectors: + - + type: className + regex: .*Service.* + ruleset: + Controller: + - Service + Service: + - Repository + Repository: diff --git a/importmap.php b/importmap.php index d8931af23..16d0c0b06 100644 --- a/importmap.php +++ b/importmap.php @@ -112,4 +112,7 @@ 'bootstrap-tagsinput' => [ 'version' => '0.7.1', ], + '@symfony/ux-live-component' => [ + 'path' => './vendor/symfony/ux-live-component/assets/dist/live_controller.js', + ], ]; diff --git a/symfony.lock b/symfony.lock index 2c32e8a58..dc09c408a 100644 --- a/symfony.lock +++ b/symfony.lock @@ -149,6 +149,18 @@ "psr/log": { "version": "1.1.4" }, + "qossmic/deptrac-shim": { + "version": "1.0", + "recipe": { + "repo": "github.com/symfony/recipes-contrib", + "branch": "main", + "version": "0.19", + "ref": "3c3daab46226c37fc14e10faf81df737a3039d96" + }, + "files": [ + "deptrac.yaml" + ] + }, "symfony/apache-pack": { "version": "1.0", "recipe": { From 42de6f022ca5dc91f7f1fdf78420538e40f95d12 Mon Sep 17 00:00:00 2001 From: Your Name Date: Sun, 17 Mar 2024 11:31:02 +0100 Subject: [PATCH 2/5] deptrac layers --- deptrac.yaml | 41 ++++++++++++++++++++++++----------------- 1 file changed, 24 insertions(+), 17 deletions(-) diff --git a/deptrac.yaml b/deptrac.yaml index a96bbd0ee..236d2d222 100644 --- a/deptrac.yaml +++ b/deptrac.yaml @@ -1,30 +1,37 @@ +imports: + - deptrac.baseline.yaml parameters: paths: - ./src exclude_files: - '#.*test.*#' layers: - - - name: Controller + - name: Controller collectors: - - - type: className - regex: .*Controller.* - - - name: Repository + - type: className + regex: App\\Controller.* + - name: Command collectors: - - - type: className - regex: .*Repository.* - - - name: Service + - type: className + regex: App\\Command.* + - name: Persistence collectors: - - - type: className - regex: .*Service.* + - type: className + regex: App\\(Entity|Repository|Pagination).* + - name: Service + collectors: + - type: className + regex: App\\(Event|EventSubscriber|Form|Security|Utils).* ruleset: Controller: - Service + Command: + - Service Service: - - Repository - Repository: + - Persistence + Persistence: + formatters: + graphviz: + hidden_layers: [] + groups: [] + point_to_groups: false From ff9f3db5ee733b17d0b5ff7a623dd54f2d549e3b Mon Sep 17 00:00:00 2001 From: Your Name Date: Sun, 17 Mar 2024 11:31:34 +0100 Subject: [PATCH 3/5] deptrac baseline --- deptrac.baseline.yaml | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 deptrac.baseline.yaml diff --git a/deptrac.baseline.yaml b/deptrac.baseline.yaml new file mode 100644 index 000000000..ae9c04366 --- /dev/null +++ b/deptrac.baseline.yaml @@ -0,0 +1,25 @@ +deptrac: + skip_violations: + App\Command\AddUserCommand: + - App\Entity\User + - App\Repository\UserRepository + App\Command\DeleteUserCommand: + - App\Entity\User + - App\Repository\UserRepository + App\Command\ListUsersCommand: + - App\Entity\User + - App\Repository\UserRepository + App\Controller\Admin\BlogController: + - App\Entity\Post + - App\Entity\User + - App\Repository\PostRepository + App\Controller\BlogController: + - App\Entity\Comment + - App\Entity\Post + - App\Entity\User + - App\Repository\PostRepository + - App\Repository\TagRepository + App\Controller\SecurityController: + - App\Entity\User + App\Controller\UserController: + - App\Entity\User From a47ec1da3f813f119b0ebb00732ecc22c0bc8f5b Mon Sep 17 00:00:00 2001 From: Your Name Date: Sun, 17 Mar 2024 12:22:13 +0100 Subject: [PATCH 4/5] deptrac security module --- deptrac_security.yaml | 67 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 deptrac_security.yaml diff --git a/deptrac_security.yaml b/deptrac_security.yaml new file mode 100644 index 000000000..33a00ae57 --- /dev/null +++ b/deptrac_security.yaml @@ -0,0 +1,67 @@ +#deptracimports: +# - deptrac.baseline.yaml +parameters: + paths: + - ./src + exclude_files: + - '#.*test.*#' + layers: + - name: SecurityModule_Controller + collectors: + - type: className + regex: App\\Controller\\(SecurityController|UserController) + - name: SecurityModule_Command + collectors: + - type: className + regex: App\\Command\\(AddUserCommand|DeleteUserCommand|ListUsersCommand) + - name: SecurityModule_Persistence + collectors: + - type: className + regex: App\\(Entity|Repository)\\(User|UserRepository) + - name: SecurityModule_Service + collectors: + - type: className + regex: App\\(Form)\\(ChangePasswordType|UserType) + - name: Shared + collectors: + - type: className + regex: App\\Utils.* + - name: System + collectors: + - type: bool + must: + - type: className + regex: App\\.* + must_not: + - type: layer + layer: SecurityModule_Controller + - type: layer + layer: SecurityModule_Command + - type: layer + layer: SecurityModule_Persistence + - type: layer + layer: SecurityModule_Service + - type: layer + layer: Shared + - type: className + regex: App\\DataFixtures\\.* + ruleset: + SecurityModule_Controller: + - SecurityModule_Persistence + - SecurityModule_Service + SecurityModule_Command: + - SecurityModule_Persistence + - Shared + SecurityModule_Service: + - SecurityModule_Persistence + SecurityModule_Persistence: + formatters: + graphviz: + hidden_layers: [] + groups: + SecurityModule: + - SecurityModule_Controller + - SecurityModule_Command + - SecurityModule_Persistence + - SecurityModule_Service + point_to_groups: false \ No newline at end of file From a9152cc0b0428ebf6fc1728f534c8344d56f0351 Mon Sep 17 00:00:00 2001 From: Your Name Date: Sun, 17 Mar 2024 12:55:50 +0100 Subject: [PATCH 5/5] layers renaming --- deptrac_security.yaml | 43 ++++++++++++++++++------------------------- 1 file changed, 18 insertions(+), 25 deletions(-) diff --git a/deptrac_security.yaml b/deptrac_security.yaml index 33a00ae57..1fe50d8c3 100644 --- a/deptrac_security.yaml +++ b/deptrac_security.yaml @@ -6,19 +6,15 @@ parameters: exclude_files: - '#.*test.*#' layers: - - name: SecurityModule_Controller + - name: ControllersCommands collectors: - type: className - regex: App\\Controller\\(SecurityController|UserController) - - name: SecurityModule_Command - collectors: - - type: className - regex: App\\Command\\(AddUserCommand|DeleteUserCommand|ListUsersCommand) - - name: SecurityModule_Persistence + regex: App\\(Controller|Command)\\(SecurityController|UserController|AddUserCommand|DeleteUserCommand|ListUsersCommand) + - name: Persistence collectors: - type: className regex: App\\(Entity|Repository)\\(User|UserRepository) - - name: SecurityModule_Service + - name: Service collectors: - type: className regex: App\\(Form)\\(ChangePasswordType|UserType) @@ -34,34 +30,31 @@ parameters: regex: App\\.* must_not: - type: layer - layer: SecurityModule_Controller - - type: layer - layer: SecurityModule_Command + layer: ControllersCommands - type: layer - layer: SecurityModule_Persistence + layer: Persistence - type: layer - layer: SecurityModule_Service + layer: Service - type: layer layer: Shared - type: className regex: App\\DataFixtures\\.* ruleset: - SecurityModule_Controller: - - SecurityModule_Persistence - - SecurityModule_Service - SecurityModule_Command: - - SecurityModule_Persistence + ControllersCommands: + - Persistence + - Service - Shared - SecurityModule_Service: - - SecurityModule_Persistence - SecurityModule_Persistence: + Service: + - Persistence + Persistence: + Shared: + System: formatters: graphviz: hidden_layers: [] groups: SecurityModule: - - SecurityModule_Controller - - SecurityModule_Command - - SecurityModule_Persistence - - SecurityModule_Service + - ControllersCommands + - Persistence + - Service point_to_groups: false \ No newline at end of file