diff --git a/.env.test b/.env.test
new file mode 100644
index 0000000..9e7162f
--- /dev/null
+++ b/.env.test
@@ -0,0 +1,6 @@
+# define your env variables for the test env here
+KERNEL_CLASS='App\Kernel'
+APP_SECRET='$ecretf0rt3st'
+SYMFONY_DEPRECATIONS_HELPER=999999
+PANTHER_APP_ENV=panther
+PANTHER_ERROR_SCREENSHOT_DIR=./var/error-screenshots
diff --git a/.gitignore b/.gitignore
index 0f84e54..bf7c500 100644
--- a/.gitignore
+++ b/.gitignore
@@ -18,3 +18,13 @@ config.js
/public/assets/
/assets/vendor/
###< symfony/asset-mapper ###
+
+###> symfony/phpunit-bridge ###
+.phpunit.result.cache
+/phpunit.xml
+###< symfony/phpunit-bridge ###
+
+###> phpunit/phpunit ###
+/phpunit.xml
+.phpunit.result.cache
+###< phpunit/phpunit ###
diff --git a/assets/bim.js b/assets/bim.js
index 1b9e113..4a7d2bb 100644
--- a/assets/bim.js
+++ b/assets/bim.js
@@ -7,6 +7,7 @@ import * as WEBIFC from 'web-ifc';
* @namespace BIM
*/
const BIM = {};
+BIM.clipper = undefined;
/**
*
@@ -52,7 +53,7 @@ BIM.activateClipper = function () {
clipper.enabled = true;
clipper.create(this.world);
clipper.visible = true;
- this.clipper = clipper;
+ BIM.clipper = clipper;
}
/**
* Delete a selected clipping plane
diff --git a/assets/controllers/clipper_controller.js b/assets/controllers/clipper_controller.js
new file mode 100644
index 0000000..7612396
--- /dev/null
+++ b/assets/controllers/clipper_controller.js
@@ -0,0 +1,22 @@
+import { Controller } from "@hotwired/stimulus"
+import * as THREE from "three"
+import BIM from '../bim.js';
+
+export default class extends Controller {
+ static targets = ['hex'];
+
+ color(event) {
+ let color = event.target.value;
+ this.hexTarget.querySelector('span').textContent = color;
+ BIM.clipper.config.color = new THREE.Color(color);
+ }
+
+ size(event) {
+ BIM.clipper.config.size = event.target.value
+ }
+
+ deleteAll() {
+ BIM.clipper.deleteAll();
+ }
+}
+
diff --git a/assets/controllers/dropdown_controller.js b/assets/controllers/dropdown_controller.js
new file mode 100644
index 0000000..39ea1d5
--- /dev/null
+++ b/assets/controllers/dropdown_controller.js
@@ -0,0 +1,26 @@
+import { Controller } from '@hotwired/stimulus';
+
+/**
+ * Activate a dropdown menu and toggle icon
+ * [template: data_entry.html.twig]
+ */
+export default class extends Controller {
+ static targets = ['drop', 'caret'];
+
+ toggle() {
+ // Show / hide dropdown
+ this.dropTarget.classList.toggle('is-active');
+ const caretTarget = this.caretTarget;
+ const caretState = caretTarget.className.includes('down') ? 'down' : 'up';
+ const caretAction = {
+ 'down': function(target) {
+ target.className = target.className.replace('down', 'up');
+ },
+ 'up': function(target) {
+ target.className = target.className.replace('up', 'down');
+ }
+ };
+
+ caretAction[caretState](this.caretTarget);
+ }
+}
diff --git a/bin/phpunit b/bin/phpunit
new file mode 100755
index 0000000..692bacc
--- /dev/null
+++ b/bin/phpunit
@@ -0,0 +1,23 @@
+#!/usr/bin/env php
+= 80000) {
+ require dirname(__DIR__).'/vendor/phpunit/phpunit/phpunit';
+ } else {
+ define('PHPUNIT_COMPOSER_INSTALL', dirname(__DIR__).'/vendor/autoload.php');
+ require PHPUNIT_COMPOSER_INSTALL;
+ PHPUnit\TextUI\Command::main();
+ }
+} else {
+ if (!is_file(dirname(__DIR__).'/vendor/symfony/phpunit-bridge/bin/simple-phpunit.php')) {
+ echo "Unable to find the `simple-phpunit.php` script in `vendor/symfony/phpunit-bridge/bin/`.\n";
+ exit(1);
+ }
+
+ require dirname(__DIR__).'/vendor/symfony/phpunit-bridge/bin/simple-phpunit.php';
+}
diff --git a/composer.json b/composer.json
index be195e8..35a8db5 100644
--- a/composer.json
+++ b/composer.json
@@ -84,7 +84,11 @@
}
},
"require-dev": {
+ "phpunit/phpunit": "^9.5",
+ "symfony/browser-kit": "7.1.*",
+ "symfony/css-selector": "7.1.*",
"symfony/maker-bundle": "^1.61",
+ "symfony/phpunit-bridge": "^7.2",
"symfony/stopwatch": "7.1.*",
"symfony/web-profiler-bundle": "7.1.*"
}
diff --git a/composer.lock b/composer.lock
index 84b441b..635e652 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": "ab952aff61d9cf59cf47f3c004a77db3",
+ "content-hash": "4e98bff9162121f1c4fb1d257c7b7411",
"packages": [
{
"name": "api-platform/doctrine-common",
@@ -7629,6 +7629,133 @@
}
],
"packages-dev": [
+ {
+ "name": "masterminds/html5",
+ "version": "2.9.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/Masterminds/html5-php.git",
+ "reference": "f5ac2c0b0a2eefca70b2ce32a5809992227e75a6"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/Masterminds/html5-php/zipball/f5ac2c0b0a2eefca70b2ce32a5809992227e75a6",
+ "reference": "f5ac2c0b0a2eefca70b2ce32a5809992227e75a6",
+ "shasum": ""
+ },
+ "require": {
+ "ext-dom": "*",
+ "php": ">=5.3.0"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^4.8.35 || ^5.7.21 || ^6 || ^7 || ^8 || ^9"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.7-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Masterminds\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Matt Butcher",
+ "email": "technosophos@gmail.com"
+ },
+ {
+ "name": "Matt Farina",
+ "email": "matt@mattfarina.com"
+ },
+ {
+ "name": "Asmir Mustafic",
+ "email": "goetas@gmail.com"
+ }
+ ],
+ "description": "An HTML5 parser and serializer.",
+ "homepage": "http://masterminds.github.io/html5-php",
+ "keywords": [
+ "HTML5",
+ "dom",
+ "html",
+ "parser",
+ "querypath",
+ "serializer",
+ "xml"
+ ],
+ "support": {
+ "issues": "https://github.com/Masterminds/html5-php/issues",
+ "source": "https://github.com/Masterminds/html5-php/tree/2.9.0"
+ },
+ "time": "2024-03-31T07:05:07+00:00"
+ },
+ {
+ "name": "myclabs/deep-copy",
+ "version": "1.13.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/myclabs/DeepCopy.git",
+ "reference": "024473a478be9df5fdaca2c793f2232fe788e414"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/024473a478be9df5fdaca2c793f2232fe788e414",
+ "reference": "024473a478be9df5fdaca2c793f2232fe788e414",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.1 || ^8.0"
+ },
+ "conflict": {
+ "doctrine/collections": "<1.6.8",
+ "doctrine/common": "<2.13.3 || >=3 <3.2.2"
+ },
+ "require-dev": {
+ "doctrine/collections": "^1.6.8",
+ "doctrine/common": "^2.13.3 || ^3.2.2",
+ "phpspec/prophecy": "^1.10",
+ "phpunit/phpunit": "^7.5.20 || ^8.5.23 || ^9.5.13"
+ },
+ "type": "library",
+ "autoload": {
+ "files": [
+ "src/DeepCopy/deep_copy.php"
+ ],
+ "psr-4": {
+ "DeepCopy\\": "src/DeepCopy/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "description": "Create deep copies (clones) of your objects",
+ "keywords": [
+ "clone",
+ "copy",
+ "duplicate",
+ "object",
+ "object graph"
+ ],
+ "support": {
+ "issues": "https://github.com/myclabs/DeepCopy/issues",
+ "source": "https://github.com/myclabs/DeepCopy/tree/1.13.0"
+ },
+ "funding": [
+ {
+ "url": "https://tidelift.com/funding/github/packagist/myclabs/deep-copy",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2025-02-12T12:17:51+00:00"
+ },
{
"name": "nikic/php-parser",
"version": "v5.4.0",
@@ -7687,6 +7814,1709 @@
},
"time": "2024-12-30T11:07:19+00:00"
},
+ {
+ "name": "phar-io/manifest",
+ "version": "2.0.4",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/phar-io/manifest.git",
+ "reference": "54750ef60c58e43759730615a392c31c80e23176"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/phar-io/manifest/zipball/54750ef60c58e43759730615a392c31c80e23176",
+ "reference": "54750ef60c58e43759730615a392c31c80e23176",
+ "shasum": ""
+ },
+ "require": {
+ "ext-dom": "*",
+ "ext-libxml": "*",
+ "ext-phar": "*",
+ "ext-xmlwriter": "*",
+ "phar-io/version": "^3.0.1",
+ "php": "^7.2 || ^8.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.0.x-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Arne Blankerts",
+ "email": "arne@blankerts.de",
+ "role": "Developer"
+ },
+ {
+ "name": "Sebastian Heuer",
+ "email": "sebastian@phpeople.de",
+ "role": "Developer"
+ },
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "Developer"
+ }
+ ],
+ "description": "Component for reading phar.io manifest information from a PHP Archive (PHAR)",
+ "support": {
+ "issues": "https://github.com/phar-io/manifest/issues",
+ "source": "https://github.com/phar-io/manifest/tree/2.0.4"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/theseer",
+ "type": "github"
+ }
+ ],
+ "time": "2024-03-03T12:33:53+00:00"
+ },
+ {
+ "name": "phar-io/version",
+ "version": "3.2.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/phar-io/version.git",
+ "reference": "4f7fd7836c6f332bb2933569e566a0d6c4cbed74"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/phar-io/version/zipball/4f7fd7836c6f332bb2933569e566a0d6c4cbed74",
+ "reference": "4f7fd7836c6f332bb2933569e566a0d6c4cbed74",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.2 || ^8.0"
+ },
+ "type": "library",
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Arne Blankerts",
+ "email": "arne@blankerts.de",
+ "role": "Developer"
+ },
+ {
+ "name": "Sebastian Heuer",
+ "email": "sebastian@phpeople.de",
+ "role": "Developer"
+ },
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "Developer"
+ }
+ ],
+ "description": "Library for handling version information and constraints",
+ "support": {
+ "issues": "https://github.com/phar-io/version/issues",
+ "source": "https://github.com/phar-io/version/tree/3.2.1"
+ },
+ "time": "2022-02-21T01:04:05+00:00"
+ },
+ {
+ "name": "phpunit/php-code-coverage",
+ "version": "9.2.32",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/php-code-coverage.git",
+ "reference": "85402a822d1ecf1db1096959413d35e1c37cf1a5"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/85402a822d1ecf1db1096959413d35e1c37cf1a5",
+ "reference": "85402a822d1ecf1db1096959413d35e1c37cf1a5",
+ "shasum": ""
+ },
+ "require": {
+ "ext-dom": "*",
+ "ext-libxml": "*",
+ "ext-xmlwriter": "*",
+ "nikic/php-parser": "^4.19.1 || ^5.1.0",
+ "php": ">=7.3",
+ "phpunit/php-file-iterator": "^3.0.6",
+ "phpunit/php-text-template": "^2.0.4",
+ "sebastian/code-unit-reverse-lookup": "^2.0.3",
+ "sebastian/complexity": "^2.0.3",
+ "sebastian/environment": "^5.1.5",
+ "sebastian/lines-of-code": "^1.0.4",
+ "sebastian/version": "^3.0.2",
+ "theseer/tokenizer": "^1.2.3"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.6"
+ },
+ "suggest": {
+ "ext-pcov": "PHP extension that provides line coverage",
+ "ext-xdebug": "PHP extension that provides line coverage as well as branch and path coverage"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "9.2.x-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "lead"
+ }
+ ],
+ "description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.",
+ "homepage": "https://github.com/sebastianbergmann/php-code-coverage",
+ "keywords": [
+ "coverage",
+ "testing",
+ "xunit"
+ ],
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues",
+ "security": "https://github.com/sebastianbergmann/php-code-coverage/security/policy",
+ "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.32"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2024-08-22T04:23:01+00:00"
+ },
+ {
+ "name": "phpunit/php-file-iterator",
+ "version": "3.0.6",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/php-file-iterator.git",
+ "reference": "cf1c2e7c203ac650e352f4cc675a7021e7d1b3cf"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/cf1c2e7c203ac650e352f4cc675a7021e7d1b3cf",
+ "reference": "cf1c2e7c203ac650e352f4cc675a7021e7d1b3cf",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.3"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.3"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "3.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "lead"
+ }
+ ],
+ "description": "FilterIterator implementation that filters files based on a list of suffixes.",
+ "homepage": "https://github.com/sebastianbergmann/php-file-iterator/",
+ "keywords": [
+ "filesystem",
+ "iterator"
+ ],
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/php-file-iterator/issues",
+ "source": "https://github.com/sebastianbergmann/php-file-iterator/tree/3.0.6"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2021-12-02T12:48:52+00:00"
+ },
+ {
+ "name": "phpunit/php-invoker",
+ "version": "3.1.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/php-invoker.git",
+ "reference": "5a10147d0aaf65b58940a0b72f71c9ac0423cc67"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/php-invoker/zipball/5a10147d0aaf65b58940a0b72f71c9ac0423cc67",
+ "reference": "5a10147d0aaf65b58940a0b72f71c9ac0423cc67",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.3"
+ },
+ "require-dev": {
+ "ext-pcntl": "*",
+ "phpunit/phpunit": "^9.3"
+ },
+ "suggest": {
+ "ext-pcntl": "*"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "3.1-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "lead"
+ }
+ ],
+ "description": "Invoke callables with a timeout",
+ "homepage": "https://github.com/sebastianbergmann/php-invoker/",
+ "keywords": [
+ "process"
+ ],
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/php-invoker/issues",
+ "source": "https://github.com/sebastianbergmann/php-invoker/tree/3.1.1"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2020-09-28T05:58:55+00:00"
+ },
+ {
+ "name": "phpunit/php-text-template",
+ "version": "2.0.4",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/php-text-template.git",
+ "reference": "5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28",
+ "reference": "5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.3"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.3"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "lead"
+ }
+ ],
+ "description": "Simple template engine.",
+ "homepage": "https://github.com/sebastianbergmann/php-text-template/",
+ "keywords": [
+ "template"
+ ],
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/php-text-template/issues",
+ "source": "https://github.com/sebastianbergmann/php-text-template/tree/2.0.4"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2020-10-26T05:33:50+00:00"
+ },
+ {
+ "name": "phpunit/php-timer",
+ "version": "5.0.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/php-timer.git",
+ "reference": "5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2",
+ "reference": "5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.3"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.3"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "5.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "lead"
+ }
+ ],
+ "description": "Utility class for timing",
+ "homepage": "https://github.com/sebastianbergmann/php-timer/",
+ "keywords": [
+ "timer"
+ ],
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/php-timer/issues",
+ "source": "https://github.com/sebastianbergmann/php-timer/tree/5.0.3"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2020-10-26T13:16:10+00:00"
+ },
+ {
+ "name": "phpunit/phpunit",
+ "version": "9.6.22",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/phpunit.git",
+ "reference": "f80235cb4d3caa59ae09be3adf1ded27521d1a9c"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/f80235cb4d3caa59ae09be3adf1ded27521d1a9c",
+ "reference": "f80235cb4d3caa59ae09be3adf1ded27521d1a9c",
+ "shasum": ""
+ },
+ "require": {
+ "doctrine/instantiator": "^1.5.0 || ^2",
+ "ext-dom": "*",
+ "ext-json": "*",
+ "ext-libxml": "*",
+ "ext-mbstring": "*",
+ "ext-xml": "*",
+ "ext-xmlwriter": "*",
+ "myclabs/deep-copy": "^1.12.1",
+ "phar-io/manifest": "^2.0.4",
+ "phar-io/version": "^3.2.1",
+ "php": ">=7.3",
+ "phpunit/php-code-coverage": "^9.2.32",
+ "phpunit/php-file-iterator": "^3.0.6",
+ "phpunit/php-invoker": "^3.1.1",
+ "phpunit/php-text-template": "^2.0.4",
+ "phpunit/php-timer": "^5.0.3",
+ "sebastian/cli-parser": "^1.0.2",
+ "sebastian/code-unit": "^1.0.8",
+ "sebastian/comparator": "^4.0.8",
+ "sebastian/diff": "^4.0.6",
+ "sebastian/environment": "^5.1.5",
+ "sebastian/exporter": "^4.0.6",
+ "sebastian/global-state": "^5.0.7",
+ "sebastian/object-enumerator": "^4.0.4",
+ "sebastian/resource-operations": "^3.0.4",
+ "sebastian/type": "^3.2.1",
+ "sebastian/version": "^3.0.2"
+ },
+ "suggest": {
+ "ext-soap": "To be able to generate mocks based on WSDL files",
+ "ext-xdebug": "PHP extension that provides line coverage as well as branch and path coverage"
+ },
+ "bin": [
+ "phpunit"
+ ],
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "9.6-dev"
+ }
+ },
+ "autoload": {
+ "files": [
+ "src/Framework/Assert/Functions.php"
+ ],
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "lead"
+ }
+ ],
+ "description": "The PHP Unit Testing framework.",
+ "homepage": "https://phpunit.de/",
+ "keywords": [
+ "phpunit",
+ "testing",
+ "xunit"
+ ],
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/phpunit/issues",
+ "security": "https://github.com/sebastianbergmann/phpunit/security/policy",
+ "source": "https://github.com/sebastianbergmann/phpunit/tree/9.6.22"
+ },
+ "funding": [
+ {
+ "url": "https://phpunit.de/sponsors.html",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/phpunit/phpunit",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2024-12-05T13:48:26+00:00"
+ },
+ {
+ "name": "sebastian/cli-parser",
+ "version": "1.0.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/cli-parser.git",
+ "reference": "2b56bea83a09de3ac06bb18b92f068e60cc6f50b"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/cli-parser/zipball/2b56bea83a09de3ac06bb18b92f068e60cc6f50b",
+ "reference": "2b56bea83a09de3ac06bb18b92f068e60cc6f50b",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.3"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.3"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "lead"
+ }
+ ],
+ "description": "Library for parsing CLI options",
+ "homepage": "https://github.com/sebastianbergmann/cli-parser",
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/cli-parser/issues",
+ "source": "https://github.com/sebastianbergmann/cli-parser/tree/1.0.2"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2024-03-02T06:27:43+00:00"
+ },
+ {
+ "name": "sebastian/code-unit",
+ "version": "1.0.8",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/code-unit.git",
+ "reference": "1fc9f64c0927627ef78ba436c9b17d967e68e120"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/code-unit/zipball/1fc9f64c0927627ef78ba436c9b17d967e68e120",
+ "reference": "1fc9f64c0927627ef78ba436c9b17d967e68e120",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.3"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.3"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "lead"
+ }
+ ],
+ "description": "Collection of value objects that represent the PHP code units",
+ "homepage": "https://github.com/sebastianbergmann/code-unit",
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/code-unit/issues",
+ "source": "https://github.com/sebastianbergmann/code-unit/tree/1.0.8"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2020-10-26T13:08:54+00:00"
+ },
+ {
+ "name": "sebastian/code-unit-reverse-lookup",
+ "version": "2.0.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git",
+ "reference": "ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5",
+ "reference": "ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.3"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.3"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de"
+ }
+ ],
+ "description": "Looks up which function or method a line of code belongs to",
+ "homepage": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/",
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/issues",
+ "source": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/tree/2.0.3"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2020-09-28T05:30:19+00:00"
+ },
+ {
+ "name": "sebastian/comparator",
+ "version": "4.0.8",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/comparator.git",
+ "reference": "fa0f136dd2334583309d32b62544682ee972b51a"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/fa0f136dd2334583309d32b62544682ee972b51a",
+ "reference": "fa0f136dd2334583309d32b62544682ee972b51a",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.3",
+ "sebastian/diff": "^4.0",
+ "sebastian/exporter": "^4.0"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.3"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "4.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de"
+ },
+ {
+ "name": "Jeff Welch",
+ "email": "whatthejeff@gmail.com"
+ },
+ {
+ "name": "Volker Dusch",
+ "email": "github@wallbash.com"
+ },
+ {
+ "name": "Bernhard Schussek",
+ "email": "bschussek@2bepublished.at"
+ }
+ ],
+ "description": "Provides the functionality to compare PHP values for equality",
+ "homepage": "https://github.com/sebastianbergmann/comparator",
+ "keywords": [
+ "comparator",
+ "compare",
+ "equality"
+ ],
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/comparator/issues",
+ "source": "https://github.com/sebastianbergmann/comparator/tree/4.0.8"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2022-09-14T12:41:17+00:00"
+ },
+ {
+ "name": "sebastian/complexity",
+ "version": "2.0.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/complexity.git",
+ "reference": "25f207c40d62b8b7aa32f5ab026c53561964053a"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/complexity/zipball/25f207c40d62b8b7aa32f5ab026c53561964053a",
+ "reference": "25f207c40d62b8b7aa32f5ab026c53561964053a",
+ "shasum": ""
+ },
+ "require": {
+ "nikic/php-parser": "^4.18 || ^5.0",
+ "php": ">=7.3"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.3"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "lead"
+ }
+ ],
+ "description": "Library for calculating the complexity of PHP code units",
+ "homepage": "https://github.com/sebastianbergmann/complexity",
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/complexity/issues",
+ "source": "https://github.com/sebastianbergmann/complexity/tree/2.0.3"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2023-12-22T06:19:30+00:00"
+ },
+ {
+ "name": "sebastian/diff",
+ "version": "4.0.6",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/diff.git",
+ "reference": "ba01945089c3a293b01ba9badc29ad55b106b0bc"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/ba01945089c3a293b01ba9badc29ad55b106b0bc",
+ "reference": "ba01945089c3a293b01ba9badc29ad55b106b0bc",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.3"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.3",
+ "symfony/process": "^4.2 || ^5"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "4.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de"
+ },
+ {
+ "name": "Kore Nordmann",
+ "email": "mail@kore-nordmann.de"
+ }
+ ],
+ "description": "Diff implementation",
+ "homepage": "https://github.com/sebastianbergmann/diff",
+ "keywords": [
+ "diff",
+ "udiff",
+ "unidiff",
+ "unified diff"
+ ],
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/diff/issues",
+ "source": "https://github.com/sebastianbergmann/diff/tree/4.0.6"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2024-03-02T06:30:58+00:00"
+ },
+ {
+ "name": "sebastian/environment",
+ "version": "5.1.5",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/environment.git",
+ "reference": "830c43a844f1f8d5b7a1f6d6076b784454d8b7ed"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/830c43a844f1f8d5b7a1f6d6076b784454d8b7ed",
+ "reference": "830c43a844f1f8d5b7a1f6d6076b784454d8b7ed",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.3"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.3"
+ },
+ "suggest": {
+ "ext-posix": "*"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "5.1-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de"
+ }
+ ],
+ "description": "Provides functionality to handle HHVM/PHP environments",
+ "homepage": "http://www.github.com/sebastianbergmann/environment",
+ "keywords": [
+ "Xdebug",
+ "environment",
+ "hhvm"
+ ],
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/environment/issues",
+ "source": "https://github.com/sebastianbergmann/environment/tree/5.1.5"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2023-02-03T06:03:51+00:00"
+ },
+ {
+ "name": "sebastian/exporter",
+ "version": "4.0.6",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/exporter.git",
+ "reference": "78c00df8f170e02473b682df15bfcdacc3d32d72"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/78c00df8f170e02473b682df15bfcdacc3d32d72",
+ "reference": "78c00df8f170e02473b682df15bfcdacc3d32d72",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.3",
+ "sebastian/recursion-context": "^4.0"
+ },
+ "require-dev": {
+ "ext-mbstring": "*",
+ "phpunit/phpunit": "^9.3"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "4.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de"
+ },
+ {
+ "name": "Jeff Welch",
+ "email": "whatthejeff@gmail.com"
+ },
+ {
+ "name": "Volker Dusch",
+ "email": "github@wallbash.com"
+ },
+ {
+ "name": "Adam Harvey",
+ "email": "aharvey@php.net"
+ },
+ {
+ "name": "Bernhard Schussek",
+ "email": "bschussek@gmail.com"
+ }
+ ],
+ "description": "Provides the functionality to export PHP variables for visualization",
+ "homepage": "https://www.github.com/sebastianbergmann/exporter",
+ "keywords": [
+ "export",
+ "exporter"
+ ],
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/exporter/issues",
+ "source": "https://github.com/sebastianbergmann/exporter/tree/4.0.6"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2024-03-02T06:33:00+00:00"
+ },
+ {
+ "name": "sebastian/global-state",
+ "version": "5.0.7",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/global-state.git",
+ "reference": "bca7df1f32ee6fe93b4d4a9abbf69e13a4ada2c9"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/bca7df1f32ee6fe93b4d4a9abbf69e13a4ada2c9",
+ "reference": "bca7df1f32ee6fe93b4d4a9abbf69e13a4ada2c9",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.3",
+ "sebastian/object-reflector": "^2.0",
+ "sebastian/recursion-context": "^4.0"
+ },
+ "require-dev": {
+ "ext-dom": "*",
+ "phpunit/phpunit": "^9.3"
+ },
+ "suggest": {
+ "ext-uopz": "*"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "5.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de"
+ }
+ ],
+ "description": "Snapshotting of global state",
+ "homepage": "http://www.github.com/sebastianbergmann/global-state",
+ "keywords": [
+ "global state"
+ ],
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/global-state/issues",
+ "source": "https://github.com/sebastianbergmann/global-state/tree/5.0.7"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2024-03-02T06:35:11+00:00"
+ },
+ {
+ "name": "sebastian/lines-of-code",
+ "version": "1.0.4",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/lines-of-code.git",
+ "reference": "e1e4a170560925c26d424b6a03aed157e7dcc5c5"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/lines-of-code/zipball/e1e4a170560925c26d424b6a03aed157e7dcc5c5",
+ "reference": "e1e4a170560925c26d424b6a03aed157e7dcc5c5",
+ "shasum": ""
+ },
+ "require": {
+ "nikic/php-parser": "^4.18 || ^5.0",
+ "php": ">=7.3"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.3"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "lead"
+ }
+ ],
+ "description": "Library for counting the lines of code in PHP source code",
+ "homepage": "https://github.com/sebastianbergmann/lines-of-code",
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/lines-of-code/issues",
+ "source": "https://github.com/sebastianbergmann/lines-of-code/tree/1.0.4"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2023-12-22T06:20:34+00:00"
+ },
+ {
+ "name": "sebastian/object-enumerator",
+ "version": "4.0.4",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/object-enumerator.git",
+ "reference": "5c9eeac41b290a3712d88851518825ad78f45c71"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/5c9eeac41b290a3712d88851518825ad78f45c71",
+ "reference": "5c9eeac41b290a3712d88851518825ad78f45c71",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.3",
+ "sebastian/object-reflector": "^2.0",
+ "sebastian/recursion-context": "^4.0"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.3"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "4.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de"
+ }
+ ],
+ "description": "Traverses array structures and object graphs to enumerate all referenced objects",
+ "homepage": "https://github.com/sebastianbergmann/object-enumerator/",
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/object-enumerator/issues",
+ "source": "https://github.com/sebastianbergmann/object-enumerator/tree/4.0.4"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2020-10-26T13:12:34+00:00"
+ },
+ {
+ "name": "sebastian/object-reflector",
+ "version": "2.0.4",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/object-reflector.git",
+ "reference": "b4f479ebdbf63ac605d183ece17d8d7fe49c15c7"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/b4f479ebdbf63ac605d183ece17d8d7fe49c15c7",
+ "reference": "b4f479ebdbf63ac605d183ece17d8d7fe49c15c7",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.3"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.3"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de"
+ }
+ ],
+ "description": "Allows reflection of object attributes, including inherited and non-public ones",
+ "homepage": "https://github.com/sebastianbergmann/object-reflector/",
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/object-reflector/issues",
+ "source": "https://github.com/sebastianbergmann/object-reflector/tree/2.0.4"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2020-10-26T13:14:26+00:00"
+ },
+ {
+ "name": "sebastian/recursion-context",
+ "version": "4.0.5",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/recursion-context.git",
+ "reference": "e75bd0f07204fec2a0af9b0f3cfe97d05f92efc1"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/e75bd0f07204fec2a0af9b0f3cfe97d05f92efc1",
+ "reference": "e75bd0f07204fec2a0af9b0f3cfe97d05f92efc1",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.3"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.3"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "4.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de"
+ },
+ {
+ "name": "Jeff Welch",
+ "email": "whatthejeff@gmail.com"
+ },
+ {
+ "name": "Adam Harvey",
+ "email": "aharvey@php.net"
+ }
+ ],
+ "description": "Provides functionality to recursively process PHP variables",
+ "homepage": "https://github.com/sebastianbergmann/recursion-context",
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/recursion-context/issues",
+ "source": "https://github.com/sebastianbergmann/recursion-context/tree/4.0.5"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2023-02-03T06:07:39+00:00"
+ },
+ {
+ "name": "sebastian/resource-operations",
+ "version": "3.0.4",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/resource-operations.git",
+ "reference": "05d5692a7993ecccd56a03e40cd7e5b09b1d404e"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/05d5692a7993ecccd56a03e40cd7e5b09b1d404e",
+ "reference": "05d5692a7993ecccd56a03e40cd7e5b09b1d404e",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.3"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "3.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de"
+ }
+ ],
+ "description": "Provides a list of PHP built-in functions that operate on resources",
+ "homepage": "https://www.github.com/sebastianbergmann/resource-operations",
+ "support": {
+ "source": "https://github.com/sebastianbergmann/resource-operations/tree/3.0.4"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2024-03-14T16:00:52+00:00"
+ },
+ {
+ "name": "sebastian/type",
+ "version": "3.2.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/type.git",
+ "reference": "75e2c2a32f5e0b3aef905b9ed0b179b953b3d7c7"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/75e2c2a32f5e0b3aef905b9ed0b179b953b3d7c7",
+ "reference": "75e2c2a32f5e0b3aef905b9ed0b179b953b3d7c7",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.3"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.5"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "3.2-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "lead"
+ }
+ ],
+ "description": "Collection of value objects that represent the types of the PHP type system",
+ "homepage": "https://github.com/sebastianbergmann/type",
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/type/issues",
+ "source": "https://github.com/sebastianbergmann/type/tree/3.2.1"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2023-02-03T06:13:03+00:00"
+ },
+ {
+ "name": "sebastian/version",
+ "version": "3.0.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/version.git",
+ "reference": "c6c1022351a901512170118436c764e473f6de8c"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/c6c1022351a901512170118436c764e473f6de8c",
+ "reference": "c6c1022351a901512170118436c764e473f6de8c",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.3"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "3.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "lead"
+ }
+ ],
+ "description": "Library that helps with managing the version number of Git-hosted PHP projects",
+ "homepage": "https://github.com/sebastianbergmann/version",
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/version/issues",
+ "source": "https://github.com/sebastianbergmann/version/tree/3.0.2"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2020-09-28T06:39:44+00:00"
+ },
+ {
+ "name": "symfony/browser-kit",
+ "version": "v7.1.6",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/browser-kit.git",
+ "reference": "714becc9ba9b20115ffededc58f6b7172dc394cf"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/browser-kit/zipball/714becc9ba9b20115ffededc58f6b7172dc394cf",
+ "reference": "714becc9ba9b20115ffededc58f6b7172dc394cf",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.2",
+ "symfony/dom-crawler": "^6.4|^7.0"
+ },
+ "require-dev": {
+ "symfony/css-selector": "^6.4|^7.0",
+ "symfony/http-client": "^6.4|^7.0",
+ "symfony/mime": "^6.4|^7.0",
+ "symfony/process": "^6.4|^7.0"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\BrowserKit\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Simulates the behavior of a web browser, allowing you to make requests, click on links and submit forms programmatically",
+ "homepage": "https://symfony.com",
+ "support": {
+ "source": "https://github.com/symfony/browser-kit/tree/v7.1.6"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2024-10-25T15:11:02+00:00"
+ },
+ {
+ "name": "symfony/css-selector",
+ "version": "v7.1.6",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/css-selector.git",
+ "reference": "4aa4f6b3d6749c14d3aa815eef8226632e7bbc66"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/css-selector/zipball/4aa4f6b3d6749c14d3aa815eef8226632e7bbc66",
+ "reference": "4aa4f6b3d6749c14d3aa815eef8226632e7bbc66",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.2"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\CssSelector\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Jean-François Simon",
+ "email": "jeanfrancois.simon@sensiolabs.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Converts CSS selectors to XPath expressions",
+ "homepage": "https://symfony.com",
+ "support": {
+ "source": "https://github.com/symfony/css-selector/tree/v7.1.6"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2024-09-25T14:20:29+00:00"
+ },
+ {
+ "name": "symfony/dom-crawler",
+ "version": "v7.1.11",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/dom-crawler.git",
+ "reference": "7361d8f7e7eecbca17efe68ca1ee677bf23cfe5a"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/dom-crawler/zipball/7361d8f7e7eecbca17efe68ca1ee677bf23cfe5a",
+ "reference": "7361d8f7e7eecbca17efe68ca1ee677bf23cfe5a",
+ "shasum": ""
+ },
+ "require": {
+ "masterminds/html5": "^2.6",
+ "php": ">=8.2",
+ "symfony/polyfill-ctype": "~1.8",
+ "symfony/polyfill-mbstring": "~1.0"
+ },
+ "require-dev": {
+ "symfony/css-selector": "^6.4|^7.0"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\DomCrawler\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Eases DOM navigation for HTML and XML documents",
+ "homepage": "https://symfony.com",
+ "support": {
+ "source": "https://github.com/symfony/dom-crawler/tree/v7.1.11"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2025-01-27T10:57:12+00:00"
+ },
{
"name": "symfony/maker-bundle",
"version": "v1.62.1",
@@ -7779,6 +9609,88 @@
],
"time": "2025-01-15T00:21:40+00:00"
},
+ {
+ "name": "symfony/phpunit-bridge",
+ "version": "v7.2.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/phpunit-bridge.git",
+ "reference": "2bbde92ab25a0e2c88160857af7be9db5da0d145"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/phpunit-bridge/zipball/2bbde92ab25a0e2c88160857af7be9db5da0d145",
+ "reference": "2bbde92ab25a0e2c88160857af7be9db5da0d145",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.2.5"
+ },
+ "conflict": {
+ "phpunit/phpunit": "<7.5|9.1.2"
+ },
+ "require-dev": {
+ "symfony/deprecation-contracts": "^2.5|^3.0",
+ "symfony/error-handler": "^5.4|^6.4|^7.0",
+ "symfony/polyfill-php81": "^1.27"
+ },
+ "bin": [
+ "bin/simple-phpunit"
+ ],
+ "type": "symfony-bridge",
+ "extra": {
+ "thanks": {
+ "url": "https://github.com/sebastianbergmann/phpunit",
+ "name": "phpunit/phpunit"
+ }
+ },
+ "autoload": {
+ "files": [
+ "bootstrap.php"
+ ],
+ "psr-4": {
+ "Symfony\\Bridge\\PhpUnit\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/",
+ "/bin/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Provides utilities for PHPUnit, especially user deprecation notices management",
+ "homepage": "https://symfony.com",
+ "support": {
+ "source": "https://github.com/symfony/phpunit-bridge/tree/v7.2.0"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2024-11-13T16:15:23+00:00"
+ },
{
"name": "symfony/process",
"version": "v7.1.8",
@@ -7920,11 +9832,61 @@
}
],
"time": "2025-01-07T09:23:14+00:00"
+ },
+ {
+ "name": "theseer/tokenizer",
+ "version": "1.2.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/theseer/tokenizer.git",
+ "reference": "737eda637ed5e28c3413cb1ebe8bb52cbf1ca7a2"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/theseer/tokenizer/zipball/737eda637ed5e28c3413cb1ebe8bb52cbf1ca7a2",
+ "reference": "737eda637ed5e28c3413cb1ebe8bb52cbf1ca7a2",
+ "shasum": ""
+ },
+ "require": {
+ "ext-dom": "*",
+ "ext-tokenizer": "*",
+ "ext-xmlwriter": "*",
+ "php": "^7.2 || ^8.0"
+ },
+ "type": "library",
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Arne Blankerts",
+ "email": "arne@blankerts.de",
+ "role": "Developer"
+ }
+ ],
+ "description": "A small library for converting tokenized PHP source code into XML and potentially other formats",
+ "support": {
+ "issues": "https://github.com/theseer/tokenizer/issues",
+ "source": "https://github.com/theseer/tokenizer/tree/1.2.3"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/theseer",
+ "type": "github"
+ }
+ ],
+ "time": "2024-03-03T12:36:25+00:00"
}
],
"aliases": [],
"minimum-stability": "stable",
- "stability-flags": {},
+ "stability-flags": [],
"prefer-stable": true,
"prefer-lowest": false,
"platform": {
@@ -7932,6 +9894,6 @@
"ext-ctype": "*",
"ext-iconv": "*"
},
- "platform-dev": {},
+ "platform-dev": [],
"plugin-api-version": "2.6.0"
}
diff --git a/config/packages/security.yaml b/config/packages/security.yaml
index 2e3a73d..b89ae2c 100644
--- a/config/packages/security.yaml
+++ b/config/packages/security.yaml
@@ -39,8 +39,8 @@ security:
access_control:
- { path: ^/$, roles: ROLE_USER }
- { path: ^/api, roles: ROLE_USER }
- # - { path: ^/admin, roles: ROLE_ADMIN }
- # - { path: ^/profile, roles: ROLE_USER }
+ - { path: ^/admin, roles: ROLE_ADMIN }
+ - { path: ^/user, roles: ROLE_USER }
when@test:
security:
diff --git a/migrations/Version20250331072951.php b/migrations/Version20250331072951.php
new file mode 100644
index 0000000..5262169
--- /dev/null
+++ b/migrations/Version20250331072951.php
@@ -0,0 +1,377 @@
+addSql(<<<'SQL'
+ ALTER TABLE elemento DROP FOREIGN KEY elemento_ibfk_4
+ SQL);
+ $this->addSql(<<<'SQL'
+ ALTER TABLE elemento DROP FOREIGN KEY elemento_ibfk_6
+ SQL);
+ $this->addSql(<<<'SQL'
+ ALTER TABLE elemento DROP FOREIGN KEY elemento_ibfk_3
+ SQL);
+ $this->addSql(<<<'SQL'
+ ALTER TABLE elemento DROP FOREIGN KEY elemento_ibfk_5
+ SQL);
+ $this->addSql(<<<'SQL'
+ ALTER TABLE elemento DROP FOREIGN KEY elemento_ibfk_1
+ SQL);
+ $this->addSql(<<<'SQL'
+ ALTER TABLE oriz_fonte DROP FOREIGN KEY oriz_fonte_ibfk_2
+ SQL);
+ $this->addSql(<<<'SQL'
+ ALTER TABLE oriz_fonte DROP FOREIGN KEY oriz_fonte_ibfk_1
+ SQL);
+ $this->addSql(<<<'SQL'
+ ALTER TABLE trattamento DROP FOREIGN KEY trattamento_ibfk_1
+ SQL);
+ $this->addSql(<<<'SQL'
+ ALTER TABLE elemento_fonte DROP FOREIGN KEY elemento_fonte_ibfk_2
+ SQL);
+ $this->addSql(<<<'SQL'
+ ALTER TABLE elemento_fonte DROP FOREIGN KEY elemento_fonte_ibfk_1
+ SQL);
+ $this->addSql(<<<'SQL'
+ ALTER TABLE elemento_degrado DROP FOREIGN KEY elemento_degrado_ibfk_1
+ SQL);
+ $this->addSql(<<<'SQL'
+ ALTER TABLE elemento_degrado DROP FOREIGN KEY elemento_degrado_ibfk_2
+ SQL);
+ $this->addSql(<<<'SQL'
+ ALTER TABLE interv_el_degrado DROP FOREIGN KEY interv_el_degrado_ibfk_3
+ SQL);
+ $this->addSql(<<<'SQL'
+ ALTER TABLE interv_el_degrado DROP FOREIGN KEY interv_el_degrado_ibfk_1
+ SQL);
+ $this->addSql(<<<'SQL'
+ ALTER TABLE interv_el_degrado DROP FOREIGN KEY interv_el_degrado_ibfk_2
+ SQL);
+ $this->addSql(<<<'SQL'
+ ALTER TABLE strutt_oriz DROP FOREIGN KEY strutt_oriz_ibfk_3
+ SQL);
+ $this->addSql(<<<'SQL'
+ ALTER TABLE strutt_oriz DROP FOREIGN KEY strutt_oriz_ibfk_1
+ SQL);
+ $this->addSql(<<<'SQL'
+ ALTER TABLE strutt_oriz DROP FOREIGN KEY strutt_oriz_ibfk_4
+ SQL);
+ $this->addSql(<<<'SQL'
+ ALTER TABLE strutt_oriz DROP FOREIGN KEY strutt_oriz_ibfk_2
+ SQL);
+ $this->addSql(<<<'SQL'
+ ALTER TABLE strutt_oriz DROP FOREIGN KEY strutt_oriz_ibfk_5
+ SQL);
+ $this->addSql(<<<'SQL'
+ ALTER TABLE architettura_fonte DROP FOREIGN KEY architettura_fonte_ibfk_1
+ SQL);
+ $this->addSql(<<<'SQL'
+ ALTER TABLE architettura_fonte DROP FOREIGN KEY architettura_fonte_ibfk_2
+ SQL);
+ $this->addSql(<<<'SQL'
+ ALTER TABLE intervento DROP FOREIGN KEY intervento_trattamento_fk
+ SQL);
+ $this->addSql(<<<'SQL'
+ ALTER TABLE degrado_fonte DROP FOREIGN KEY degrado_fonte_ibfk_1
+ SQL);
+ $this->addSql(<<<'SQL'
+ ALTER TABLE degrado_fonte DROP FOREIGN KEY degrado_fonte_ibfk_2
+ SQL);
+ $this->addSql(<<<'SQL'
+ DROP TABLE voc_posa
+ SQL);
+ $this->addSql(<<<'SQL'
+ DROP TABLE oriz_fonte
+ SQL);
+ $this->addSql(<<<'SQL'
+ DROP TABLE trattamento
+ SQL);
+ $this->addSql(<<<'SQL'
+ DROP TABLE elemento_fonte
+ SQL);
+ $this->addSql(<<<'SQL'
+ DROP TABLE voc_genere_oriz
+ SQL);
+ $this->addSql(<<<'SQL'
+ DROP TABLE elemento_degrado
+ SQL);
+ $this->addSql(<<<'SQL'
+ DROP TABLE voc_tipo_oriz
+ SQL);
+ $this->addSql(<<<'SQL'
+ DROP TABLE voc_ricon
+ SQL);
+ $this->addSql(<<<'SQL'
+ DROP TABLE interv_el_degrado
+ SQL);
+ $this->addSql(<<<'SQL'
+ DROP TABLE users
+ SQL);
+ $this->addSql(<<<'SQL'
+ DROP TABLE voc_lavorazione
+ SQL);
+ $this->addSql(<<<'SQL'
+ DROP TABLE strutt_oriz
+ SQL);
+ $this->addSql(<<<'SQL'
+ DROP TABLE architettura_fonte
+ SQL);
+ $this->addSql(<<<'SQL'
+ DROP TABLE voc_tipo_el
+ SQL);
+ $this->addSql(<<<'SQL'
+ DROP TABLE intervento
+ SQL);
+ $this->addSql(<<<'SQL'
+ DROP TABLE degrado_fonte
+ SQL);
+ $this->addSql(<<<'SQL'
+ DROP TABLE fonte
+ SQL);
+ $this->addSql(<<<'SQL'
+ DROP TABLE voc_qualificazione_oriz
+ SQL);
+ $this->addSql(<<<'SQL'
+ ALTER TABLE architettura CHANGE id id INT AUTO_INCREMENT NOT NULL, CHANGE denominazione denominazione VARCHAR(255) NOT NULL
+ SQL);
+ $this->addSql(<<<'SQL'
+ ALTER TABLE degrado DROP FOREIGN KEY degrado_ibfk_1
+ SQL);
+ $this->addSql(<<<'SQL'
+ DROP INDEX materiale ON degrado
+ SQL);
+ $this->addSql(<<<'SQL'
+ ALTER TABLE degrado CHANGE id id INT AUTO_INCREMENT NOT NULL, CHANGE materiale materiale BIGINT DEFAULT NULL, CHANGE lemma lemma VARCHAR(50) NOT NULL
+ SQL);
+ $this->addSql(<<<'SQL'
+ ALTER TABLE elemento DROP FOREIGN KEY elemento_ibfk_2
+ SQL);
+ $this->addSql(<<<'SQL'
+ DROP INDEX posa ON elemento
+ SQL);
+ $this->addSql(<<<'SQL'
+ DROP INDEX tipo ON elemento
+ SQL);
+ $this->addSql(<<<'SQL'
+ DROP INDEX strutt_oriz ON elemento
+ SQL);
+ $this->addSql(<<<'SQL'
+ DROP INDEX materiale ON elemento
+ SQL);
+ $this->addSql(<<<'SQL'
+ DROP INDEX riconoscimento ON elemento
+ SQL);
+ $this->addSql(<<<'SQL'
+ DROP INDEX lavorazione ON elemento
+ SQL);
+ $this->addSql(<<<'SQL'
+ DROP INDEX etichetta ON elemento
+ SQL);
+ $this->addSql(<<<'SQL'
+ ALTER TABLE elemento CHANGE id id INT AUTO_INCREMENT NOT NULL, CHANGE tipo tipo BIGINT DEFAULT NULL, CHANGE materiale materiale BIGINT DEFAULT NULL, CHANGE lavorazione lavorazione BIGINT DEFAULT NULL, CHANGE posa posa BIGINT DEFAULT NULL, CHANGE strutt_oriz strutt_oriz BIGINT NOT NULL, CHANGE riconoscimento riconoscimento BIGINT DEFAULT NULL, CHANGE note note LONGTEXT DEFAULT NULL
+ SQL);
+ $this->addSql(<<<'SQL'
+ ALTER TABLE user ADD firstname VARCHAR(255) NOT NULL, ADD lastname VARCHAR(255) NOT NULL, ADD email VARCHAR(255) NOT NULL
+ SQL);
+ $this->addSql(<<<'SQL'
+ ALTER TABLE voc_materiale CHANGE id id INT AUTO_INCREMENT NOT NULL, CHANGE lemma lemma VARCHAR(50) NOT NULL
+ SQL);
+ }
+
+ public function down(Schema $schema): void
+ {
+ // this down() migration is auto-generated, please modify it to your needs
+ $this->addSql(<<<'SQL'
+ CREATE TABLE voc_posa (id BIGINT UNSIGNED AUTO_INCREMENT NOT NULL, lemma VARCHAR(50) CHARACTER SET utf8mb4 DEFAULT NULL COLLATE `utf8mb4_general_ci`, PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_general_ci` ENGINE = InnoDB COMMENT = ''
+ SQL);
+ $this->addSql(<<<'SQL'
+ CREATE TABLE oriz_fonte (id_strutt_oriz BIGINT UNSIGNED NOT NULL, id_fonte BIGINT UNSIGNED NOT NULL, INDEX id_fonte (id_fonte), INDEX IDX_26A2F8B8D31AE9FE (id_strutt_oriz), PRIMARY KEY(id_strutt_oriz, id_fonte)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_general_ci` ENGINE = InnoDB COMMENT = ''
+ SQL);
+ $this->addSql(<<<'SQL'
+ CREATE TABLE trattamento (id BIGINT UNSIGNED AUTO_INCREMENT NOT NULL, materiale BIGINT UNSIGNED DEFAULT NULL, lemma VARCHAR(70) CHARACTER SET utf8mb4 DEFAULT NULL COLLATE `utf8mb4_general_ci`, natura VARCHAR(50) CHARACTER SET utf8mb4 DEFAULT NULL COLLATE `utf8mb4_general_ci`, tipologia VARCHAR(50) CHARACTER SET utf8mb4 DEFAULT NULL COLLATE `utf8mb4_general_ci`, applicazione VARCHAR(50) CHARACTER SET utf8mb4 DEFAULT NULL COLLATE `utf8mb4_general_ci`, rif_normativo VARCHAR(70) CHARACTER SET utf8mb4 DEFAULT NULL COLLATE `utf8mb4_general_ci`, INDEX materiale (materiale), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_general_ci` ENGINE = InnoDB COMMENT = ''
+ SQL);
+ $this->addSql(<<<'SQL'
+ CREATE TABLE elemento_fonte (id_elemento BIGINT UNSIGNED NOT NULL, id_fonte BIGINT UNSIGNED NOT NULL, INDEX id_fonte (id_fonte), INDEX IDX_2C9B1DF090B787 (id_elemento), PRIMARY KEY(id_elemento, id_fonte)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_general_ci` ENGINE = InnoDB COMMENT = ''
+ SQL);
+ $this->addSql(<<<'SQL'
+ CREATE TABLE voc_genere_oriz (id BIGINT UNSIGNED AUTO_INCREMENT NOT NULL, lemma VARCHAR(50) CHARACTER SET utf8mb4 DEFAULT NULL COLLATE `utf8mb4_general_ci`, PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_general_ci` ENGINE = InnoDB COMMENT = ''
+ SQL);
+ $this->addSql(<<<'SQL'
+ CREATE TABLE elemento_degrado (id_elemento BIGINT UNSIGNED NOT NULL, id_degrado BIGINT UNSIGNED NOT NULL, stato VARCHAR(20) CHARACTER SET utf8mb4 DEFAULT NULL COLLATE `utf8mb4_general_ci`, INDEX id_degrado (id_degrado), INDEX IDX_F389C65490B787 (id_elemento), PRIMARY KEY(id_elemento, id_degrado)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_general_ci` ENGINE = InnoDB COMMENT = ''
+ SQL);
+ $this->addSql(<<<'SQL'
+ CREATE TABLE voc_tipo_oriz (id BIGINT UNSIGNED AUTO_INCREMENT NOT NULL, lemma VARCHAR(50) CHARACTER SET utf8mb4 DEFAULT NULL COLLATE `utf8mb4_general_ci`, PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_general_ci` ENGINE = InnoDB COMMENT = ''
+ SQL);
+ $this->addSql(<<<'SQL'
+ CREATE TABLE voc_ricon (id BIGINT UNSIGNED AUTO_INCREMENT NOT NULL, lemma VARCHAR(50) CHARACTER SET utf8mb4 DEFAULT NULL COLLATE `utf8mb4_general_ci`, PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_general_ci` ENGINE = InnoDB COMMENT = ''
+ SQL);
+ $this->addSql(<<<'SQL'
+ CREATE TABLE interv_el_degrado (id_intervento BIGINT UNSIGNED NOT NULL, id_elemento BIGINT UNSIGNED NOT NULL, id_degrado BIGINT UNSIGNED NOT NULL, INDEX id_degrado (id_degrado), INDEX id_elemento (id_elemento), INDEX IDX_E54AD936E650F980 (id_intervento), PRIMARY KEY(id_intervento, id_elemento, id_degrado)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_general_ci` ENGINE = InnoDB COMMENT = ''
+ SQL);
+ $this->addSql(<<<'SQL'
+ CREATE TABLE users (ID INT AUTO_INCREMENT NOT NULL, username VARCHAR(255) CHARACTER SET utf8mb3 DEFAULT NULL COLLATE `utf8mb3_general_ci`, password VARCHAR(255) CHARACTER SET utf8mb3 DEFAULT NULL COLLATE `utf8mb3_general_ci`, email VARCHAR(255) CHARACTER SET utf8mb3 DEFAULT NULL COLLATE `utf8mb3_general_ci`, fullname VARCHAR(255) CHARACTER SET utf8mb3 DEFAULT NULL COLLATE `utf8mb3_general_ci`, groupid VARCHAR(255) CHARACTER SET utf8mb3 DEFAULT NULL COLLATE `utf8mb3_general_ci`, active INT DEFAULT NULL, ext_security_id VARCHAR(100) CHARACTER SET utf8mb3 DEFAULT NULL COLLATE `utf8mb3_general_ci`, PRIMARY KEY(ID)) DEFAULT CHARACTER SET utf8mb3 COLLATE `utf8mb3_general_ci` ENGINE = InnoDB COMMENT = ''
+ SQL);
+ $this->addSql(<<<'SQL'
+ CREATE TABLE voc_lavorazione (id BIGINT UNSIGNED AUTO_INCREMENT NOT NULL, lemma VARCHAR(50) CHARACTER SET utf8mb4 DEFAULT NULL COLLATE `utf8mb4_general_ci`, PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_general_ci` ENGINE = InnoDB COMMENT = ''
+ SQL);
+ $this->addSql(<<<'SQL'
+ CREATE TABLE strutt_oriz (id BIGINT UNSIGNED AUTO_INCREMENT NOT NULL, tipo BIGINT UNSIGNED DEFAULT NULL, genere BIGINT UNSIGNED DEFAULT NULL, qualificazione BIGINT UNSIGNED DEFAULT NULL, architettura BIGINT UNSIGNED NOT NULL, riconoscimento BIGINT UNSIGNED DEFAULT NULL, note TEXT CHARACTER SET utf8mb4 DEFAULT NULL COLLATE `utf8mb4_general_ci`, etichetta VARCHAR(6) CHARACTER SET utf8mb4 NOT NULL COLLATE `utf8mb4_general_ci`, INDEX architettura (architettura), INDEX tipo (tipo), INDEX riconoscimento (riconoscimento), INDEX genere (genere), INDEX qualificazione (qualificazione), UNIQUE INDEX etichetta (etichetta), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_general_ci` ENGINE = InnoDB COMMENT = ''
+ SQL);
+ $this->addSql(<<<'SQL'
+ CREATE TABLE architettura_fonte (id_architettura BIGINT UNSIGNED NOT NULL, id_fonte BIGINT UNSIGNED NOT NULL, INDEX id_fonte (id_fonte), INDEX IDX_DEF7611A82F5A403 (id_architettura), PRIMARY KEY(id_architettura, id_fonte)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_general_ci` ENGINE = InnoDB COMMENT = ''
+ SQL);
+ $this->addSql(<<<'SQL'
+ CREATE TABLE voc_tipo_el (id BIGINT UNSIGNED AUTO_INCREMENT NOT NULL, lemma VARCHAR(50) CHARACTER SET utf8mb4 DEFAULT NULL COLLATE `utf8mb4_general_ci`, PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_general_ci` ENGINE = InnoDB COMMENT = ''
+ SQL);
+ $this->addSql(<<<'SQL'
+ CREATE TABLE intervento (id BIGINT UNSIGNED AUTO_INCREMENT NOT NULL, trattamento BIGINT UNSIGNED DEFAULT NULL, incaricato VARCHAR(50) CHARACTER SET utf8mb4 DEFAULT NULL COLLATE `utf8mb4_general_ci`, data_interv DATE DEFAULT NULL, INDEX trattamento (trattamento), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_general_ci` ENGINE = InnoDB COMMENT = ''
+ SQL);
+ $this->addSql(<<<'SQL'
+ CREATE TABLE degrado_fonte (id_degrado BIGINT UNSIGNED NOT NULL, id_fonte BIGINT UNSIGNED NOT NULL, INDEX id_fonte (id_fonte), INDEX IDX_24F62C731B9C3026 (id_degrado), PRIMARY KEY(id_degrado, id_fonte)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_general_ci` ENGINE = InnoDB COMMENT = ''
+ SQL);
+ $this->addSql(<<<'SQL'
+ CREATE TABLE fonte (id BIGINT UNSIGNED AUTO_INCREMENT NOT NULL, tipo VARCHAR(20) CHARACTER SET utf8mb4 DEFAULT NULL COLLATE `utf8mb4_general_ci`, riferimento VARCHAR(150) CHARACTER SET utf8mb4 DEFAULT NULL COLLATE `utf8mb4_general_ci`, PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_general_ci` ENGINE = InnoDB COMMENT = ''
+ SQL);
+ $this->addSql(<<<'SQL'
+ CREATE TABLE voc_qualificazione_oriz (id BIGINT UNSIGNED AUTO_INCREMENT NOT NULL, lemma VARCHAR(50) CHARACTER SET utf8mb4 DEFAULT NULL COLLATE `utf8mb4_general_ci`, PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_general_ci` ENGINE = InnoDB COMMENT = ''
+ SQL);
+ $this->addSql(<<<'SQL'
+ ALTER TABLE oriz_fonte ADD CONSTRAINT oriz_fonte_ibfk_2 FOREIGN KEY (id_fonte) REFERENCES fonte (id)
+ SQL);
+ $this->addSql(<<<'SQL'
+ ALTER TABLE oriz_fonte ADD CONSTRAINT oriz_fonte_ibfk_1 FOREIGN KEY (id_strutt_oriz) REFERENCES strutt_oriz (id)
+ SQL);
+ $this->addSql(<<<'SQL'
+ ALTER TABLE trattamento ADD CONSTRAINT trattamento_ibfk_1 FOREIGN KEY (materiale) REFERENCES voc_materiale (id)
+ SQL);
+ $this->addSql(<<<'SQL'
+ ALTER TABLE elemento_fonte ADD CONSTRAINT elemento_fonte_ibfk_2 FOREIGN KEY (id_fonte) REFERENCES fonte (id)
+ SQL);
+ $this->addSql(<<<'SQL'
+ ALTER TABLE elemento_fonte ADD CONSTRAINT elemento_fonte_ibfk_1 FOREIGN KEY (id_elemento) REFERENCES elemento (id)
+ SQL);
+ $this->addSql(<<<'SQL'
+ ALTER TABLE elemento_degrado ADD CONSTRAINT elemento_degrado_ibfk_1 FOREIGN KEY (id_elemento) REFERENCES elemento (id)
+ SQL);
+ $this->addSql(<<<'SQL'
+ ALTER TABLE elemento_degrado ADD CONSTRAINT elemento_degrado_ibfk_2 FOREIGN KEY (id_degrado) REFERENCES degrado (id)
+ SQL);
+ $this->addSql(<<<'SQL'
+ ALTER TABLE interv_el_degrado ADD CONSTRAINT interv_el_degrado_ibfk_3 FOREIGN KEY (id_degrado) REFERENCES degrado (id)
+ SQL);
+ $this->addSql(<<<'SQL'
+ ALTER TABLE interv_el_degrado ADD CONSTRAINT interv_el_degrado_ibfk_1 FOREIGN KEY (id_intervento) REFERENCES intervento (id)
+ SQL);
+ $this->addSql(<<<'SQL'
+ ALTER TABLE interv_el_degrado ADD CONSTRAINT interv_el_degrado_ibfk_2 FOREIGN KEY (id_elemento) REFERENCES elemento (id)
+ SQL);
+ $this->addSql(<<<'SQL'
+ ALTER TABLE strutt_oriz ADD CONSTRAINT strutt_oriz_ibfk_3 FOREIGN KEY (qualificazione) REFERENCES voc_qualificazione_oriz (id)
+ SQL);
+ $this->addSql(<<<'SQL'
+ ALTER TABLE strutt_oriz ADD CONSTRAINT strutt_oriz_ibfk_1 FOREIGN KEY (tipo) REFERENCES voc_tipo_oriz (id)
+ SQL);
+ $this->addSql(<<<'SQL'
+ ALTER TABLE strutt_oriz ADD CONSTRAINT strutt_oriz_ibfk_4 FOREIGN KEY (architettura) REFERENCES architettura (id)
+ SQL);
+ $this->addSql(<<<'SQL'
+ ALTER TABLE strutt_oriz ADD CONSTRAINT strutt_oriz_ibfk_2 FOREIGN KEY (genere) REFERENCES voc_genere_oriz (id)
+ SQL);
+ $this->addSql(<<<'SQL'
+ ALTER TABLE strutt_oriz ADD CONSTRAINT strutt_oriz_ibfk_5 FOREIGN KEY (riconoscimento) REFERENCES voc_ricon (id)
+ SQL);
+ $this->addSql(<<<'SQL'
+ ALTER TABLE architettura_fonte ADD CONSTRAINT architettura_fonte_ibfk_1 FOREIGN KEY (id_architettura) REFERENCES architettura (id)
+ SQL);
+ $this->addSql(<<<'SQL'
+ ALTER TABLE architettura_fonte ADD CONSTRAINT architettura_fonte_ibfk_2 FOREIGN KEY (id_fonte) REFERENCES fonte (id)
+ SQL);
+ $this->addSql(<<<'SQL'
+ ALTER TABLE intervento ADD CONSTRAINT intervento_trattamento_fk FOREIGN KEY (trattamento) REFERENCES trattamento (id) ON UPDATE CASCADE ON DELETE CASCADE
+ SQL);
+ $this->addSql(<<<'SQL'
+ ALTER TABLE degrado_fonte ADD CONSTRAINT degrado_fonte_ibfk_1 FOREIGN KEY (id_degrado) REFERENCES degrado (id)
+ SQL);
+ $this->addSql(<<<'SQL'
+ ALTER TABLE degrado_fonte ADD CONSTRAINT degrado_fonte_ibfk_2 FOREIGN KEY (id_fonte) REFERENCES fonte (id)
+ SQL);
+ $this->addSql(<<<'SQL'
+ ALTER TABLE architettura CHANGE id id BIGINT UNSIGNED AUTO_INCREMENT NOT NULL, CHANGE denominazione denominazione VARCHAR(50) DEFAULT NULL
+ SQL);
+ $this->addSql(<<<'SQL'
+ ALTER TABLE degrado CHANGE id id BIGINT UNSIGNED AUTO_INCREMENT NOT NULL, CHANGE lemma lemma VARCHAR(50) DEFAULT NULL, CHANGE materiale materiale BIGINT UNSIGNED DEFAULT NULL
+ SQL);
+ $this->addSql(<<<'SQL'
+ ALTER TABLE degrado ADD CONSTRAINT degrado_ibfk_1 FOREIGN KEY (materiale) REFERENCES voc_materiale (id)
+ SQL);
+ $this->addSql(<<<'SQL'
+ CREATE INDEX materiale ON degrado (materiale)
+ SQL);
+ $this->addSql(<<<'SQL'
+ ALTER TABLE elemento CHANGE id id BIGINT UNSIGNED AUTO_INCREMENT NOT NULL, CHANGE tipo tipo BIGINT UNSIGNED DEFAULT NULL, CHANGE materiale materiale BIGINT UNSIGNED DEFAULT NULL, CHANGE lavorazione lavorazione BIGINT UNSIGNED DEFAULT NULL, CHANGE posa posa BIGINT UNSIGNED DEFAULT NULL, CHANGE strutt_oriz strutt_oriz BIGINT UNSIGNED NOT NULL, CHANGE riconoscimento riconoscimento BIGINT UNSIGNED DEFAULT NULL, CHANGE note note TEXT DEFAULT NULL
+ SQL);
+ $this->addSql(<<<'SQL'
+ ALTER TABLE elemento ADD CONSTRAINT elemento_ibfk_3 FOREIGN KEY (lavorazione) REFERENCES voc_lavorazione (id)
+ SQL);
+ $this->addSql(<<<'SQL'
+ ALTER TABLE elemento ADD CONSTRAINT elemento_ibfk_6 FOREIGN KEY (riconoscimento) REFERENCES voc_ricon (id)
+ SQL);
+ $this->addSql(<<<'SQL'
+ ALTER TABLE elemento ADD CONSTRAINT elemento_ibfk_1 FOREIGN KEY (tipo) REFERENCES voc_tipo_el (id)
+ SQL);
+ $this->addSql(<<<'SQL'
+ ALTER TABLE elemento ADD CONSTRAINT elemento_ibfk_4 FOREIGN KEY (posa) REFERENCES voc_posa (id)
+ SQL);
+ $this->addSql(<<<'SQL'
+ ALTER TABLE elemento ADD CONSTRAINT elemento_ibfk_2 FOREIGN KEY (materiale) REFERENCES voc_materiale (id)
+ SQL);
+ $this->addSql(<<<'SQL'
+ ALTER TABLE elemento ADD CONSTRAINT elemento_ibfk_5 FOREIGN KEY (strutt_oriz) REFERENCES strutt_oriz (id)
+ SQL);
+ $this->addSql(<<<'SQL'
+ CREATE INDEX posa ON elemento (posa)
+ SQL);
+ $this->addSql(<<<'SQL'
+ CREATE INDEX tipo ON elemento (tipo)
+ SQL);
+ $this->addSql(<<<'SQL'
+ CREATE INDEX strutt_oriz ON elemento (strutt_oriz)
+ SQL);
+ $this->addSql(<<<'SQL'
+ CREATE INDEX materiale ON elemento (materiale)
+ SQL);
+ $this->addSql(<<<'SQL'
+ CREATE INDEX riconoscimento ON elemento (riconoscimento)
+ SQL);
+ $this->addSql(<<<'SQL'
+ CREATE INDEX lavorazione ON elemento (lavorazione)
+ SQL);
+ $this->addSql(<<<'SQL'
+ CREATE UNIQUE INDEX etichetta ON elemento (etichetta)
+ SQL);
+ $this->addSql(<<<'SQL'
+ ALTER TABLE user DROP firstname, DROP lastname, DROP email
+ SQL);
+ $this->addSql(<<<'SQL'
+ ALTER TABLE voc_materiale CHANGE id id BIGINT UNSIGNED AUTO_INCREMENT NOT NULL, CHANGE lemma lemma VARCHAR(50) DEFAULT NULL
+ SQL);
+ }
+}
diff --git a/migrations/Version20250331103338.php b/migrations/Version20250331103338.php
new file mode 100644
index 0000000..56be0ee
--- /dev/null
+++ b/migrations/Version20250331103338.php
@@ -0,0 +1,35 @@
+addSql(<<<'SQL'
+ CREATE TABLE progetto (id INT AUTO_INCREMENT NOT NULL, id_utente BIGINT NOT NULL, id_architettura BIGINT NOT NULL, ifc VARCHAR(255) DEFAULT NULL, PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB
+ SQL);
+ }
+
+ public function down(Schema $schema): void
+ {
+ // this down() migration is auto-generated, please modify it to your needs
+ $this->addSql(<<<'SQL'
+ DROP TABLE progetto
+ SQL);
+ }
+}
diff --git a/phpunit.xml.dist b/phpunit.xml.dist
new file mode 100644
index 0000000..c76a655
--- /dev/null
+++ b/phpunit.xml.dist
@@ -0,0 +1,38 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ tests
+
+
+
+
+
+ src
+
+
+
+
+
+
+
+
+
+
diff --git a/src/Controller/UserController.php b/src/Controller/UserController.php
new file mode 100644
index 0000000..7f504d3
--- /dev/null
+++ b/src/Controller/UserController.php
@@ -0,0 +1,18 @@
+render('user/index.html.twig', [
+ 'controller_name' => 'UserController',
+ ]);
+ }
+}
diff --git a/src/Entity/Project.php b/src/Entity/Project.php
new file mode 100644
index 0000000..38fc9fe
--- /dev/null
+++ b/src/Entity/Project.php
@@ -0,0 +1,92 @@
+ 'project:item']),
+ new GetCollection(normalizationContext: ['groups' => 'project:list']),
+ new Post(security: "is_granted('ROLE_USER')"),
+ ],
+ order: ['name' => 'DESC'],
+ paginationEnabled: false,
+)]
+class Project
+{
+ #[ORM\Id]
+ #[ORM\GeneratedValue]
+ #[ORM\Column]
+ private ?int $id = null;
+
+ #[ORM\Column(type: Types::BIGINT, name: 'id_utente')]
+ #[ORM\OneToOne(User::class, )]
+ private ?string $userid = null;
+
+ #[ORM\Column(type: Types::BIGINT, name: 'id_architettura')]
+ private ?string $buildingid = null;
+
+ #[ORM\Column(length: 255, nullable: true)]
+ /**
+ * @var string $ifc Path to IFC file for this project
+ */
+ private ?string $ifc = null;
+
+ public function getId(): ?int
+ {
+ return $this->id;
+ }
+
+ public function setId(string $id): static
+ {
+ $this->id = $id;
+
+ return $this;
+ }
+
+ public function getUserid(): ?string
+ {
+ return $this->userid;
+ }
+
+ public function setUserid(string $userid): static
+ {
+ $this->userid = $userid;
+
+ return $this;
+ }
+
+ public function getBuildingid(): ?string
+ {
+ return $this->buildingid;
+ }
+
+ public function setBuildingid(string $buildingid): static
+ {
+ $this->buildingid = $buildingid;
+
+ return $this;
+ }
+
+ public function getIfc(): ?string
+ {
+ return $this->ifc;
+ }
+
+ public function setIfc(?string $ifc): static
+ {
+ $this->ifc = $ifc;
+
+ return $this;
+ }
+}
diff --git a/src/Entity/User.php b/src/Entity/User.php
index 97ee5ca..a7d9250 100644
--- a/src/Entity/User.php
+++ b/src/Entity/User.php
@@ -31,6 +31,15 @@ class User implements UserInterface, PasswordAuthenticatedUserInterface
#[ORM\Column]
private ?string $password = null;
+ #[ORM\Column]
+ private ?string $firstname = null;
+
+ #[ORM\Column]
+ private ?string $lastname = null;
+
+ #[ORM\Column]
+ private ?string $email = null;
+
public function getId(): ?int
{
return $this->id;
@@ -55,7 +64,7 @@ class User implements UserInterface, PasswordAuthenticatedUserInterface
*/
public function getUserIdentifier(): string
{
- return (string) $this->username;
+ return "{$this->firstname} {$this->lastname}";
}
/**
@@ -97,6 +106,41 @@ class User implements UserInterface, PasswordAuthenticatedUserInterface
return $this;
}
+ public function getFirstname(): ?string
+ {
+ return $this->firstname;
+ }
+
+ public function setFirstname(string $firstname): static
+ {
+ $this->firstname = $firstname;
+
+ return $this;
+ }
+
+ public function getLastname(): ?string
+ {
+ return $this->lastname;
+ }
+
+ public function setLastname(string $lastname): static
+ {
+ $this->lastname = $lastname;
+
+ return $this;
+ }
+
+ public function getEmail(): ?string
+ {
+ return $this->email;
+ }
+
+ public function setEmail(string $email): static
+ {
+ $this->email = $email;
+
+ return $this;
+ }
/**
* @see UserInterface
*/
diff --git a/src/Repository/ProjectRepository.php b/src/Repository/ProjectRepository.php
new file mode 100644
index 0000000..0865b50
--- /dev/null
+++ b/src/Repository/ProjectRepository.php
@@ -0,0 +1,43 @@
+
+ */
+class ProjectRepository extends ServiceEntityRepository
+{
+ public function __construct(ManagerRegistry $registry)
+ {
+ parent::__construct($registry, Project::class);
+ }
+
+ // /**
+ // * @return Project[] Returns an array of Project objects
+ // */
+ // public function findByExampleField($value): array
+ // {
+ // return $this->createQueryBuilder('p')
+ // ->andWhere('p.exampleField = :val')
+ // ->setParameter('val', $value)
+ // ->orderBy('p.id', 'ASC')
+ // ->setMaxResults(10)
+ // ->getQuery()
+ // ->getResult()
+ // ;
+ // }
+
+ // public function findOneBySomeField($value): ?Project
+ // {
+ // return $this->createQueryBuilder('p')
+ // ->andWhere('p.exampleField = :val')
+ // ->setParameter('val', $value)
+ // ->getQuery()
+ // ->getOneOrNullResult()
+ // ;
+ // }
+}
diff --git a/symfony.lock b/symfony.lock
index 9354f00..bb525ac 100644
--- a/symfony.lock
+++ b/symfony.lock
@@ -52,6 +52,20 @@
"config/packages/nelmio_cors.yaml"
]
},
+ "phpunit/phpunit": {
+ "version": "9.6",
+ "recipe": {
+ "repo": "github.com/symfony/recipes",
+ "branch": "main",
+ "version": "9.6",
+ "ref": "6a9341aa97d441627f8bd424ae85dc04c944f8b4"
+ },
+ "files": [
+ ".env.test",
+ "phpunit.xml.dist",
+ "tests/bootstrap.php"
+ ]
+ },
"symfony/asset-mapper": {
"version": "7.1",
"recipe": {
@@ -120,6 +134,21 @@
"ref": "fadbfe33303a76e25cb63401050439aa9b1a9c7f"
}
},
+ "symfony/phpunit-bridge": {
+ "version": "7.2",
+ "recipe": {
+ "repo": "github.com/symfony/recipes",
+ "branch": "main",
+ "version": "6.3",
+ "ref": "a411a0480041243d97382cac7984f7dce7813c08"
+ },
+ "files": [
+ ".env.test",
+ "bin/phpunit",
+ "phpunit.xml.dist",
+ "tests/bootstrap.php"
+ ]
+ },
"symfony/routing": {
"version": "7.1",
"recipe": {
diff --git a/templates/home/index.html.twig b/templates/home/index.html.twig
index 15a89dc..21eb695 100644
--- a/templates/home/index.html.twig
+++ b/templates/home/index.html.twig
@@ -4,22 +4,13 @@
{% block body %}
-
-
-
+{% include 'partials/navbar.html.twig' %}
+
{% endblock %}
-
diff --git a/templates/login/index.html.twig b/templates/login/index.html.twig
index 85c5370..60b4f59 100644
--- a/templates/login/index.html.twig
+++ b/templates/login/index.html.twig
@@ -1,6 +1,6 @@
{% extends 'base.html.twig' %}
-{% block title %}Login | ArCOA{% endblock %}
+{% block title %}Login | WebArchi{% endblock %}
{% block body %}
diff --git a/templates/partials/navbar.html.twig b/templates/partials/navbar.html.twig
new file mode 100644
index 0000000..68ff46d
--- /dev/null
+++ b/templates/partials/navbar.html.twig
@@ -0,0 +1,18 @@
+
+
+ {% if app.user %}
+
+
+ {% include 'partials/user.html.twig' %}
+
+
+ {% endif %}
+
\ No newline at end of file
diff --git a/templates/partials/user.html.twig b/templates/partials/user.html.twig
new file mode 100644
index 0000000..237336d
--- /dev/null
+++ b/templates/partials/user.html.twig
@@ -0,0 +1,51 @@
+