diff --git a/.dockerignore b/.dockerignore
new file mode 100644
index 0000000..d28de9e
--- /dev/null
+++ b/.dockerignore
@@ -0,0 +1,47 @@
+###> symfony/framework-bundle ###
+/.env.local
+/.env.local.php
+/.env.*.local
+/config/secrets/prod/prod.decrypt.private.php
+/public/bundles/
+/var/
+/vendor/
+###< symfony/framework-bundle ###
+
+###> phpunit/phpunit ###
+.phpunit.cache/
+coverage/
+###< phpunit/phpunit ###
+
+###> friendsofphp/php-cs-fixer ###
+/.php-cs-fixer.cache
+###< friendsofphp/php-cs-fixer ###
+
+# Editors
+/.idea
+.vscode
+
+# Bundles
+/public/js/jquery.collection.js
+/templates/jquery.collection.html.twig
+
+# Yarn packages.
+node_modules
+
+# Docker
+.data
+
+# MISC
+/*.sql
+/data
+/src/.preload.php
+
+# Code coverage and QA reports
+public/dev
+
+# Mac DS_Store
+.DS_Store
+
+# Docker image specific
+/docs
+/.github/
\ No newline at end of file
diff --git a/.env b/.env
old mode 100644
new mode 100755
index 44445fd..bad2167
--- a/.env
+++ b/.env
@@ -1,20 +1,23 @@
###> symfony/framework-bundle ###
APP_ENV=dev
APP_SECRET=a216576ec4fb8ccdae78d6915fa7278e
+#TRUSTED_PROXIES=127.0.0.0/8,10.0.0.0/8,172.16.0.0/12,192.168.0.0/16
+#TRUSTED_HOSTS='^localhost|example\.com$'
###< symfony/framework-bundle ###
###> symfony/mailer ###
-MAILER_DSN=null://null
+MAILER_DSN=smtp://bep:password@mail:1025
###< symfony/mailer ###
###> doctrine/doctrine-bundle ###
-DATABASE_URL=mysql://db_user:db_password@127.0.0.1:3306/db_name?serverVersion=5.7
+DATABASE_URL=mysql://bep:password@db:3306/bep?serverVersion=mariadb-10.11.0
###< doctrine/doctrine-bundle ###
# Routing information
ROUTE_PROTOCOL=http
ROUTE_HOST=localhost
-ROUTE_BASE=/
+ROUTE_BASE=
+TRUSTED_PROXIES=127.0.0.1
# Piwik
PIWIK_ENABLED=false
diff --git a/.github/workflows/main.yaml b/.github/workflows/main.yaml
new file mode 100644
index 0000000..dabe5f6
--- /dev/null
+++ b/.github/workflows/main.yaml
@@ -0,0 +1,151 @@
+name: Unit Tests & Tagged Deploy
+
+# based on: https://docs.docker.com/build/ci/github-actions/multi-platform/#distribute-build-across-multiple-runners
+
+on:
+ push:
+ branches:
+ - '*'
+ tags:
+ - 'v*'
+
+env:
+ REGISTRY_IMAGE: dhilsfu/bep
+ DB_NAME: pipeline_db
+ DB_USER: pipeline_user
+ DB_PASSWORD: pipeline_password
+
+
+jobs:
+ build:
+ runs-on: ubuntu-latest
+ strategy:
+ fail-fast: false
+ matrix:
+ platform:
+ # - linux/386
+ - linux/amd64
+ # - linux/arm/v5
+ - linux/arm/v7
+ - linux/arm64
+ # - linux/mips64le
+ # - linux/ppc64le
+ # - linux/s390x
+ steps:
+ - name: Prepare
+ run: |
+ platform=${{ matrix.platform }}
+ echo "PLATFORM_PAIR=${platform//\//-}" >> $GITHUB_ENV
+
+ - name: Checkout source code
+ uses: actions/checkout@v4
+
+ - name: Docker meta
+ id: meta
+ uses: docker/metadata-action@v5
+ with:
+ images: ${{ env.REGISTRY_IMAGE }}
+
+ - name: Set up QEMU
+ uses: docker/setup-qemu-action@v3
+
+ - name: Set up Docker Buildx
+ uses: docker/setup-buildx-action@v3
+
+ - name: Login to Docker Hub
+ uses: docker/login-action@v3
+ with:
+ username: ${{ secrets.DOCKER_HUB_USERNAME }}
+ password: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }}
+
+ - name: Build and push by digest
+ id: build
+ uses: docker/build-push-action@v5
+ with:
+ context: .
+ platforms: ${{ matrix.platform }}
+ labels: ${{ steps.meta.outputs.labels }}
+ outputs: type=image,name=${{ env.REGISTRY_IMAGE }},push-by-digest=true,name-canonical=true,push=true
+ cache-from: type=registry,ref=${{ env.REGISTRY_IMAGE }}:buildcache-${{ env.PLATFORM_PAIR }}
+ cache-to: type=registry,ref=${{ env.REGISTRY_IMAGE }}:buildcache-${{ env.PLATFORM_PAIR }},mode=max
+
+ - name: Shutdown Ubuntu MySQL (SUDO)
+ run: sudo service mysql stop
+
+ - name: Set up MariaDB
+ uses: getong/mariadb-action@v1.1
+ with:
+ mysql database: ${{ env.DB_NAME }}_test
+ mysql user: ${{ env.DB_USER }}
+ mysql password: ${{ env.DB_PASSWORD }}
+
+ - name: Run Unit Tests
+ run: |
+ touch .env.test.local
+ echo DATABASE_URL="mysql://${{ env.DB_USER }}:${{ env.DB_PASSWORD }}@127.0.0.1:3306/${{ env.DB_NAME }}?serverVersion=mariadb-10.11.0" >> .env.test.local
+ docker run --rm \
+ -v "${GITHUB_WORKSPACE}/.env.test.local":/var/www/html/.env.test.local \
+ --network host \
+ --platform=${{ matrix.platform }} \
+ ${{ env.REGISTRY_IMAGE }}@${{ steps.build.outputs.digest }} make test
+
+ - name: Export digest
+ run: |
+ mkdir -p /tmp/digests
+ digest="${{ steps.build.outputs.digest }}"
+ touch "/tmp/digests/${digest#sha256:}"
+
+ - name: Upload digest
+ uses: actions/upload-artifact@v4
+ with:
+ name: digests-${{ env.PLATFORM_PAIR }}
+ path: /tmp/digests/*
+ if-no-files-found: error
+ retention-days: 1
+
+ push:
+ runs-on: ubuntu-latest
+ if: startsWith(github.ref, 'refs/tags/')
+ needs:
+ - build
+ steps:
+ - name: Download digests
+ uses: actions/download-artifact@v4
+ with:
+ path: /tmp/digests
+ pattern: digests-*
+ merge-multiple: true
+
+ - name: Docker meta
+ id: meta
+ uses: docker/metadata-action@v5
+ with:
+ images: ${{ env.REGISTRY_IMAGE }}
+
+ - name: Set up Docker Buildx
+ uses: docker/setup-buildx-action@v3
+
+ - name: Login to Docker Hub
+ uses: docker/login-action@v3
+ with:
+ username: ${{ secrets.DOCKER_HUB_USERNAME }}
+ password: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }}
+
+ - name: Create manifest list and push
+ working-directory: /tmp/digests
+ run: |
+ docker buildx imagetools create $(jq -cr '.tags | map("-t " + .) | join(" ")' <<< "$DOCKER_METADATA_OUTPUT_JSON") \
+ $(printf '${{ env.REGISTRY_IMAGE }}@sha256:%s ' *)
+
+ - name: Inspect image
+ run: |
+ docker buildx imagetools inspect ${{ env.REGISTRY_IMAGE }}:${{ steps.meta.outputs.version }}
+
+ - name: Trigger Gitlab Deploy Job
+ run: |
+ curl -X POST \
+ --fail \
+ -F token=${{ secrets.GITLAB_CI_TOKEN }} \
+ -F "ref=main" \
+ -F "variables[APP_RELEASE_TAG]=${{github.ref_name}}" \
+ https://git.lib.sfu.ca/api/v4/projects/569/trigger/pipeline
\ No newline at end of file
diff --git a/.gitignore b/.gitignore
index 5404f39..c7f40a7 100644
--- a/.gitignore
+++ b/.gitignore
@@ -8,37 +8,36 @@
/vendor/
###< symfony/framework-bundle ###
-###> symfony/phpunit-bridge ###
-.phpunit
-.phpunit.result.cache
-/phpunit.xml
-###< symfony/phpunit-bridge ###
-
###> phpunit/phpunit ###
-/phpunit.xml
-.phpunit.result.cache
+.phpunit.cache/
+coverage/
###< phpunit/phpunit ###
###> friendsofphp/php-cs-fixer ###
-/.php-cs-fixer.php
/.php-cs-fixer.cache
###< friendsofphp/php-cs-fixer ###
+# Editors
/.idea
-/public/yarn
+.vscode
+
+# Bundles
+/public/js/jquery.collection.js
/templates/jquery.collection.html.twig
-# deployment
-/config/deploy.yaml
+# Yarn packages.
+node_modules
-# backups
-*.sql
+# Docker
+.data
-# public things managed by other things.
-/public/dev
-/public/docs
-/public/images/blog
-/public/js/jquery.collection.js
+# MISC
+/*.sql
/data
+/src/.preload.php
+
+# Code coverage and QA reports
+public/dev
+# Mac DS_Store
.DS_Store
\ No newline at end of file
diff --git a/.gitmodules b/.gitmodules
deleted file mode 100644
index 6b67798..0000000
--- a/.gitmodules
+++ /dev/null
@@ -1,8 +0,0 @@
-[submodule "deployment"]
- path = deployment
- url = https://github.com/ubermichael/deployment
- branch = main
-[submodule "etc"]
- path = etc
- url = https://github.com/ubermichael/symake
- branch = main
diff --git a/.php-cs-fixer.dist.php b/.php-cs-fixer.dist.php
index 6900fdd..424801a 100644
--- a/.php-cs-fixer.dist.php
+++ b/.php-cs-fixer.dist.php
@@ -1,11 +1,5 @@
-This source file is subject to the GPL v2, bundled
-with this source code in the file LICENSE.
-HEADER;
-
$finder = PhpCsFixer\Finder::create()
->in(__DIR__ . '/src')
->in(__DIR__ . '/tests')
@@ -25,8 +19,8 @@
'@PhpCsFixer' => true,
'@PSR2' => true,
- '@PHP74Migration' => true,
- '@PHP74Migration:risky' => true,
+ '@PHP82Migration' => true,
+ '@PHP80Migration:risky' => true,
'align_multiline_comment' => [
'comment_type' => 'all_multiline',
@@ -37,14 +31,10 @@
'backtick_to_shell_exec' => true,
'blank_line_after_namespace' => true,
'blank_line_after_opening_tag' => true,
-// 'blank_line_before_statement' => [
-// 'statements' => [
-// 'declare', 'die', 'exit', 'for', 'foreach', 'return', 'try',
-// ]
-// ],
- 'braces' => [
- 'allow_single_line_closure' => true,
- 'position_after_functions_and_oop_constructs' => 'same'
+
+ 'curly_braces_position' => [
+ 'classes_opening_brace' => 'same_line',
+ 'functions_opening_brace' => 'same_line',
],
'cast_spaces' => [
@@ -77,9 +67,6 @@
'import_functions' => false,
],
- 'header_comment' => [
- 'header' => $header,
- ],
'heredoc_to_nowdoc' => true,
'implode_call' => true,
diff --git a/.yarnrc b/.yarnrc
deleted file mode 100644
index 0334220..0000000
--- a/.yarnrc
+++ /dev/null
@@ -1 +0,0 @@
---modules-folder public/yarn
diff --git a/Dockerfile b/Dockerfile
new file mode 100644
index 0000000..331130c
--- /dev/null
+++ b/Dockerfile
@@ -0,0 +1,33 @@
+FROM node:21.6-slim AS bep-prod-assets
+WORKDIR /app
+
+RUN apt-get update \
+ && apt-get install -y git \
+ && npm upgrade -g npm \
+ && npm upgrade -g yarn \
+ && rm -rf /var/lib/apt/lists/*
+
+# build js deps
+COPY public/package.json public/yarn.lock /app/
+
+RUN yarn --production \
+ && yarn cache clean
+
+
+FROM dhilsfu/symfony-base:php-8.2-apache AS bep
+ENV GIT_REPO=https://github.com/sfu-dhil/bep
+
+# basic deps installer (no script/plugings)
+COPY --chown=www-data:www-data --chmod=775 composer.json composer.lock /var/www/html/
+RUN composer install --no-scripts
+
+# copy project files and install all symfony deps
+COPY --chown=www-data:www-data --chmod=775 . /var/www/html
+# copy webpacked js and libs
+COPY --chown=www-data:www-data --chmod=775 --from=bep-prod-assets /app/node_modules /var/www/html/public/node_modules
+
+RUN mkdir -p data/prod data/dev data/test var/cache/prod var/cache/dev var/cache/test var/sessions var/log \
+ && chown -R www-data:www-data data var \
+ && chmod -R 775 data var \
+ && composer install \
+ && ./bin/console cache:clear
\ No newline at end of file
diff --git a/Makefile b/Makefile
index 56c24e4..fad4d0e 100644
--- a/Makefile
+++ b/Makefile
@@ -1,9 +1,147 @@
# Silence output slightly
# .SILENT:
-DB := bep
-PROJECT := bep
+PHP ?= $(shell which php)
+CONSOLE := $(PHP) bin/console
+SYMFONY ?= $(shell which symfony)
+PHPUNIT := ./vendor/bin/phpunit
+PHPCSF := ./vendor/bin/php-cs-fixer
+PHPSTAN := ./vendor/bin/phpstan
+TWIGCS := ./vendor/bin/twigcs
-include etc/Makefile
+CODE_DIRS := bin config migrations src templates tests
+
+## -- Help
+help: ## Outputs this help screen
+ @grep -E '(^[a-zA-Z0-9._-]+:.*?##.*$$)|(^##)' $(MAKEFILE_LIST) | sed -e 's/^.*Makefile[^:]*://' | awk 'BEGIN {FS = ":.*?## "}{printf "\033[32m%-30s\033[0m %s\n", $$1, $$2}' | sed -e 's/\[32m##/[33m/'
+
+
+## -- Tests
+
+test.reset: ## Create a test database and load the fixtures in it
+ rm -rf var/cache/test/* data/test/*
+ rm -f var/log/test-*.log
+ $(CONSOLE) --env=test doctrine:database:create --quiet --if-not-exists
+ $(CONSOLE) --env=test doctrine:schema:drop --quiet --force
+ $(CONSOLE) --env=test doctrine:schema:create --quiet
+ $(CONSOLE) --env=test doctrine:schema:validate --quiet
+ $(CONSOLE) --env=test doctrine:cache:clear-metadata --quiet
+ $(CONSOLE) --env=test doctrine:fixtures:load --quiet --no-interaction --group=dev
+
+test.run: ## Directly run tests. Use optional path=/path/to/tests to limit target
+ $(PHPUNIT) $(path)
+
+test: test.reset test.run ## Run all tests. Use optional path=/path/to/tests to limit target
+
+test.cover: test.reset ## Generate a test cover report
+ $(PHP) -dpcov.enabled=1 -dpcov.directory=. -dpcov.exclude="~vendor~" $(PHPUNIT) $(path) --coverage-html=coverage
+
+test.cover.view: ## Open the test coverage html file
+ open coverage/index.html
+
+
+## -- Cache targets
+
+cc: ## Clear the symfony cache
+ $(CONSOLE) cache:clear
+ $(CONSOLE) cache:warmup
+
+cc.purge: ## Remove cache and log files
+ rm -rf var/cache/*/*
+ rm -f var/log/*
+
+
+## -- Assets
+
+assets: ## Link assets into /public
+ $(CONSOLE) assets:install --symlink
+
+
+## Database migrations
+
+migrate: ## Run any migrations as required
+ $(CONSOLE) doctrine:migrations:migrate --no-interaction --allow-no-migration
+
+migrate.down: ## Undo one migration
+ # This is arcane nonsense and only works in GNU Make
+ $(eval CURRENT=$(shell $(CONSOLE) doctrine:migrations:current))
+ $(CONSOLE) doctrine:migrations:execute '$(CURRENT)' --down
+
+migrate.diff: ## Generate a migration by diffing the db and entities
+ $(CONSOLE) doctrine:migrations:diff --no-interaction --quiet
+
+migrate.status: ## Status of database migrations
+ $(CONSOLE) doctrine:migrations:status
+
+migrate.rollup: ## Roll up all migrations in to a schema definition
+ rm -rf migrations/*
+ $(CONSOLE) doctrine:migrations:dump-schema --no-interaction --quiet
+ $(CONSOLE) doctrine:migrations:rollup --no-interaction --quiet
+ $(PHPCSF) fix migrations
+
+migrate.reset: ## Reset all migrations metadata
+ $(CONSOLE) doctrine:migrations:version --delete --all --no-interaction --quiet
+ $(CONSOLE) doctrine:migrations:version --add --all --no-interaction --quiet
+
+
+## -- Container debug targets
+
+dump.autowire: ## Show autowireable services
+ $(CONSOLE) debug:autowiring --all
+
+dump.container: ## Show container information
+ $(CONSOLE) debug:container
+
+dump.env: ## Show all environment variables in the container
+ $(CONSOLE) debug:container --env-vars
+
+dump.params: ## List all of the nines container parameters
+ $(CONSOLE) debug:container --parameters
+
+dump.router: ## Display rounting information
+ $(CONSOLE) debug:router
+
+dump.twig: ## Show all twig configuration
+ $(CONSOLE) debug:twig
+
+
+## -- Coding standards fixing
+
+fix: ## Fix the code with the CS rules
+ $(PHPCSF) fix $(path)
+
+fix.cc: ## Remove the PHP CS Cache file
+ rm -f var/cache/php_cs.cache
+
+fix.all: fix.cc fix ## Ignore the CS cache and fix the code with the CS rules
+
+fix.list: ## Check the code against the CS rules
+ $(PHPCSF) fix --dry-run -v $(path)
+
+## -- Coding standards checking
+
+lint-all: stan.cc stan twiglint twigcs yamllint
+
+symlint: yamllint twiglint ## Run the symfony linting checks
+ $(SYMFONY) security:check --quiet
+ $(CONSOLE) lint:container --quiet
+ $(CONSOLE) doctrine:schema:validate --quiet --skip-sync -vvv --no-interaction
+
+twiglint: ## Check the twig templates for syntax errors
+ $(CONSOLE) lint:twig templates
+
+twigcs: ## Check the twig templates against the coding standards
+ $(TWIGCS) templates
+
+yamllint:
+ $(CONSOLE) lint:yaml templates
+
+stan: ## Run static analysis
+ $(PHPSTAN) --memory-limit=1G analyze $(CODE_DIRS)
+
+stan.cc: ## Clear the static analysis cache
+ $(PHPSTAN) clear-result-cache
+
+stan.baseline: ## Generate a new phpstan baseline file
+ $(PHPSTAN) --memory-limit=1G analyze --generate-baseline $(CODE_DIRS)
-## -- Local make file
diff --git a/README.md b/README.md
index 75a6293..117aaa3 100644
--- a/README.md
+++ b/README.md
@@ -1,55 +1,188 @@
# Books in English Parishes
-[Books in English Parishes][bep] (affectionately known as BEP) is a PHP application written using the
-[Symfony Framework][symfony]. It is a digital tool for collecting data and metadata
+[Books in English Parishes][https://dhil.lib.sfu.ca/bep] (affectionately known as BEP) is a PHP application written using the
+[Symfony Framework][https://symfony.com]. It is a digital tool for collecting data and metadata
about books used in English parishes.
## Requirements
-We have tried to keep the requirements minimal. How you install these
-requirements is up to you, but we have [provided some recommendations][setup]
-
-- Apache >= 2.4
-- PHP >= 7.4
-- Composer >= 2.0
-- MariaDB >= 10.8[^1]
-- Yarn >= 1.22
-
-## Installation
-
-1. Fork and clone the project from [GitHub][github-bep].
-2. Install the git submodules. `git submodule update --init` is a good way to do this
-3. Install composer dependencies with `composer install`.
-4. Install yarn dependencies with `yarn install`.
-4. Create a MariaDB database and user.
-
- ```sql
- DROP DATABASE IF EXISTS bep;
- CREATE DATABASE bep;
- DROP USER IF EXISTS bep@localhost;
- CREATE USER bep@localhost IDENTIFIED BY 'abc123';
- GRANT ALL ON bep.* TO bep@localhost;
- ```
-5. Copy .env to .env.local and edit configuration to suite your needs.
-6. Either 1) create the schema and load fixture data, or 2) load a MySQLDump file
- if one has been provided.
- 1. ```bash
- php ./bin/console doctrine:schema:create --quiet
- php ./bin/console doctrine:fixtures:load --group=dev --purger=fk_purger
- ```
- 2. ```bash
- mysql bep < bep.sql
- ```
-
-7. Visit http://localhost/bep
-8. happy coding!
-
-Some of the steps above are made easier with the included [MakeFiles](etc/README.md)
-which are in a git submodule. If you missed step 2 above they will be missing.
-
-[bep]: https://dhil.lib.sfu.ca/bep
-[symfony]: https://symfony.com
-[github-bep]: https://github.com/sfu-dhil/bep
-[setup]: https://sfu-dhil.github.io/dhil-docs/dev/
-
-[^1]: A similar version of MySQL should also work, but will not be supported.
+- [Docker Desktop](https://www.docker.com/products/docker-desktop/)
+- A copy of the `bep.sql` database sql file. If you are not sure what these are or where to get them, you should contact the [Digital Humanities Innovation Lab](mailto:dhil@sfu.ca) for access. This file should be placed in the root folder.
+
+## Initialize the Application
+
+First you must setup the database for the first time
+
+ docker compose up -d db
+ # wait 30 after the command has fully completed
+ docker exec -it bep_db bash -c "mysql -u bep -ppassword bep < /bep.sql"
+
+Next you must start the whole application
+
+ docker compose up -d --build
+
+BEP will now be available at `http://localhost:8080/`
+
+### Create your admin user credentials
+
+ docker exec -it bep_app ./bin/console nines:user:create '' ''
+ docker exec -it bep_app ./bin/console nines:user:password
+ docker exec -it bep_app ./bin/console nines:user:promote ROLE_ADMIN
+ docker exec -it bep_app ./bin/console nines:user:activate
+
+example:
+
+ docker exec -it bep_app ./bin/console nines:user:create test@test.com 'Test User' 'DHIL'
+ docker exec -it bep_app ./bin/console nines:user:password test@test.com test_password
+ docker exec -it bep_app ./bin/console nines:user:promote test@test.com ROLE_ADMIN
+ docker exec -it bep_app ./bin/console nines:user:activate test@test.com
+
+## General Usage
+
+### Starting the Application
+
+ docker compose up -d
+
+### Stopping the Application
+
+ docker compose down
+
+### Rebuilding the Application (after upstream or js/php package changes)
+
+ docker compose up -d --build
+
+### Viewing logs (each container)
+
+ docker logs -f bep_app
+ docker logs -f bep_db
+ docker logs -f bep_mail
+
+### Accessing the Application
+
+ http://localhost:8080/
+
+### Accessing the Database
+
+Command line:
+
+ docker exec -it bep_db mysql -u bep -ppassword bep
+
+Through a database management tool:
+- Host:`127.0.0.1`
+- Port: `13306`
+- Username: `bep`
+- Password: `password`
+
+### Accessing Mailhog (catches emails sent by the app)
+
+ http://localhost:8025/
+
+### Database Migrations
+
+Migrate up to latest
+
+ docker exec -it bep_app make migrate
+
+## Updating Application Dependencies
+
+### Yarn (javascript)
+
+First setup an image to build the yarn deps in
+
+ docker build -t bep_yarn_helper --target bep-prod-assets .
+
+Then run the following as needed
+
+ # add new package
+ docker run -it --rm -v $(pwd)/public:/app bep_yarn_helper yarn add [package]
+
+ # update a package
+ docker run -it --rm -v $(pwd)/public:/app bep_yarn_helper yarn upgrade [package]
+
+ # update all packages
+ docker run -it --rm -v $(pwd)/public:/app bep_yarn_helper yarn upgrade
+
+Note: If you are having problems starting/building the application due to javascript dependencies issues you can also run a standalone node container to help resolve them
+
+ docker run -it --rm -v $(pwd)/public:/app -w /app node:19.5 bash
+
+ [check Dockerfile for the 'apt-get update' code piece of bep-prod-assets]
+
+ yarn ...
+
+After you update a dependency make sure to rebuild the images
+
+ docker compose down
+ docker compose up -d
+
+### Composer (php)
+
+ # add new package
+ docker exec -it bep_app composer require [vendor/package]
+
+ # add new dev package
+ docker exec -it bep_app composer require --dev [vendor/package]
+
+ # update a package
+ docker exec -it bep_app composer update [vendor/package]
+
+ # update all packages
+ docker exec -it bep_app composer update
+
+Note: If you are having problems starting/building the application due to php dependencies issues you can also run a standalone php container to help resolve them
+
+ docker run -it -v $(pwd):/var/www/html -w /var/www/html dhilsfu/symfony-base:php-8.2-apache bash
+
+ [check Dockerfile for the 'apt-get update' code piece of bep]
+
+ composer ...
+
+After you update a dependency make sure to rebuild the images
+
+ docker compose down
+ docker compose up -d
+
+## Tests
+
+First make sure the application and database are started with `docker compose up -d`
+
+### Unit Tests
+
+ docker exec -it bep_app make test
+
+### Generate Code Coverage
+
+ docker exec -it bep_app make test.cover
+ make test.cover.view
+
+If the coverage file doesn't open automatically you can manually open it `coverage/index.html`
+
+## Misc
+
+### PHP Code standards
+
+See standards errors
+
+ docker exec -it bep_app make lint-all
+ docker exec -it bep_app make symlint
+
+ # or
+ docker exec -it bep_app make stan
+ docker exec -it bep_app make twiglint
+ docker exec -it bep_app make twigcs
+ docker exec -it bep_app make yamllint
+ docker exec -it bep_app make symlint
+
+
+Automatically fix some standards errors
+
+ docker exec -it bep_app make fix.all
+
+### Debug helpers
+
+ docker exec -it bep_app make dump.autowire
+ docker exec -it bep_app make dump.container
+ docker exec -it bep_app make dump.env
+ docker exec -it bep_app make dump.params
+ docker exec -it bep_app make dump.router
+ docker exec -it bep_app make dump.twig
diff --git a/bin/console b/bin/console
index 5de0e1c..c933dc5 100755
--- a/bin/console
+++ b/bin/console
@@ -3,40 +3,15 @@
use App\Kernel;
use Symfony\Bundle\FrameworkBundle\Console\Application;
-use Symfony\Component\Console\Input\ArgvInput;
-use Symfony\Component\ErrorHandler\Debug;
-if (!in_array(PHP_SAPI, ['cli', 'phpdbg', 'embed'], true)) {
- echo 'Warning: The console should be invoked via the CLI version of PHP, not the '.PHP_SAPI.' SAPI'.PHP_EOL;
+if (!is_file(dirname(__DIR__).'/vendor/autoload_runtime.php')) {
+ throw new LogicException('Symfony Runtime is missing. Try running "composer require symfony/runtime".');
}
-set_time_limit(0);
+require_once dirname(__DIR__).'/vendor/autoload_runtime.php';
-require dirname(__DIR__).'/vendor/autoload.php';
+return function (array $context) {
+ $kernel = new Kernel($context['APP_ENV'], (bool) $context['APP_DEBUG']);
-if (!class_exists(Application::class)) {
- throw new LogicException('You need to add "symfony/framework-bundle" as a Composer dependency.');
-}
-
-$input = new ArgvInput();
-if (null !== $env = $input->getParameterOption(['--env', '-e'], null, true)) {
- putenv('APP_ENV='.$_SERVER['APP_ENV'] = $_ENV['APP_ENV'] = $env);
-}
-
-if ($input->hasParameterOption('--no-debug', true)) {
- putenv('APP_DEBUG='.$_SERVER['APP_DEBUG'] = $_ENV['APP_DEBUG'] = '0');
-}
-
-require dirname(__DIR__).'/config/bootstrap.php';
-
-if ($_SERVER['APP_DEBUG']) {
- umask(0000);
-
- if (class_exists(Debug::class)) {
- Debug::enable();
- }
-}
-
-$kernel = new Kernel($_SERVER['APP_ENV'], (bool) $_SERVER['APP_DEBUG']);
-$application = new Application($kernel);
-$application->run($input);
+ return new Application($kernel);
+};
diff --git a/composer.json b/composer.json
index 74c7231..1ab8f09 100644
--- a/composer.json
+++ b/composer.json
@@ -4,73 +4,75 @@
"description": "Books in English Parishes",
"license": "GPL-2.0-or-later",
"require": {
- "php": ">=7.4",
+ "php": "^8.2",
"ext-ctype": "*",
"ext-iconv": "*",
"ext-imagick": "*",
"ext-json": "*",
"beberlei/doctrineextensions": "^1.3",
"aternus/geonames-client": "^2.2",
- "doctrine/annotations": "^1.0",
- "doctrine/cache": "^2.1",
- "doctrine/common": "^3.2",
- "doctrine/doctrine-bundle": "^2.3",
+ "doctrine/cache": "^2.2",
+ "doctrine/common": "^3.4",
+ "doctrine/doctrine-bundle": "^2.10",
"doctrine/doctrine-migrations-bundle": "^3.2",
- "doctrine/orm": "^2.7",
+ "doctrine/orm": "^2.15",
+ "knplabs/knp-menu-bundle": "^3.2",
+ "knplabs/knp-paginator-bundle": "^6.2",
"ninsuo/symfony-collection": "^2.1",
- "phpdocumentor/reflection-docblock": "^5.2",
+ "phpdocumentor/reflection-docblock": "^5.3",
"sensio/framework-extra-bundle": "^6.2",
- "symfony/asset": "4.4.*",
- "symfony/console": "4.4.*",
- "symfony/dotenv": "4.4.*",
- "symfony/expression-language": "4.4.*",
- "symfony/flex": "^1.17.1",
- "symfony/form": "4.4.*",
- "symfony/framework-bundle": "4.4.*",
- "symfony/http-client": "4.4.*",
- "symfony/intl": "4.4.*",
- "symfony/mailer": "4.4.*",
- "symfony/monolog-bundle": "^3.1",
- "symfony/process": "4.4.*",
- "symfony/property-access": "4.4.*",
- "symfony/property-info": "4.4.*",
- "symfony/proxy-manager-bridge": "4.4.*",
- "symfony/security-bundle": "4.4.*",
- "symfony/serializer": "4.4.*",
- "symfony/translation": "4.4.*",
- "symfony/twig-bundle": "4.4.*",
- "symfony/validator": "4.4.*",
- "symfony/web-link": "4.4.*",
- "symfony/yaml": "4.4.*",
+ "sfu-dhil/nines": "6.3.17",
+ "symfony/asset": "6.3.*",
+ "symfony/console": "6.3.*",
+ "symfony/dotenv": "6.3.*",
+ "symfony/expression-language": "6.3.*",
+ "symfony/flex": "^2.3.2",
+ "symfony/form": "6.3.*",
+ "symfony/framework-bundle": "6.3.*",
+ "symfony/http-client": "6.3.*",
+ "symfony/http-foundation": "6.3.*",
+ "symfony/intl": "6.3.*",
+ "symfony/mailer": "6.3.*",
+ "symfony/monolog-bundle": "^3.8",
+ "symfony/process": "6.3.*",
+ "symfony/property-access": "6.3.*",
+ "symfony/property-info": "6.3.*",
+ "symfony/proxy-manager-bridge": "6.3.*",
+ "symfony/runtime": "6.3.*",
+ "symfony/security-bundle": "6.3.*",
+ "symfony/serializer": "6.3.*",
+ "symfony/translation": "6.3.*",
+ "symfony/twig-bundle": "6.3.*",
+ "symfony/validator": "6.3.*",
+ "symfony/web-link": "6.3.*",
+ "symfony/yaml": "6.3.*",
"tetranz/select2entity-bundle": "^3.1",
- "twig/extra-bundle": "^2.12|^3.0",
- "twig/intl-extra": "^3.0",
- "twig/string-extra": "^3.0",
- "twig/twig": "^2.12|^3.0",
- "ubermichael/nines": "dev-4.x-up"
+ "twig/extra-bundle": "^3.7",
+ "twig/intl-extra": "^3.7",
+ "twig/string-extra": "^3.7",
+ "twig/twig": "^3.7"
},
"require-dev": {
- "dama/doctrine-test-bundle": "^6.7",
- "deployer/deployer": "^6.8",
+ "dama/doctrine-test-bundle": "^7.2",
"doctrine/doctrine-fixtures-bundle": "^3.4",
- "friendsofphp/php-cs-fixer": "^3.4",
- "friendsoftwig/twigcs": "^5.1",
- "phpstan/phpstan": "^1.3",
+ "friendsofphp/php-cs-fixer": "^3.22",
+ "friendsoftwig/twigcs": "^6.2",
+ "phpstan/phpstan": "^1.10",
"phpstan/phpstan-doctrine": "^1.3",
- "phpstan/phpstan-symfony": "^1.1",
- "phpunit/phpunit": "^9.5",
- "symfony/browser-kit": "4.4.*",
- "symfony/css-selector": "4.4.*",
- "symfony/debug-bundle": "4.4.*",
- "symfony/maker-bundle": "^1.36",
- "symfony/phpunit-bridge": "^6.0",
- "symfony/stopwatch": "4.4.*",
- "symfony/web-profiler-bundle": "4.4.*"
+ "phpstan/phpstan-symfony": "^1.3",
+ "phpunit/phpunit": "^9.6",
+ "symfony/browser-kit": "6.3.*",
+ "symfony/css-selector": "6.3.*",
+ "symfony/debug-bundle": "6.3.*",
+ "symfony/maker-bundle": "^1.50",
+ "symfony/phpunit-bridge": "^6.3",
+ "symfony/stopwatch": "6.3.*",
+ "symfony/web-profiler-bundle": "6.3.*"
},
"repositories": [
{
- "type": "github",
- "url": "https://github.com/ubermichael/nines-bundles.git"
+ "type": "git",
+ "url": "https://github.com/sfu-dhil/nines-bundles.git"
}
],
"config": {
@@ -79,7 +81,8 @@
},
"sort-packages": true,
"allow-plugins": {
- "symfony/flex": true
+ "symfony/flex": true,
+ "symfony/runtime": true
}
},
"autoload": {
@@ -120,7 +123,7 @@
"extra": {
"symfony": {
"allow-contrib": false,
- "require": "4.4.*"
+ "require": "6.3.*"
}
}
}
diff --git a/composer.lock b/composer.lock
index 4618dd2..772fd22 100644
--- a/composer.lock
+++ b/composer.lock
@@ -4,20 +4,20 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically"
],
- "content-hash": "dcc047c4c9559b6547741a786e990b17",
+ "content-hash": "bba9d486afd314c548a52428dd8a9b55",
"packages": [
{
"name": "aternus/geonames-client",
- "version": "2.2.2",
+ "version": "2.3.1",
"source": {
"type": "git",
"url": "https://github.com/Aternus/geonames-client.git",
- "reference": "fb5c26c62aadff39118a18c4fbadd322aab1602f"
+ "reference": "0d996ee5670b1df091da52df3e001dd37d90908b"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/Aternus/geonames-client/zipball/fb5c26c62aadff39118a18c4fbadd322aab1602f",
- "reference": "fb5c26c62aadff39118a18c4fbadd322aab1602f",
+ "url": "https://api.github.com/repos/Aternus/geonames-client/zipball/0d996ee5670b1df091da52df3e001dd37d90908b",
+ "reference": "0d996ee5670b1df091da52df3e001dd37d90908b",
"shasum": ""
},
"require": {
@@ -65,31 +65,36 @@
"issues": "https://github.com/Aternus/geonames-client/issues",
"source": "https://github.com/Aternus/geonames-client"
},
- "time": "2021-11-27T14:28:45+00:00"
+ "time": "2024-01-03T00:01:26+00:00"
},
{
"name": "beberlei/doctrineextensions",
- "version": "v1.3.0",
+ "version": "v1.5.0",
"source": {
"type": "git",
"url": "https://github.com/beberlei/DoctrineExtensions.git",
- "reference": "008f162f191584a6c37c03a803f718802ba9dd9a"
+ "reference": "281f1650641c2f438b0a54d8eaa7ba50ac7e3eb6"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/beberlei/DoctrineExtensions/zipball/008f162f191584a6c37c03a803f718802ba9dd9a",
- "reference": "008f162f191584a6c37c03a803f718802ba9dd9a",
+ "url": "https://api.github.com/repos/beberlei/DoctrineExtensions/zipball/281f1650641c2f438b0a54d8eaa7ba50ac7e3eb6",
+ "reference": "281f1650641c2f438b0a54d8eaa7ba50ac7e3eb6",
"shasum": ""
},
"require": {
- "doctrine/orm": "^2.7",
+ "doctrine/orm": "^2.19 || ^3.0",
"php": "^7.2 || ^8.0"
},
"require-dev": {
- "friendsofphp/php-cs-fixer": "^2.14",
- "nesbot/carbon": "*",
- "phpunit/phpunit": "^7.0 || ^8.0 || ^9.0",
- "symfony/yaml": "^4.2 || ^5.0",
+ "doctrine/annotations": "^1.14 || ^2",
+ "doctrine/coding-standard": "^9.0.2 || ^12.0",
+ "nesbot/carbon": "^2.72 || ^3",
+ "phpstan/phpstan": "^1.10",
+ "phpunit/phpunit": "^8.5 || ^9.6",
+ "squizlabs/php_codesniffer": "^3.8",
+ "symfony/cache": "^5.4 || ^6.4 || ^7.0",
+ "symfony/yaml": "^5.4 || ^6.4 || ^7.0",
+ "vimeo/psalm": "^3.18 || ^5.22",
"zf1/zend-date": "^1.12",
"zf1/zend-registry": "^1.12"
},
@@ -120,38 +125,41 @@
"orm"
],
"support": {
- "source": "https://github.com/beberlei/DoctrineExtensions/tree/v1.3.0"
+ "source": "https://github.com/beberlei/DoctrineExtensions/tree/v1.5.0"
},
- "time": "2020-11-29T07:37:23+00:00"
+ "time": "2024-03-03T17:55:15+00:00"
},
{
"name": "doctrine/annotations",
- "version": "1.13.3",
+ "version": "2.0.1",
"source": {
"type": "git",
"url": "https://github.com/doctrine/annotations.git",
- "reference": "648b0343343565c4a056bfc8392201385e8d89f0"
+ "reference": "e157ef3f3124bbf6fe7ce0ffd109e8a8ef284e7f"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/doctrine/annotations/zipball/648b0343343565c4a056bfc8392201385e8d89f0",
- "reference": "648b0343343565c4a056bfc8392201385e8d89f0",
+ "url": "https://api.github.com/repos/doctrine/annotations/zipball/e157ef3f3124bbf6fe7ce0ffd109e8a8ef284e7f",
+ "reference": "e157ef3f3124bbf6fe7ce0ffd109e8a8ef284e7f",
"shasum": ""
},
"require": {
- "doctrine/lexer": "1.*",
+ "doctrine/lexer": "^2 || ^3",
"ext-tokenizer": "*",
- "php": "^7.1 || ^8.0",
+ "php": "^7.2 || ^8.0",
"psr/cache": "^1 || ^2 || ^3"
},
"require-dev": {
- "doctrine/cache": "^1.11 || ^2.0",
- "doctrine/coding-standard": "^6.0 || ^8.1",
- "phpstan/phpstan": "^1.4.10 || ^1.8.0",
- "phpunit/phpunit": "^7.5 || ^8.0 || ^9.1.5",
- "symfony/cache": "^4.4 || ^5.2",
+ "doctrine/cache": "^2.0",
+ "doctrine/coding-standard": "^10",
+ "phpstan/phpstan": "^1.8.0",
+ "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5",
+ "symfony/cache": "^5.4 || ^6",
"vimeo/psalm": "^4.10"
},
+ "suggest": {
+ "php": "PHP 8.0 or higher comes with attributes, a native replacement for annotations"
+ },
"type": "library",
"autoload": {
"psr-4": {
@@ -193,9 +201,9 @@
],
"support": {
"issues": "https://github.com/doctrine/annotations/issues",
- "source": "https://github.com/doctrine/annotations/tree/1.13.3"
+ "source": "https://github.com/doctrine/annotations/tree/2.0.1"
},
- "time": "2022-07-02T10:48:51+00:00"
+ "time": "2023-02-02T22:02:53+00:00"
},
{
"name": "doctrine/cache",
@@ -292,32 +300,34 @@
},
{
"name": "doctrine/collections",
- "version": "1.7.0",
+ "version": "2.2.2",
"source": {
"type": "git",
"url": "https://github.com/doctrine/collections.git",
- "reference": "07d15c8a766e664ec271ae84e5dfc597aeeb03b1"
+ "reference": "d8af7f248c74f195f7347424600fd9e17b57af59"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/doctrine/collections/zipball/07d15c8a766e664ec271ae84e5dfc597aeeb03b1",
- "reference": "07d15c8a766e664ec271ae84e5dfc597aeeb03b1",
+ "url": "https://api.github.com/repos/doctrine/collections/zipball/d8af7f248c74f195f7347424600fd9e17b57af59",
+ "reference": "d8af7f248c74f195f7347424600fd9e17b57af59",
"shasum": ""
},
"require": {
- "doctrine/deprecations": "^0.5.3 || ^1",
- "php": "^7.1.3 || ^8.0"
+ "doctrine/deprecations": "^1",
+ "php": "^8.1"
},
"require-dev": {
- "doctrine/coding-standard": "^9.0",
- "phpstan/phpstan": "^1.4.8",
- "phpunit/phpunit": "^7.5 || ^8.5 || ^9.1.5",
- "vimeo/psalm": "^4.22"
+ "doctrine/coding-standard": "^12",
+ "ext-json": "*",
+ "phpstan/phpstan": "^1.8",
+ "phpstan/phpstan-phpunit": "^1.0",
+ "phpunit/phpunit": "^10.5",
+ "vimeo/psalm": "^5.11"
},
"type": "library",
"autoload": {
"psr-4": {
- "Doctrine\\Common\\Collections\\": "lib/Doctrine/Common/Collections"
+ "Doctrine\\Common\\Collections\\": "src"
}
},
"notification-url": "https://packagist.org/downloads/",
@@ -356,22 +366,36 @@
],
"support": {
"issues": "https://github.com/doctrine/collections/issues",
- "source": "https://github.com/doctrine/collections/tree/1.7.0"
+ "source": "https://github.com/doctrine/collections/tree/2.2.2"
},
- "time": "2022-08-18T05:44:45+00:00"
+ "funding": [
+ {
+ "url": "https://www.doctrine-project.org/sponsorship.html",
+ "type": "custom"
+ },
+ {
+ "url": "https://www.patreon.com/phpdoctrine",
+ "type": "patreon"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/doctrine%2Fcollections",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2024-04-18T06:56:21+00:00"
},
{
"name": "doctrine/common",
- "version": "3.3.0",
+ "version": "3.4.4",
"source": {
"type": "git",
"url": "https://github.com/doctrine/common.git",
- "reference": "c824e95d4c83b7102d8bc60595445a6f7d540f96"
+ "reference": "0aad4b7ab7ce8c6602dfbb1e1a24581275fb9d1a"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/doctrine/common/zipball/c824e95d4c83b7102d8bc60595445a6f7d540f96",
- "reference": "c824e95d4c83b7102d8bc60595445a6f7d540f96",
+ "url": "https://api.github.com/repos/doctrine/common/zipball/0aad4b7ab7ce8c6602dfbb1e1a24581275fb9d1a",
+ "reference": "0aad4b7ab7ce8c6602dfbb1e1a24581275fb9d1a",
"shasum": ""
},
"require": {
@@ -379,18 +403,19 @@
"php": "^7.1 || ^8.0"
},
"require-dev": {
- "doctrine/coding-standard": "^9.0",
+ "doctrine/coding-standard": "^9.0 || ^10.0",
+ "doctrine/collections": "^1",
"phpstan/phpstan": "^1.4.1",
"phpstan/phpstan-phpunit": "^1",
"phpunit/phpunit": "^7.5.20 || ^8.5 || ^9.0",
"squizlabs/php_codesniffer": "^3.0",
- "symfony/phpunit-bridge": "^4.0.5",
+ "symfony/phpunit-bridge": "^6.1",
"vimeo/psalm": "^4.4"
},
"type": "library",
"autoload": {
"psr-4": {
- "Doctrine\\Common\\": "lib/Doctrine/Common"
+ "Doctrine\\Common\\": "src"
}
},
"notification-url": "https://packagist.org/downloads/",
@@ -432,7 +457,7 @@
],
"support": {
"issues": "https://github.com/doctrine/common/issues",
- "source": "https://github.com/doctrine/common/tree/3.3.0"
+ "source": "https://github.com/doctrine/common/tree/3.4.4"
},
"funding": [
{
@@ -448,42 +473,44 @@
"type": "tidelift"
}
],
- "time": "2022-02-05T18:28:51+00:00"
+ "time": "2024-04-16T13:35:33+00:00"
},
{
"name": "doctrine/dbal",
- "version": "3.4.1",
+ "version": "3.8.4",
"source": {
"type": "git",
"url": "https://github.com/doctrine/dbal.git",
- "reference": "94e016428884227245fb1219e0de7d8b86ca16d7"
+ "reference": "b05e48a745f722801f55408d0dbd8003b403dbbd"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/doctrine/dbal/zipball/94e016428884227245fb1219e0de7d8b86ca16d7",
- "reference": "94e016428884227245fb1219e0de7d8b86ca16d7",
+ "url": "https://api.github.com/repos/doctrine/dbal/zipball/b05e48a745f722801f55408d0dbd8003b403dbbd",
+ "reference": "b05e48a745f722801f55408d0dbd8003b403dbbd",
"shasum": ""
},
"require": {
"composer-runtime-api": "^2",
"doctrine/cache": "^1.11|^2.0",
"doctrine/deprecations": "^0.5.3|^1",
- "doctrine/event-manager": "^1.0",
+ "doctrine/event-manager": "^1|^2",
"php": "^7.4 || ^8.0",
"psr/cache": "^1|^2|^3",
"psr/log": "^1|^2|^3"
},
"require-dev": {
- "doctrine/coding-standard": "9.0.0",
- "jetbrains/phpstorm-stubs": "2022.1",
- "phpstan/phpstan": "1.8.2",
- "phpstan/phpstan-strict-rules": "^1.3",
- "phpunit/phpunit": "9.5.21",
- "psalm/plugin-phpunit": "0.17.0",
- "squizlabs/php_codesniffer": "3.7.1",
- "symfony/cache": "^5.4|^6.0",
- "symfony/console": "^4.4|^5.4|^6.0",
- "vimeo/psalm": "4.24.0"
+ "doctrine/coding-standard": "12.0.0",
+ "fig/log-test": "^1",
+ "jetbrains/phpstorm-stubs": "2023.1",
+ "phpstan/phpstan": "1.10.58",
+ "phpstan/phpstan-strict-rules": "^1.5",
+ "phpunit/phpunit": "9.6.16",
+ "psalm/plugin-phpunit": "0.18.4",
+ "slevomat/coding-standard": "8.13.1",
+ "squizlabs/php_codesniffer": "3.9.0",
+ "symfony/cache": "^5.4|^6.0|^7.0",
+ "symfony/console": "^4.4|^5.4|^6.0|^7.0",
+ "vimeo/psalm": "4.30.0"
},
"suggest": {
"symfony/console": "For helpful console commands such as SQL execution and import of files."
@@ -543,7 +570,7 @@
],
"support": {
"issues": "https://github.com/doctrine/dbal/issues",
- "source": "https://github.com/doctrine/dbal/tree/3.4.1"
+ "source": "https://github.com/doctrine/dbal/tree/3.8.4"
},
"funding": [
{
@@ -559,29 +586,33 @@
"type": "tidelift"
}
],
- "time": "2022-08-16T18:37:46+00:00"
+ "time": "2024-04-25T07:04:44+00:00"
},
{
"name": "doctrine/deprecations",
- "version": "v1.0.0",
+ "version": "1.1.3",
"source": {
"type": "git",
"url": "https://github.com/doctrine/deprecations.git",
- "reference": "0e2a4f1f8cdfc7a92ec3b01c9334898c806b30de"
+ "reference": "dfbaa3c2d2e9a9df1118213f3b8b0c597bb99fab"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/doctrine/deprecations/zipball/0e2a4f1f8cdfc7a92ec3b01c9334898c806b30de",
- "reference": "0e2a4f1f8cdfc7a92ec3b01c9334898c806b30de",
+ "url": "https://api.github.com/repos/doctrine/deprecations/zipball/dfbaa3c2d2e9a9df1118213f3b8b0c597bb99fab",
+ "reference": "dfbaa3c2d2e9a9df1118213f3b8b0c597bb99fab",
"shasum": ""
},
"require": {
- "php": "^7.1|^8.0"
+ "php": "^7.1 || ^8.0"
},
"require-dev": {
"doctrine/coding-standard": "^9",
- "phpunit/phpunit": "^7.5|^8.5|^9.5",
- "psr/log": "^1|^2|^3"
+ "phpstan/phpstan": "1.4.10 || 1.10.15",
+ "phpstan/phpstan-phpunit": "^1.0",
+ "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5",
+ "psalm/plugin-phpunit": "0.18.4",
+ "psr/log": "^1 || ^2 || ^3",
+ "vimeo/psalm": "4.30.0 || 5.12.0"
},
"suggest": {
"psr/log": "Allows logging deprecations via PSR-3 logger implementation"
@@ -600,62 +631,68 @@
"homepage": "https://www.doctrine-project.org/",
"support": {
"issues": "https://github.com/doctrine/deprecations/issues",
- "source": "https://github.com/doctrine/deprecations/tree/v1.0.0"
+ "source": "https://github.com/doctrine/deprecations/tree/1.1.3"
},
- "time": "2022-05-02T15:47:09+00:00"
+ "time": "2024-01-30T19:34:25+00:00"
},
{
"name": "doctrine/doctrine-bundle",
- "version": "2.7.0",
+ "version": "2.12.0",
"source": {
"type": "git",
"url": "https://github.com/doctrine/DoctrineBundle.git",
- "reference": "d2088fc50494e4e7441fecca54732245a613eeb6"
+ "reference": "5418e811a14724068e95e0ba43353b903ada530f"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/doctrine/DoctrineBundle/zipball/d2088fc50494e4e7441fecca54732245a613eeb6",
- "reference": "d2088fc50494e4e7441fecca54732245a613eeb6",
+ "url": "https://api.github.com/repos/doctrine/DoctrineBundle/zipball/5418e811a14724068e95e0ba43353b903ada530f",
+ "reference": "5418e811a14724068e95e0ba43353b903ada530f",
"shasum": ""
},
"require": {
- "doctrine/annotations": "^1",
"doctrine/cache": "^1.11 || ^2.0",
- "doctrine/dbal": "^2.13.1|^3.3.2",
- "doctrine/persistence": "^2.2|^3",
+ "doctrine/dbal": "^3.7.0 || ^4.0",
+ "doctrine/persistence": "^2.2 || ^3",
"doctrine/sql-formatter": "^1.0.1",
- "php": "^7.1 || ^8.0",
- "symfony/cache": "^4.3.3|^5.0|^6.0",
- "symfony/config": "^4.4.3|^5.0|^6.0",
- "symfony/console": "^3.4.30|^4.3.3|^5.0|^6.0",
- "symfony/dependency-injection": "^4.4.18|^5.0|^6.0",
- "symfony/deprecation-contracts": "^2.1|^3",
- "symfony/doctrine-bridge": "^4.4.22|^5.2.7|^6.0",
- "symfony/framework-bundle": "^3.4.30|^4.3.3|^5.0|^6.0",
- "symfony/service-contracts": "^1.1.1|^2.0|^3"
+ "php": "^7.4 || ^8.0",
+ "symfony/cache": "^5.4 || ^6.0 || ^7.0",
+ "symfony/config": "^5.4 || ^6.0 || ^7.0",
+ "symfony/console": "^5.4 || ^6.0 || ^7.0",
+ "symfony/dependency-injection": "^5.4 || ^6.0 || ^7.0",
+ "symfony/deprecation-contracts": "^2.1 || ^3",
+ "symfony/doctrine-bridge": "^5.4.19 || ^6.0.7 || ^7.0",
+ "symfony/framework-bundle": "^5.4 || ^6.0 || ^7.0",
+ "symfony/polyfill-php80": "^1.15",
+ "symfony/service-contracts": "^1.1.1 || ^2.0 || ^3"
},
"conflict": {
- "doctrine/orm": "<2.10|>=3.0",
- "twig/twig": "<1.34|>=2.0,<2.4"
+ "doctrine/annotations": ">=3.0",
+ "doctrine/orm": "<2.17 || >=4.0",
+ "twig/twig": "<1.34 || >=2.0 <2.4"
},
"require-dev": {
- "doctrine/coding-standard": "^9.0",
- "doctrine/orm": "^2.11 || ^3.0",
+ "doctrine/annotations": "^1 || ^2",
+ "doctrine/coding-standard": "^12",
+ "doctrine/deprecations": "^1.0",
+ "doctrine/orm": "^2.17 || ^3.0",
"friendsofphp/proxy-manager-lts": "^1.0",
- "phpunit/phpunit": "^7.5 || ^8.0 || ^9.3 || ^10.0",
- "psalm/plugin-phpunit": "^0.16.1",
- "psalm/plugin-symfony": "^3",
- "psr/log": "^1.1.4|^2.0|^3.0",
- "symfony/phpunit-bridge": "^5.2|^6.0",
- "symfony/property-info": "^4.3.3|^5.0|^6.0",
- "symfony/proxy-manager-bridge": "^3.4|^4.3.3|^5.0|^6.0",
- "symfony/security-bundle": "^4.4|^5.0|^6.0",
- "symfony/twig-bridge": "^3.4.30|^4.3.3|^5.0|^6.0",
- "symfony/validator": "^3.4.30|^4.3.3|^5.0|^6.0",
- "symfony/web-profiler-bundle": "^3.4.30|^4.3.3|^5.0|^6.0",
- "symfony/yaml": "^3.4.30|^4.3.3|^5.0|^6.0",
- "twig/twig": "^1.34|^2.12|^3.0",
- "vimeo/psalm": "^4.7"
+ "phpunit/phpunit": "^9.5.26",
+ "psalm/plugin-phpunit": "^0.18.4",
+ "psalm/plugin-symfony": "^5",
+ "psr/log": "^1.1.4 || ^2.0 || ^3.0",
+ "symfony/phpunit-bridge": "^6.1 || ^7.0",
+ "symfony/property-info": "^5.4 || ^6.0 || ^7.0",
+ "symfony/proxy-manager-bridge": "^5.4 || ^6.0 || ^7.0",
+ "symfony/security-bundle": "^5.4 || ^6.0 || ^7.0",
+ "symfony/stopwatch": "^5.4 || ^6.0 || ^7.0",
+ "symfony/string": "^5.4 || ^6.0 || ^7.0",
+ "symfony/twig-bridge": "^5.4 || ^6.0 || ^7.0",
+ "symfony/validator": "^5.4 || ^6.0 || ^7.0",
+ "symfony/var-exporter": "^5.4 || ^6.2 || ^7.0",
+ "symfony/web-profiler-bundle": "^5.4 || ^6.0 || ^7.0",
+ "symfony/yaml": "^5.4 || ^6.0 || ^7.0",
+ "twig/twig": "^1.34 || ^2.12 || ^3.0",
+ "vimeo/psalm": "^5.15"
},
"suggest": {
"doctrine/orm": "The Doctrine ORM integration is optional in the bundle.",
@@ -665,7 +702,7 @@
"type": "symfony-bundle",
"autoload": {
"psr-4": {
- "Doctrine\\Bundle\\DoctrineBundle\\": ""
+ "Doctrine\\Bundle\\DoctrineBundle\\": "src"
}
},
"notification-url": "https://packagist.org/downloads/",
@@ -700,7 +737,7 @@
],
"support": {
"issues": "https://github.com/doctrine/DoctrineBundle/issues",
- "source": "https://github.com/doctrine/DoctrineBundle/tree/2.7.0"
+ "source": "https://github.com/doctrine/DoctrineBundle/tree/2.12.0"
},
"funding": [
{
@@ -716,38 +753,44 @@
"type": "tidelift"
}
],
- "time": "2022-06-10T10:55:26+00:00"
+ "time": "2024-03-19T07:20:37+00:00"
},
{
"name": "doctrine/doctrine-migrations-bundle",
- "version": "3.2.2",
+ "version": "3.3.0",
"source": {
"type": "git",
"url": "https://github.com/doctrine/DoctrineMigrationsBundle.git",
- "reference": "3393f411ba25ade21969c33f2053220044854d01"
+ "reference": "1dd42906a5fb9c5960723e2ebb45c68006493835"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/doctrine/DoctrineMigrationsBundle/zipball/3393f411ba25ade21969c33f2053220044854d01",
- "reference": "3393f411ba25ade21969c33f2053220044854d01",
+ "url": "https://api.github.com/repos/doctrine/DoctrineMigrationsBundle/zipball/1dd42906a5fb9c5960723e2ebb45c68006493835",
+ "reference": "1dd42906a5fb9c5960723e2ebb45c68006493835",
"shasum": ""
},
"require": {
- "doctrine/doctrine-bundle": "~1.0|~2.0",
+ "doctrine/doctrine-bundle": "^2.4",
"doctrine/migrations": "^3.2",
"php": "^7.2|^8.0",
- "symfony/framework-bundle": "~3.4|~4.0|~5.0|~6.0"
+ "symfony/deprecation-contracts": "^2.1 || ^3",
+ "symfony/framework-bundle": "^5.4 || ^6.0 || ^7.0"
},
"require-dev": {
- "doctrine/coding-standard": "^8.0",
- "doctrine/orm": "^2.6",
- "doctrine/persistence": "^1.3||^2.0",
- "phpstan/phpstan": "^0.12",
- "phpstan/phpstan-deprecation-rules": "^0.12",
- "phpstan/phpstan-phpunit": "^0.12",
- "phpstan/phpstan-strict-rules": "^0.12",
- "phpunit/phpunit": "^8.0|^9.0",
- "vimeo/psalm": "^4.11"
+ "doctrine/coding-standard": "^12",
+ "doctrine/orm": "^2.6 || ^3",
+ "doctrine/persistence": "^2.0 || ^3 ",
+ "phpstan/phpstan": "^1.4",
+ "phpstan/phpstan-deprecation-rules": "^1",
+ "phpstan/phpstan-phpunit": "^1",
+ "phpstan/phpstan-strict-rules": "^1.1",
+ "phpstan/phpstan-symfony": "^1.3",
+ "phpunit/phpunit": "^8.5|^9.5",
+ "psalm/plugin-phpunit": "^0.18.4",
+ "psalm/plugin-symfony": "^3 || ^5",
+ "symfony/phpunit-bridge": "^6.3 || ^7",
+ "symfony/var-exporter": "^5.4 || ^6 || ^7",
+ "vimeo/psalm": "^4.30 || ^5.15"
},
"type": "symfony-bundle",
"autoload": {
@@ -785,7 +828,7 @@
],
"support": {
"issues": "https://github.com/doctrine/DoctrineMigrationsBundle/issues",
- "source": "https://github.com/doctrine/DoctrineMigrationsBundle/tree/3.2.2"
+ "source": "https://github.com/doctrine/DoctrineMigrationsBundle/tree/3.3.0"
},
"funding": [
{
@@ -801,38 +844,38 @@
"type": "tidelift"
}
],
- "time": "2022-02-01T18:08:07+00:00"
+ "time": "2023-11-13T19:44:41+00:00"
},
{
"name": "doctrine/event-manager",
- "version": "1.1.2",
+ "version": "2.0.0",
"source": {
"type": "git",
"url": "https://github.com/doctrine/event-manager.git",
- "reference": "eb2ecf80e3093e8f3c2769ac838e27d8ede8e683"
+ "reference": "750671534e0241a7c50ea5b43f67e23eb5c96f32"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/doctrine/event-manager/zipball/eb2ecf80e3093e8f3c2769ac838e27d8ede8e683",
- "reference": "eb2ecf80e3093e8f3c2769ac838e27d8ede8e683",
+ "url": "https://api.github.com/repos/doctrine/event-manager/zipball/750671534e0241a7c50ea5b43f67e23eb5c96f32",
+ "reference": "750671534e0241a7c50ea5b43f67e23eb5c96f32",
"shasum": ""
},
"require": {
- "php": "^7.1 || ^8.0"
+ "php": "^8.1"
},
"conflict": {
"doctrine/common": "<2.9"
},
"require-dev": {
- "doctrine/coding-standard": "^9",
- "phpstan/phpstan": "~1.4.10 || ^1.5.4",
- "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5",
- "vimeo/psalm": "^4.22"
+ "doctrine/coding-standard": "^10",
+ "phpstan/phpstan": "^1.8.8",
+ "phpunit/phpunit": "^9.5",
+ "vimeo/psalm": "^4.28"
},
"type": "library",
"autoload": {
"psr-4": {
- "Doctrine\\Common\\": "lib/Doctrine/Common"
+ "Doctrine\\Common\\": "src"
}
},
"notification-url": "https://packagist.org/downloads/",
@@ -876,7 +919,7 @@
],
"support": {
"issues": "https://github.com/doctrine/event-manager/issues",
- "source": "https://github.com/doctrine/event-manager/tree/1.1.2"
+ "source": "https://github.com/doctrine/event-manager/tree/2.0.0"
},
"funding": [
{
@@ -892,32 +935,32 @@
"type": "tidelift"
}
],
- "time": "2022-07-27T22:18:11+00:00"
+ "time": "2022-10-12T20:59:15+00:00"
},
{
"name": "doctrine/inflector",
- "version": "2.0.4",
+ "version": "2.0.10",
"source": {
"type": "git",
"url": "https://github.com/doctrine/inflector.git",
- "reference": "8b7ff3e4b7de6b2c84da85637b59fd2880ecaa89"
+ "reference": "5817d0659c5b50c9b950feb9af7b9668e2c436bc"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/doctrine/inflector/zipball/8b7ff3e4b7de6b2c84da85637b59fd2880ecaa89",
- "reference": "8b7ff3e4b7de6b2c84da85637b59fd2880ecaa89",
+ "url": "https://api.github.com/repos/doctrine/inflector/zipball/5817d0659c5b50c9b950feb9af7b9668e2c436bc",
+ "reference": "5817d0659c5b50c9b950feb9af7b9668e2c436bc",
"shasum": ""
},
"require": {
"php": "^7.2 || ^8.0"
},
"require-dev": {
- "doctrine/coding-standard": "^8.2",
- "phpstan/phpstan": "^0.12",
- "phpstan/phpstan-phpunit": "^0.12",
- "phpstan/phpstan-strict-rules": "^0.12",
- "phpunit/phpunit": "^7.0 || ^8.0 || ^9.0",
- "vimeo/psalm": "^4.10"
+ "doctrine/coding-standard": "^11.0",
+ "phpstan/phpstan": "^1.8",
+ "phpstan/phpstan-phpunit": "^1.1",
+ "phpstan/phpstan-strict-rules": "^1.3",
+ "phpunit/phpunit": "^8.5 || ^9.5",
+ "vimeo/psalm": "^4.25 || ^5.4"
},
"type": "library",
"autoload": {
@@ -967,7 +1010,7 @@
],
"support": {
"issues": "https://github.com/doctrine/inflector/issues",
- "source": "https://github.com/doctrine/inflector/tree/2.0.4"
+ "source": "https://github.com/doctrine/inflector/tree/2.0.10"
},
"funding": [
{
@@ -983,34 +1026,34 @@
"type": "tidelift"
}
],
- "time": "2021-10-22T20:16:43+00:00"
+ "time": "2024-02-18T20:23:39+00:00"
},
{
"name": "doctrine/instantiator",
- "version": "1.4.1",
+ "version": "2.0.0",
"source": {
"type": "git",
"url": "https://github.com/doctrine/instantiator.git",
- "reference": "10dcfce151b967d20fde1b34ae6640712c3891bc"
+ "reference": "c6222283fa3f4ac679f8b9ced9a4e23f163e80d0"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/doctrine/instantiator/zipball/10dcfce151b967d20fde1b34ae6640712c3891bc",
- "reference": "10dcfce151b967d20fde1b34ae6640712c3891bc",
+ "url": "https://api.github.com/repos/doctrine/instantiator/zipball/c6222283fa3f4ac679f8b9ced9a4e23f163e80d0",
+ "reference": "c6222283fa3f4ac679f8b9ced9a4e23f163e80d0",
"shasum": ""
},
"require": {
- "php": "^7.1 || ^8.0"
+ "php": "^8.1"
},
"require-dev": {
- "doctrine/coding-standard": "^9",
+ "doctrine/coding-standard": "^11",
"ext-pdo": "*",
"ext-phar": "*",
- "phpbench/phpbench": "^0.16 || ^1",
- "phpstan/phpstan": "^1.4",
- "phpstan/phpstan-phpunit": "^1",
- "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5",
- "vimeo/psalm": "^4.22"
+ "phpbench/phpbench": "^1.2",
+ "phpstan/phpstan": "^1.9.4",
+ "phpstan/phpstan-phpunit": "^1.3",
+ "phpunit/phpunit": "^9.5.27",
+ "vimeo/psalm": "^5.4"
},
"type": "library",
"autoload": {
@@ -1037,7 +1080,7 @@
],
"support": {
"issues": "https://github.com/doctrine/instantiator/issues",
- "source": "https://github.com/doctrine/instantiator/tree/1.4.1"
+ "source": "https://github.com/doctrine/instantiator/tree/2.0.0"
},
"funding": [
{
@@ -1053,35 +1096,36 @@
"type": "tidelift"
}
],
- "time": "2022-03-03T08:28:38+00:00"
+ "time": "2022-12-30T00:23:10+00:00"
},
{
"name": "doctrine/lexer",
- "version": "1.2.3",
+ "version": "3.0.1",
"source": {
"type": "git",
"url": "https://github.com/doctrine/lexer.git",
- "reference": "c268e882d4dbdd85e36e4ad69e02dc284f89d229"
+ "reference": "31ad66abc0fc9e1a1f2d9bc6a42668d2fbbcd6dd"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/doctrine/lexer/zipball/c268e882d4dbdd85e36e4ad69e02dc284f89d229",
- "reference": "c268e882d4dbdd85e36e4ad69e02dc284f89d229",
+ "url": "https://api.github.com/repos/doctrine/lexer/zipball/31ad66abc0fc9e1a1f2d9bc6a42668d2fbbcd6dd",
+ "reference": "31ad66abc0fc9e1a1f2d9bc6a42668d2fbbcd6dd",
"shasum": ""
},
"require": {
- "php": "^7.1 || ^8.0"
+ "php": "^8.1"
},
"require-dev": {
- "doctrine/coding-standard": "^9.0",
- "phpstan/phpstan": "^1.3",
- "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5",
- "vimeo/psalm": "^4.11"
+ "doctrine/coding-standard": "^12",
+ "phpstan/phpstan": "^1.10",
+ "phpunit/phpunit": "^10.5",
+ "psalm/plugin-phpunit": "^0.18.3",
+ "vimeo/psalm": "^5.21"
},
"type": "library",
"autoload": {
"psr-4": {
- "Doctrine\\Common\\Lexer\\": "lib/Doctrine/Common/Lexer"
+ "Doctrine\\Common\\Lexer\\": "src"
}
},
"notification-url": "https://packagist.org/downloads/",
@@ -1113,7 +1157,7 @@
],
"support": {
"issues": "https://github.com/doctrine/lexer/issues",
- "source": "https://github.com/doctrine/lexer/tree/1.2.3"
+ "source": "https://github.com/doctrine/lexer/tree/3.0.1"
},
"funding": [
{
@@ -1129,52 +1173,51 @@
"type": "tidelift"
}
],
- "time": "2022-02-28T11:07:21+00:00"
+ "time": "2024-02-05T11:56:58+00:00"
},
{
"name": "doctrine/migrations",
- "version": "3.5.2",
+ "version": "3.7.4",
"source": {
"type": "git",
"url": "https://github.com/doctrine/migrations.git",
- "reference": "61c6ef3a10b7df43c3b6388a184754f26e58700a"
+ "reference": "954e0a314c2f0eb9fb418210445111747de254a6"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/doctrine/migrations/zipball/61c6ef3a10b7df43c3b6388a184754f26e58700a",
- "reference": "61c6ef3a10b7df43c3b6388a184754f26e58700a",
+ "url": "https://api.github.com/repos/doctrine/migrations/zipball/954e0a314c2f0eb9fb418210445111747de254a6",
+ "reference": "954e0a314c2f0eb9fb418210445111747de254a6",
"shasum": ""
},
"require": {
"composer-runtime-api": "^2",
- "doctrine/dbal": "^3.3",
+ "doctrine/dbal": "^3.5.1 || ^4",
"doctrine/deprecations": "^0.5.3 || ^1",
- "doctrine/event-manager": "^1.0",
- "friendsofphp/proxy-manager-lts": "^1.0",
- "php": "^7.4 || ^8.0",
+ "doctrine/event-manager": "^1.2 || ^2.0",
+ "php": "^8.1",
"psr/log": "^1.1.3 || ^2 || ^3",
- "symfony/console": "^4.4.16 || ^5.4 || ^6.0",
- "symfony/stopwatch": "^4.4 || ^5.4 || ^6.0"
+ "symfony/console": "^5.4 || ^6.0 || ^7.0",
+ "symfony/stopwatch": "^5.4 || ^6.0 || ^7.0",
+ "symfony/var-exporter": "^6.2 || ^7.0"
},
"conflict": {
- "doctrine/orm": "<2.12"
+ "doctrine/orm": "<2.12 || >=4"
},
"require-dev": {
- "doctrine/coding-standard": "^9",
- "doctrine/orm": "^2.12",
+ "doctrine/coding-standard": "^12",
+ "doctrine/orm": "^2.13 || ^3",
"doctrine/persistence": "^2 || ^3",
"doctrine/sql-formatter": "^1.0",
- "ergebnis/composer-normalize": "^2.9",
"ext-pdo_sqlite": "*",
- "phpstan/phpstan": "^1.5",
- "phpstan/phpstan-deprecation-rules": "^1",
- "phpstan/phpstan-phpunit": "^1.1",
- "phpstan/phpstan-strict-rules": "^1.1",
- "phpstan/phpstan-symfony": "^1.1",
- "phpunit/phpunit": "^9.5",
- "symfony/cache": "^4.4 || ^5.4 || ^6.0",
- "symfony/process": "^4.4 || ^5.4 || ^6.0",
- "symfony/yaml": "^4.4 || ^5.4 || ^6.0"
+ "phpstan/phpstan": "^1.10",
+ "phpstan/phpstan-deprecation-rules": "^1.1",
+ "phpstan/phpstan-phpunit": "^1.3",
+ "phpstan/phpstan-strict-rules": "^1.4",
+ "phpstan/phpstan-symfony": "^1.3",
+ "phpunit/phpunit": "^10.3",
+ "symfony/cache": "^5.4 || ^6.0 || ^7.0",
+ "symfony/process": "^5.4 || ^6.0 || ^7.0",
+ "symfony/yaml": "^5.4 || ^6.0 || ^7.0"
},
"suggest": {
"doctrine/sql-formatter": "Allows to generate formatted SQL with the diff command.",
@@ -1184,12 +1227,6 @@
"bin/doctrine-migrations"
],
"type": "library",
- "extra": {
- "composer-normalize": {
- "indent-size": 4,
- "indent-style": "space"
- }
- },
"autoload": {
"psr-4": {
"Doctrine\\Migrations\\": "lib/Doctrine/Migrations"
@@ -1222,7 +1259,7 @@
],
"support": {
"issues": "https://github.com/doctrine/migrations/issues",
- "source": "https://github.com/doctrine/migrations/tree/3.5.2"
+ "source": "https://github.com/doctrine/migrations/tree/3.7.4"
},
"funding": [
{
@@ -1238,55 +1275,56 @@
"type": "tidelift"
}
],
- "time": "2022-08-04T14:29:49+00:00"
+ "time": "2024-03-06T13:41:11+00:00"
},
{
"name": "doctrine/orm",
- "version": "2.13.1",
+ "version": "2.19.5",
"source": {
"type": "git",
"url": "https://github.com/doctrine/orm.git",
- "reference": "35c44a56677adb3ce796138b6e4934ce93ec6811"
+ "reference": "94986af28452da42a46a4489d1c958a2e5d710e5"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/doctrine/orm/zipball/35c44a56677adb3ce796138b6e4934ce93ec6811",
- "reference": "35c44a56677adb3ce796138b6e4934ce93ec6811",
+ "url": "https://api.github.com/repos/doctrine/orm/zipball/94986af28452da42a46a4489d1c958a2e5d710e5",
+ "reference": "94986af28452da42a46a4489d1c958a2e5d710e5",
"shasum": ""
},
"require": {
"composer-runtime-api": "^2",
"doctrine/cache": "^1.12.1 || ^2.1.1",
- "doctrine/collections": "^1.5",
+ "doctrine/collections": "^1.5 || ^2.1",
"doctrine/common": "^3.0.3",
"doctrine/dbal": "^2.13.1 || ^3.2",
"doctrine/deprecations": "^0.5.3 || ^1",
- "doctrine/event-manager": "^1.1",
+ "doctrine/event-manager": "^1.2 || ^2",
"doctrine/inflector": "^1.4 || ^2.0",
- "doctrine/instantiator": "^1.3",
- "doctrine/lexer": "^1.2.3",
+ "doctrine/instantiator": "^1.3 || ^2",
+ "doctrine/lexer": "^2 || ^3",
"doctrine/persistence": "^2.4 || ^3",
"ext-ctype": "*",
"php": "^7.1 || ^8.0",
"psr/cache": "^1 || ^2 || ^3",
- "symfony/console": "^3.0 || ^4.0 || ^5.0 || ^6.0",
+ "symfony/console": "^4.2 || ^5.0 || ^6.0 || ^7.0",
"symfony/polyfill-php72": "^1.23",
"symfony/polyfill-php80": "^1.16"
},
"conflict": {
- "doctrine/annotations": "<1.13 || >= 2.0"
+ "doctrine/annotations": "<1.13 || >= 3.0"
},
"require-dev": {
- "doctrine/annotations": "^1.13",
- "doctrine/coding-standard": "^9.0",
+ "doctrine/annotations": "^1.13 || ^2",
+ "doctrine/coding-standard": "^9.0.2 || ^12.0",
"phpbench/phpbench": "^0.16.10 || ^1.0",
- "phpstan/phpstan": "~1.4.10 || 1.8.2",
- "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5",
+ "phpstan/phpstan": "~1.4.10 || 1.10.59",
+ "phpunit/phpunit": "^7.5 || ^8.5 || ^9.6",
"psr/log": "^1 || ^2 || ^3",
- "squizlabs/php_codesniffer": "3.7.1",
- "symfony/cache": "^4.4 || ^5.4 || ^6.0",
- "symfony/yaml": "^3.4 || ^4.0 || ^5.0 || ^6.0",
- "vimeo/psalm": "4.26.0"
+ "squizlabs/php_codesniffer": "3.7.2",
+ "symfony/cache": "^4.4 || ^5.4 || ^6.4 || ^7.0",
+ "symfony/var-exporter": "^4.4 || ^5.4 || ^6.2 || ^7.0",
+ "symfony/yaml": "^3.4 || ^4.0 || ^5.0 || ^6.0 || ^7.0",
+ "vimeo/psalm": "4.30.0 || 5.22.2"
},
"suggest": {
"ext-dom": "Provides support for XSD validation for XML mapping files",
@@ -1299,7 +1337,7 @@
"type": "library",
"autoload": {
"psr-4": {
- "Doctrine\\ORM\\": "lib/Doctrine/ORM"
+ "Doctrine\\ORM\\": "src"
}
},
"notification-url": "https://packagist.org/downloads/",
@@ -1336,50 +1374,46 @@
],
"support": {
"issues": "https://github.com/doctrine/orm/issues",
- "source": "https://github.com/doctrine/orm/tree/2.13.1"
+ "source": "https://github.com/doctrine/orm/tree/2.19.5"
},
- "time": "2022-08-08T09:00:16+00:00"
+ "time": "2024-04-30T06:49:54+00:00"
},
{
"name": "doctrine/persistence",
- "version": "2.5.4",
+ "version": "3.3.2",
"source": {
"type": "git",
"url": "https://github.com/doctrine/persistence.git",
- "reference": "830c2ba42093e0e428eca37568ab36bd8008bc17"
+ "reference": "477da35bd0255e032826f440b94b3e37f2d56f42"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/doctrine/persistence/zipball/830c2ba42093e0e428eca37568ab36bd8008bc17",
- "reference": "830c2ba42093e0e428eca37568ab36bd8008bc17",
+ "url": "https://api.github.com/repos/doctrine/persistence/zipball/477da35bd0255e032826f440b94b3e37f2d56f42",
+ "reference": "477da35bd0255e032826f440b94b3e37f2d56f42",
"shasum": ""
},
"require": {
- "doctrine/cache": "^1.11 || ^2.0",
- "doctrine/collections": "^1.0",
- "doctrine/deprecations": "^0.5.3 || ^1",
- "doctrine/event-manager": "^1.0",
- "php": "^7.1 || ^8.0",
+ "doctrine/event-manager": "^1 || ^2",
+ "php": "^7.2 || ^8.0",
"psr/cache": "^1.0 || ^2.0 || ^3.0"
},
"conflict": {
- "doctrine/annotations": "<1.0 || >=2.0",
"doctrine/common": "<2.10"
},
"require-dev": {
"composer/package-versions-deprecated": "^1.11",
- "doctrine/annotations": "^1.0",
- "doctrine/coding-standard": "^9.0",
+ "doctrine/coding-standard": "^11",
"doctrine/common": "^3.0",
- "phpstan/phpstan": "~1.4.10 || 1.5.0",
- "phpunit/phpunit": "^7.5.20 || ^8.5 || ^9.5",
+ "phpstan/phpstan": "1.9.4",
+ "phpstan/phpstan-phpunit": "^1",
+ "phpstan/phpstan-strict-rules": "^1.1",
+ "phpunit/phpunit": "^8.5 || ^9.5",
"symfony/cache": "^4.4 || ^5.4 || ^6.0",
- "vimeo/psalm": "4.22.0"
+ "vimeo/psalm": "4.30.0 || 5.3.0"
},
"type": "library",
"autoload": {
"psr-4": {
- "Doctrine\\Common\\": "src/Common",
"Doctrine\\Persistence\\": "src/Persistence"
}
},
@@ -1414,7 +1448,7 @@
}
],
"description": "The Doctrine Persistence project is a set of shared interfaces and functionality that the different Doctrine object mappers share.",
- "homepage": "https://doctrine-project.org/projects/persistence.html",
+ "homepage": "https://www.doctrine-project.org/projects/persistence.html",
"keywords": [
"mapper",
"object",
@@ -1424,7 +1458,7 @@
],
"support": {
"issues": "https://github.com/doctrine/persistence/issues",
- "source": "https://github.com/doctrine/persistence/tree/2.5.4"
+ "source": "https://github.com/doctrine/persistence/tree/3.3.2"
},
"funding": [
{
@@ -1440,27 +1474,30 @@
"type": "tidelift"
}
],
- "time": "2022-08-06T22:06:57+00:00"
+ "time": "2024-03-12T14:54:36+00:00"
},
{
"name": "doctrine/sql-formatter",
- "version": "1.1.3",
+ "version": "1.3.0",
"source": {
"type": "git",
"url": "https://github.com/doctrine/sql-formatter.git",
- "reference": "25a06c7bf4c6b8218f47928654252863ffc890a5"
+ "reference": "3447381095d32a171fe3a58323749f44dbb5ac7d"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/doctrine/sql-formatter/zipball/25a06c7bf4c6b8218f47928654252863ffc890a5",
- "reference": "25a06c7bf4c6b8218f47928654252863ffc890a5",
+ "url": "https://api.github.com/repos/doctrine/sql-formatter/zipball/3447381095d32a171fe3a58323749f44dbb5ac7d",
+ "reference": "3447381095d32a171fe3a58323749f44dbb5ac7d",
"shasum": ""
},
"require": {
- "php": "^7.1 || ^8.0"
+ "php": "^7.2 || ^8.0"
},
"require-dev": {
- "bamarni/composer-bin-plugin": "^1.4"
+ "doctrine/coding-standard": "^9.0",
+ "phpstan/phpstan": "^1.0",
+ "phpunit/phpunit": "^8.5 || ^9.6",
+ "vimeo/psalm": "^4.11"
},
"bin": [
"bin/sql-formatter"
@@ -1490,33 +1527,32 @@
],
"support": {
"issues": "https://github.com/doctrine/sql-formatter/issues",
- "source": "https://github.com/doctrine/sql-formatter/tree/1.1.3"
+ "source": "https://github.com/doctrine/sql-formatter/tree/1.3.0"
},
- "time": "2022-05-23T21:33:49+00:00"
+ "time": "2024-05-06T21:49:18+00:00"
},
{
"name": "egulias/email-validator",
- "version": "3.2.1",
+ "version": "4.0.2",
"source": {
"type": "git",
"url": "https://github.com/egulias/EmailValidator.git",
- "reference": "f88dcf4b14af14a98ad96b14b2b317969eab6715"
+ "reference": "ebaaf5be6c0286928352e054f2d5125608e5405e"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/egulias/EmailValidator/zipball/f88dcf4b14af14a98ad96b14b2b317969eab6715",
- "reference": "f88dcf4b14af14a98ad96b14b2b317969eab6715",
+ "url": "https://api.github.com/repos/egulias/EmailValidator/zipball/ebaaf5be6c0286928352e054f2d5125608e5405e",
+ "reference": "ebaaf5be6c0286928352e054f2d5125608e5405e",
"shasum": ""
},
"require": {
- "doctrine/lexer": "^1.2",
- "php": ">=7.2",
- "symfony/polyfill-intl-idn": "^1.15"
+ "doctrine/lexer": "^2.0 || ^3.0",
+ "php": ">=8.1",
+ "symfony/polyfill-intl-idn": "^1.26"
},
"require-dev": {
- "php-coveralls/php-coveralls": "^2.2",
- "phpunit/phpunit": "^8.5.8|^9.3.3",
- "vimeo/psalm": "^4"
+ "phpunit/phpunit": "^10.2",
+ "vimeo/psalm": "^5.12"
},
"suggest": {
"ext-intl": "PHP Internationalization Libraries are required to use the SpoofChecking validation"
@@ -1524,7 +1560,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "3.0.x-dev"
+ "dev-master": "4.0.x-dev"
}
},
"autoload": {
@@ -1552,7 +1588,7 @@
],
"support": {
"issues": "https://github.com/egulias/EmailValidator/issues",
- "source": "https://github.com/egulias/EmailValidator/tree/3.2.1"
+ "source": "https://github.com/egulias/EmailValidator/tree/4.0.2"
},
"funding": [
{
@@ -1560,26 +1596,86 @@
"type": "github"
}
],
- "time": "2022-06-18T20:57:19+00:00"
+ "time": "2023-10-06T06:47:41+00:00"
+ },
+ {
+ "name": "excelwebzone/recaptcha-bundle",
+ "version": "v1.5.40",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/excelwebzone/EWZRecaptchaBundle.git",
+ "reference": "5e6c96f67cc0776b7cd795730321c3f492737399"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/excelwebzone/EWZRecaptchaBundle/zipball/5e6c96f67cc0776b7cd795730321c3f492737399",
+ "reference": "5e6c96f67cc0776b7cd795730321c3f492737399",
+ "shasum": ""
+ },
+ "require": {
+ "google/recaptcha": "^1.1",
+ "php": "^7.1 || ^8.0",
+ "symfony/form": "^2.8 || ^3.0 || ^4.0 || ^5.0 || ^6.0 || ^7.0",
+ "symfony/framework-bundle": "^2.8 || ^3.0 || ^4.0 || ^5.0 || ^6.0 || ^7.0",
+ "symfony/security-bundle": "^2.8 || ^3.0 || ^4.0 || ^5.0 || ^6.0 || ^7.0",
+ "symfony/validator": "^2.8 || ^3.0 || ^4.0 || ^5.0 || ^6.0 || ^7.0",
+ "symfony/yaml": "^2.8 || ^3.0 || ^4.0 || ^5.0 || ^6.0 || ^7.0",
+ "twig/twig": "^1.40 || ^2.9 || ^3.0"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^7 || ^8 || ^9.5"
+ },
+ "type": "symfony-bundle",
+ "extra": {
+ "symfony": {
+ "allow-contrib": "true"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "EWZ\\Bundle\\RecaptchaBundle\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Michael H. Arieli",
+ "email": "excelwebzone@gmail.com",
+ "homepage": "http://excelwebzone.com/"
+ }
+ ],
+ "description": "This bundle provides easy reCAPTCHA form field integration",
+ "homepage": "https://github.com/excelwebzone/EWZRecaptchaBundle",
+ "keywords": [
+ "recaptcha"
+ ],
+ "support": {
+ "issues": "https://github.com/excelwebzone/EWZRecaptchaBundle/issues",
+ "source": "https://github.com/excelwebzone/EWZRecaptchaBundle/tree/v1.5.40"
+ },
+ "time": "2024-01-09T14:23:35+00:00"
},
{
"name": "friendsofphp/proxy-manager-lts",
- "version": "v1.0.12",
+ "version": "v1.0.18",
"source": {
"type": "git",
"url": "https://github.com/FriendsOfPHP/proxy-manager-lts.git",
- "reference": "8419f0158715b30d4b99a5bd37c6a39671994ad7"
+ "reference": "2c8a6cffc3220e99352ad958fe7cf06bf6f7690f"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/FriendsOfPHP/proxy-manager-lts/zipball/8419f0158715b30d4b99a5bd37c6a39671994ad7",
- "reference": "8419f0158715b30d4b99a5bd37c6a39671994ad7",
+ "url": "https://api.github.com/repos/FriendsOfPHP/proxy-manager-lts/zipball/2c8a6cffc3220e99352ad958fe7cf06bf6f7690f",
+ "reference": "2c8a6cffc3220e99352ad958fe7cf06bf6f7690f",
"shasum": ""
},
"require": {
"laminas/laminas-code": "~3.4.1|^4.0",
"php": ">=7.1",
- "symfony/filesystem": "^4.4.17|^5.0|^6.0"
+ "symfony/filesystem": "^4.4.17|^5.0|^6.0|^7.0"
},
"conflict": {
"laminas/laminas-stdlib": "<3.2.1",
@@ -1590,7 +1686,7 @@
},
"require-dev": {
"ext-phar": "*",
- "symfony/phpunit-bridge": "^5.4|^6.0"
+ "symfony/phpunit-bridge": "^5.4|^6.0|^7.0"
},
"type": "library",
"extra": {
@@ -1630,7 +1726,7 @@
],
"support": {
"issues": "https://github.com/FriendsOfPHP/proxy-manager-lts/issues",
- "source": "https://github.com/FriendsOfPHP/proxy-manager-lts/tree/v1.0.12"
+ "source": "https://github.com/FriendsOfPHP/proxy-manager-lts/tree/v1.0.18"
},
"funding": [
{
@@ -1642,26 +1738,78 @@
"type": "tidelift"
}
],
- "time": "2022-05-05T09:31:05+00:00"
+ "time": "2024-03-20T12:50:41+00:00"
+ },
+ {
+ "name": "google/recaptcha",
+ "version": "1.3.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/google/recaptcha.git",
+ "reference": "d59a801e98a4e9174814a6d71bbc268dff1202df"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/google/recaptcha/zipball/d59a801e98a4e9174814a6d71bbc268dff1202df",
+ "reference": "d59a801e98a4e9174814a6d71bbc268dff1202df",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8"
+ },
+ "require-dev": {
+ "friendsofphp/php-cs-fixer": "^3.14",
+ "php-coveralls/php-coveralls": "^2.5",
+ "phpunit/phpunit": "^10"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.3.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "ReCaptcha\\": "src/ReCaptcha"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "description": "Client library for reCAPTCHA, a free service that protects websites from spam and abuse.",
+ "homepage": "https://www.google.com/recaptcha/",
+ "keywords": [
+ "Abuse",
+ "captcha",
+ "recaptcha",
+ "spam"
+ ],
+ "support": {
+ "forum": "https://groups.google.com/forum/#!forum/recaptcha",
+ "issues": "https://github.com/google/recaptcha/issues",
+ "source": "https://github.com/google/recaptcha"
+ },
+ "time": "2023-02-18T17:41:46+00:00"
},
{
"name": "guzzlehttp/guzzle",
- "version": "7.4.5",
+ "version": "7.8.1",
"source": {
"type": "git",
"url": "https://github.com/guzzle/guzzle.git",
- "reference": "1dd98b0564cb3f6bd16ce683cb755f94c10fbd82"
+ "reference": "41042bc7ab002487b876a0683fc8dce04ddce104"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/guzzle/guzzle/zipball/1dd98b0564cb3f6bd16ce683cb755f94c10fbd82",
- "reference": "1dd98b0564cb3f6bd16ce683cb755f94c10fbd82",
+ "url": "https://api.github.com/repos/guzzle/guzzle/zipball/41042bc7ab002487b876a0683fc8dce04ddce104",
+ "reference": "41042bc7ab002487b876a0683fc8dce04ddce104",
"shasum": ""
},
"require": {
"ext-json": "*",
- "guzzlehttp/promises": "^1.5",
- "guzzlehttp/psr7": "^1.9 || ^2.4",
+ "guzzlehttp/promises": "^1.5.3 || ^2.0.1",
+ "guzzlehttp/psr7": "^1.9.1 || ^2.5.1",
"php": "^7.2.5 || ^8.0",
"psr/http-client": "^1.0",
"symfony/deprecation-contracts": "^2.2 || ^3.0"
@@ -1670,10 +1818,11 @@
"psr/http-client-implementation": "1.0"
},
"require-dev": {
- "bamarni/composer-bin-plugin": "^1.4.1",
+ "bamarni/composer-bin-plugin": "^1.8.2",
"ext-curl": "*",
- "php-http/client-integration-tests": "^3.0",
- "phpunit/phpunit": "^8.5.5 || ^9.3.5",
+ "php-http/client-integration-tests": "dev-master#2c025848417c1135031fdf9c728ee53d0a7ceaee as 3.0.999",
+ "php-http/message-factory": "^1.1",
+ "phpunit/phpunit": "^8.5.36 || ^9.6.15",
"psr/log": "^1.1 || ^2.0 || ^3.0"
},
"suggest": {
@@ -1683,8 +1832,9 @@
},
"type": "library",
"extra": {
- "branch-alias": {
- "dev-master": "7.4-dev"
+ "bamarni-bin": {
+ "bin-links": true,
+ "forward-command": false
}
},
"autoload": {
@@ -1750,7 +1900,7 @@
],
"support": {
"issues": "https://github.com/guzzle/guzzle/issues",
- "source": "https://github.com/guzzle/guzzle/tree/7.4.5"
+ "source": "https://github.com/guzzle/guzzle/tree/7.8.1"
},
"funding": [
{
@@ -1766,38 +1916,37 @@
"type": "tidelift"
}
],
- "time": "2022-06-20T22:16:13+00:00"
+ "time": "2023-12-03T20:35:24+00:00"
},
{
"name": "guzzlehttp/promises",
- "version": "1.5.1",
+ "version": "2.0.2",
"source": {
"type": "git",
"url": "https://github.com/guzzle/promises.git",
- "reference": "fe752aedc9fd8fcca3fe7ad05d419d32998a06da"
+ "reference": "bbff78d96034045e58e13dedd6ad91b5d1253223"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/guzzle/promises/zipball/fe752aedc9fd8fcca3fe7ad05d419d32998a06da",
- "reference": "fe752aedc9fd8fcca3fe7ad05d419d32998a06da",
+ "url": "https://api.github.com/repos/guzzle/promises/zipball/bbff78d96034045e58e13dedd6ad91b5d1253223",
+ "reference": "bbff78d96034045e58e13dedd6ad91b5d1253223",
"shasum": ""
},
"require": {
- "php": ">=5.5"
+ "php": "^7.2.5 || ^8.0"
},
"require-dev": {
- "symfony/phpunit-bridge": "^4.4 || ^5.1"
+ "bamarni/composer-bin-plugin": "^1.8.2",
+ "phpunit/phpunit": "^8.5.36 || ^9.6.15"
},
"type": "library",
"extra": {
- "branch-alias": {
- "dev-master": "1.5-dev"
+ "bamarni-bin": {
+ "bin-links": true,
+ "forward-command": false
}
},
"autoload": {
- "files": [
- "src/functions_include.php"
- ],
"psr-4": {
"GuzzleHttp\\Promise\\": "src/"
}
@@ -1834,7 +1983,7 @@
],
"support": {
"issues": "https://github.com/guzzle/promises/issues",
- "source": "https://github.com/guzzle/promises/tree/1.5.1"
+ "source": "https://github.com/guzzle/promises/tree/2.0.2"
},
"funding": [
{
@@ -1850,26 +1999,26 @@
"type": "tidelift"
}
],
- "time": "2021-10-22T20:56:57+00:00"
+ "time": "2023-12-03T20:19:20+00:00"
},
{
"name": "guzzlehttp/psr7",
- "version": "2.4.0",
+ "version": "2.6.2",
"source": {
"type": "git",
"url": "https://github.com/guzzle/psr7.git",
- "reference": "13388f00956b1503577598873fffb5ae994b5737"
+ "reference": "45b30f99ac27b5ca93cb4831afe16285f57b8221"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/guzzle/psr7/zipball/13388f00956b1503577598873fffb5ae994b5737",
- "reference": "13388f00956b1503577598873fffb5ae994b5737",
+ "url": "https://api.github.com/repos/guzzle/psr7/zipball/45b30f99ac27b5ca93cb4831afe16285f57b8221",
+ "reference": "45b30f99ac27b5ca93cb4831afe16285f57b8221",
"shasum": ""
},
"require": {
"php": "^7.2.5 || ^8.0",
"psr/http-factory": "^1.0",
- "psr/http-message": "^1.0",
+ "psr/http-message": "^1.1 || ^2.0",
"ralouphie/getallheaders": "^3.0"
},
"provide": {
@@ -1877,17 +2026,18 @@
"psr/http-message-implementation": "1.0"
},
"require-dev": {
- "bamarni/composer-bin-plugin": "^1.4.1",
+ "bamarni/composer-bin-plugin": "^1.8.2",
"http-interop/http-factory-tests": "^0.9",
- "phpunit/phpunit": "^8.5.8 || ^9.3.10"
+ "phpunit/phpunit": "^8.5.36 || ^9.6.15"
},
"suggest": {
"laminas/laminas-httphandlerrunner": "Emit PSR-7 responses"
},
"type": "library",
"extra": {
- "branch-alias": {
- "dev-master": "2.4-dev"
+ "bamarni-bin": {
+ "bin-links": true,
+ "forward-command": false
}
},
"autoload": {
@@ -1949,7 +2099,7 @@
],
"support": {
"issues": "https://github.com/guzzle/psr7/issues",
- "source": "https://github.com/guzzle/psr7/tree/2.4.0"
+ "source": "https://github.com/guzzle/psr7/tree/2.6.2"
},
"funding": [
{
@@ -1965,42 +2115,43 @@
"type": "tidelift"
}
],
- "time": "2022-06-20T21:43:11+00:00"
+ "time": "2023-12-03T20:05:35+00:00"
},
{
"name": "knplabs/knp-components",
- "version": "v3.4.0",
+ "version": "v4.4.0",
"source": {
"type": "git",
"url": "https://github.com/KnpLabs/knp-components.git",
- "reference": "d990ef101bab58a078b6eb7250e57f5c68af5604"
+ "reference": "59ef316e34e814449d8718d7151946bdbb5e553f"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/KnpLabs/knp-components/zipball/d990ef101bab58a078b6eb7250e57f5c68af5604",
- "reference": "d990ef101bab58a078b6eb7250e57f5c68af5604",
+ "url": "https://api.github.com/repos/KnpLabs/knp-components/zipball/59ef316e34e814449d8718d7151946bdbb5e553f",
+ "reference": "59ef316e34e814449d8718d7151946bdbb5e553f",
"shasum": ""
},
"require": {
- "php": "^7.3 || ^8.0",
- "symfony/event-dispatcher-contracts": "^1.1 || ^2.0",
- "symfony/http-foundation": "^4.4 || ^5.4 || ^6.0"
+ "php": "^8.0",
+ "symfony/event-dispatcher-contracts": "^3.0"
},
"conflict": {
- "doctrine/dbal": "<2.10"
+ "doctrine/dbal": "<3.8"
},
"require-dev": {
- "doctrine/mongodb-odm": "^2.0",
- "doctrine/orm": "^2.7",
- "doctrine/phpcr-odm": "^1.2",
+ "doctrine/dbal": "^3.8 || ^4.0",
+ "doctrine/mongodb-odm": "^2.5.5",
+ "doctrine/orm": "^2.13 || ^3.0",
+ "doctrine/phpcr-odm": "^1.8 || ^2.0",
"ext-pdo_sqlite": "*",
- "jackalope/jackalope-doctrine-dbal": "^1.2",
- "phpunit/phpunit": "^9.5",
+ "jackalope/jackalope-doctrine-dbal": "^1.12 || ^2.0",
+ "phpunit/phpunit": "^9.6",
"propel/propel1": "^1.7",
"ruflin/elastica": "^7.0",
"solarium/solarium": "^6.0",
- "symfony/http-kernel": "^4.4 || ^5.4 || ^6.0",
- "symfony/property-access": "^4.4 || ^5.4 || ^6.0"
+ "symfony/http-foundation": "^5.4.38 || ^6.4.4 || ^7.0",
+ "symfony/http-kernel": "^5.4.38 || ^6.4.4 || ^7.0",
+ "symfony/property-access": "^5.4.38 || ^6.4.4 || ^7.0"
},
"suggest": {
"doctrine/common": "to allow usage pagination with Doctrine ArrayCollection",
@@ -2010,12 +2161,13 @@
"propel/propel1": "to allow usage pagination with Propel ORM",
"ruflin/elastica": "to allow usage pagination with ElasticSearch Client",
"solarium/solarium": "to allow usage pagination with Solarium Client",
- "symfony/property-access": "To allow sorting arrays"
+ "symfony/http-foundation": "to retrieve arguments from Request",
+ "symfony/property-access": "to allow sorting arrays"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "3.x-dev"
+ "dev-master": "4.x-dev"
}
},
"autoload": {
@@ -2038,7 +2190,7 @@
}
],
"description": "Knplabs component library",
- "homepage": "http://github.com/KnpLabs/knp-components",
+ "homepage": "https://github.com/KnpLabs/knp-components",
"keywords": [
"components",
"knp",
@@ -2048,37 +2200,38 @@
],
"support": {
"issues": "https://github.com/KnpLabs/knp-components/issues",
- "source": "https://github.com/KnpLabs/knp-components/tree/v3.4.0"
+ "source": "https://github.com/KnpLabs/knp-components/tree/v4.4.0"
},
- "time": "2021-12-04T18:46:24+00:00"
+ "time": "2024-04-23T07:05:01+00:00"
},
{
"name": "knplabs/knp-menu",
- "version": "v3.3.0",
+ "version": "v3.5.0",
"source": {
"type": "git",
"url": "https://github.com/KnpLabs/KnpMenu.git",
- "reference": "8bd3dc2afa22c65617c563c5e25e62d6e23e98c7"
+ "reference": "c39403f7c427d1b72cc56f38df0a075b4b9191fe"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/KnpLabs/KnpMenu/zipball/8bd3dc2afa22c65617c563c5e25e62d6e23e98c7",
- "reference": "8bd3dc2afa22c65617c563c5e25e62d6e23e98c7",
+ "url": "https://api.github.com/repos/KnpLabs/KnpMenu/zipball/c39403f7c427d1b72cc56f38df0a075b4b9191fe",
+ "reference": "c39403f7c427d1b72cc56f38df0a075b4b9191fe",
"shasum": ""
},
"require": {
- "php": "^7.3 || ^8.0"
+ "php": "^8.1"
},
"conflict": {
- "twig/twig": "<1.40 || >=2,<2.9"
+ "twig/twig": "<1.42.3 || >=2,<2.9"
},
"require-dev": {
- "phpunit/phpunit": "^9.5",
- "psr/container": "^1.0",
- "symfony/http-foundation": "^4.4 || ^5.0 || ^6.0",
- "symfony/phpunit-bridge": "^5.3",
- "symfony/routing": "^4.4 || ^5.0 || ^6.0",
- "twig/twig": "^1.40 || ^2.9 || ^3.0"
+ "phpstan/phpstan": "^1.10",
+ "phpunit/phpunit": "^9.6",
+ "psr/container": "^1.0 || ^2.0",
+ "symfony/http-foundation": "^5.4 || ^6.0 || ^7.0",
+ "symfony/phpunit-bridge": "^7.0",
+ "symfony/routing": "^5.4 || ^6.0 || ^7.0",
+ "twig/twig": "^2.16 || ^3.0"
},
"suggest": {
"twig/twig": "for the TwigRenderer and the integration with your templates"
@@ -2086,7 +2239,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "3.3-dev"
+ "dev-master": "3.x-dev"
}
},
"autoload": {
@@ -2120,34 +2273,35 @@
],
"support": {
"issues": "https://github.com/KnpLabs/KnpMenu/issues",
- "source": "https://github.com/KnpLabs/KnpMenu/tree/v3.3.0"
+ "source": "https://github.com/KnpLabs/KnpMenu/tree/v3.5.0"
},
- "time": "2021-10-23T15:01:04+00:00"
+ "time": "2024-03-23T15:35:09+00:00"
},
{
"name": "knplabs/knp-menu-bundle",
- "version": "v3.2.0",
+ "version": "v3.4.1",
"source": {
"type": "git",
"url": "https://github.com/KnpLabs/KnpMenuBundle.git",
- "reference": "a0b4224f872d74ae939589eb1ccf0e11291370a9"
+ "reference": "925dd71fc9d7c31dd852a0537757be60c25e3afe"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/KnpLabs/KnpMenuBundle/zipball/a0b4224f872d74ae939589eb1ccf0e11291370a9",
- "reference": "a0b4224f872d74ae939589eb1ccf0e11291370a9",
+ "url": "https://api.github.com/repos/KnpLabs/KnpMenuBundle/zipball/925dd71fc9d7c31dd852a0537757be60c25e3afe",
+ "reference": "925dd71fc9d7c31dd852a0537757be60c25e3afe",
"shasum": ""
},
"require": {
- "knplabs/knp-menu": "^3.1",
- "php": "^7.2 || ^8.0",
- "symfony/framework-bundle": "^3.4 | ^4.4 | ^5.0 | ^6.0"
+ "knplabs/knp-menu": "^3.3",
+ "php": "^8.1",
+ "symfony/deprecation-contracts": "^2.5 | ^3.3",
+ "symfony/framework-bundle": "^5.4 | ^6.0 | ^7.0"
},
"require-dev": {
- "phpunit/phpunit": "^8.5 | ^9.5",
- "symfony/expression-language": "^3.4 | ^4.4 | ^5.0 | ^6.0",
- "symfony/phpunit-bridge": "^5.2 | ^6.0",
- "symfony/templating": "^3.4 | ^4.4 | ^5.0 | ^6.0"
+ "phpunit/phpunit": "^10.5 | ^11.0.3",
+ "symfony/expression-language": "^5.4 | ^6.0 | ^7.0",
+ "symfony/phpunit-bridge": "^6.0 | ^7.0",
+ "symfony/templating": "^5.4 | ^6.0 | ^7.0"
},
"type": "symfony-bundle",
"extra": {
@@ -2184,41 +2338,41 @@
],
"support": {
"issues": "https://github.com/KnpLabs/KnpMenuBundle/issues",
- "source": "https://github.com/KnpLabs/KnpMenuBundle/tree/v3.2.0"
+ "source": "https://github.com/KnpLabs/KnpMenuBundle/tree/v3.4.1"
},
- "time": "2021-10-24T07:53:34+00:00"
+ "time": "2024-04-15T13:35:09+00:00"
},
{
"name": "knplabs/knp-paginator-bundle",
- "version": "v5.8.0",
+ "version": "v6.3.0",
"source": {
"type": "git",
"url": "https://github.com/KnpLabs/KnpPaginatorBundle.git",
- "reference": "216b9d5708001788321916c5b7632da9fb9ef6ca"
+ "reference": "f51fe26df07a08c1b3f272474401ef8a008b190c"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/KnpLabs/KnpPaginatorBundle/zipball/216b9d5708001788321916c5b7632da9fb9ef6ca",
- "reference": "216b9d5708001788321916c5b7632da9fb9ef6ca",
+ "url": "https://api.github.com/repos/KnpLabs/KnpPaginatorBundle/zipball/f51fe26df07a08c1b3f272474401ef8a008b190c",
+ "reference": "f51fe26df07a08c1b3f272474401ef8a008b190c",
"shasum": ""
},
"require": {
- "knplabs/knp-components": "^2.4 || ^3.0",
- "php": "^7.3 || ^8.0",
- "symfony/config": "^4.4 || ^5.3 || ^6.0",
- "symfony/dependency-injection": "^4.4 || ^5.3 || ^6.0",
- "symfony/event-dispatcher": "^4.4 || ^5.3 || ^6.0",
- "symfony/http-foundation": "^4.4 || ^5.3 || ^6.0",
- "symfony/http-kernel": "^4.4 || ^5.3 || ^6.0",
- "symfony/routing": "^4.4 || ^5.3 || ^6.0",
- "symfony/translation": "^4.4 || ^5.3 || ^6.0",
- "twig/twig": "^2.0 || ^3.0"
+ "knplabs/knp-components": "^4.1",
+ "php": "^8.1",
+ "symfony/config": "^6.3 || ^7.0",
+ "symfony/dependency-injection": "^6.3 || ^7.0",
+ "symfony/event-dispatcher": "^6.3 || ^7.0",
+ "symfony/http-foundation": "^6.3 || ^7.0",
+ "symfony/http-kernel": "^6.3 || ^7.0",
+ "symfony/routing": "^6.3 || ^7.0",
+ "symfony/translation": "^6.3 || ^7.0",
+ "twig/twig": "^3.0"
},
"require-dev": {
- "phpstan/phpstan": "^0.12.93",
- "phpunit/phpunit": "^8.5 || ^9.5",
- "symfony/expression-language": "^4.4 || ^5.3 || ^6.0",
- "symfony/templating": "^4.4 || ^5.3 || ^6.0"
+ "phpstan/phpstan": "^1.9",
+ "phpunit/phpunit": "^9.5",
+ "symfony/expression-language": "^6.3 || ^7.0",
+ "symfony/templating": "^6.3 || ^7.0"
},
"type": "symfony-bundle",
"extra": {
@@ -2238,15 +2392,15 @@
"authors": [
{
"name": "KnpLabs Team",
- "homepage": "http://knplabs.com"
+ "homepage": "https://knplabs.com"
},
{
"name": "Symfony Community",
- "homepage": "http://github.com/KnpLabs/KnpPaginatorBundle/contributors"
+ "homepage": "https://github.com/KnpLabs/KnpPaginatorBundle/contributors"
}
],
"description": "Paginator bundle for Symfony to automate pagination and simplify sorting and other features",
- "homepage": "http://github.com/KnpLabs/KnpPaginatorBundle",
+ "homepage": "https://github.com/KnpLabs/KnpPaginatorBundle",
"keywords": [
"bundle",
"knp",
@@ -2258,35 +2412,35 @@
],
"support": {
"issues": "https://github.com/KnpLabs/KnpPaginatorBundle/issues",
- "source": "https://github.com/KnpLabs/KnpPaginatorBundle/tree/v5.8.0"
+ "source": "https://github.com/KnpLabs/KnpPaginatorBundle/tree/v6.3.0"
},
- "time": "2021-10-30T08:27:46+00:00"
+ "time": "2023-11-19T08:15:37+00:00"
},
{
"name": "laminas/laminas-code",
- "version": "4.6.0",
+ "version": "4.13.0",
"source": {
"type": "git",
"url": "https://github.com/laminas/laminas-code.git",
- "reference": "16ec7577ff315d53ac2e1b1f03a344d8fe680a6e"
+ "reference": "7353d4099ad5388e84737dd16994316a04f48dbf"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/laminas/laminas-code/zipball/16ec7577ff315d53ac2e1b1f03a344d8fe680a6e",
- "reference": "16ec7577ff315d53ac2e1b1f03a344d8fe680a6e",
+ "url": "https://api.github.com/repos/laminas/laminas-code/zipball/7353d4099ad5388e84737dd16994316a04f48dbf",
+ "reference": "7353d4099ad5388e84737dd16994316a04f48dbf",
"shasum": ""
},
"require": {
- "php": ">=7.4, <8.2"
+ "php": "~8.1.0 || ~8.2.0 || ~8.3.0"
},
"require-dev": {
- "doctrine/annotations": "^1.13.2",
+ "doctrine/annotations": "^2.0.1",
"ext-phar": "*",
- "laminas/laminas-coding-standard": "^2.3.0",
- "laminas/laminas-stdlib": "^3.6.1",
- "phpunit/phpunit": "^9.5.10",
- "psalm/plugin-phpunit": "^0.17.0",
- "vimeo/psalm": "^4.13.1"
+ "laminas/laminas-coding-standard": "^2.5.0",
+ "laminas/laminas-stdlib": "^3.17.0",
+ "phpunit/phpunit": "^10.3.3",
+ "psalm/plugin-phpunit": "^0.18.4",
+ "vimeo/psalm": "^5.15.0"
},
"suggest": {
"doctrine/annotations": "Doctrine\\Common\\Annotations >=1.0 for annotation features",
@@ -2294,9 +2448,6 @@
},
"type": "library",
"autoload": {
- "files": [
- "polyfill/ReflectionEnumPolyfill.php"
- ],
"psr-4": {
"Laminas\\Code\\": "src/"
}
@@ -2326,111 +2477,134 @@
"type": "community_bridge"
}
],
- "time": "2022-07-28T22:46:52+00:00"
+ "time": "2023-10-18T10:00:55+00:00"
},
{
- "name": "minimalcode/search",
- "version": "1.0.1",
+ "name": "league/uri",
+ "version": "7.4.1",
"source": {
"type": "git",
- "url": "https://github.com/minimalcode-org/search.git",
- "reference": "7cd5c61e4ae8c29e3043297e2368bd479d115b3a"
+ "url": "https://github.com/thephpleague/uri.git",
+ "reference": "bedb6e55eff0c933668addaa7efa1e1f2c417cc4"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/minimalcode-org/search/zipball/7cd5c61e4ae8c29e3043297e2368bd479d115b3a",
- "reference": "7cd5c61e4ae8c29e3043297e2368bd479d115b3a",
+ "url": "https://api.github.com/repos/thephpleague/uri/zipball/bedb6e55eff0c933668addaa7efa1e1f2c417cc4",
+ "reference": "bedb6e55eff0c933668addaa7efa1e1f2c417cc4",
"shasum": ""
},
"require": {
- "php": ">=5.4"
+ "league/uri-interfaces": "^7.3",
+ "php": "^8.1"
},
- "require-dev": {
- "phpunit/phpunit": "4.8.*"
+ "conflict": {
+ "league/uri-schemes": "^1.0"
},
"suggest": {
- "solarium/solarium": "*"
+ "ext-bcmath": "to improve IPV4 host parsing",
+ "ext-fileinfo": "to create Data URI from file contennts",
+ "ext-gmp": "to improve IPV4 host parsing",
+ "ext-intl": "to handle IDN host with the best performance",
+ "jeremykendall/php-domain-parser": "to resolve Public Suffix and Top Level Domain",
+ "league/uri-components": "Needed to easily manipulate URI objects components",
+ "php-64bit": "to improve IPV4 host parsing",
+ "symfony/polyfill-intl-idn": "to handle IDN host via the Symfony polyfill if ext-intl is not present"
},
"type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "7.x-dev"
+ }
+ },
"autoload": {
"psr-4": {
- "Minimalcode\\Search\\": "src/Minimalcode/Search/"
+ "League\\Uri\\": ""
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
- "Apache-2.0"
+ "MIT"
],
"authors": [
{
- "name": "Fabio Piro",
- "email": "pirofabio@gmail.com"
+ "name": "Ignace Nyamagana Butera",
+ "email": "nyamsprod@gmail.com",
+ "homepage": "https://nyamsprod.com"
}
],
- "description": "Fluent Lucene-Sorl Query Builder for PHP",
- "homepage": "http://minimalcode.org",
+ "description": "URI manipulation library",
+ "homepage": "https://uri.thephpleague.com",
"keywords": [
- "builder",
- "lucene",
- "query",
- "solr"
+ "data-uri",
+ "file-uri",
+ "ftp",
+ "hostname",
+ "http",
+ "https",
+ "middleware",
+ "parse_str",
+ "parse_url",
+ "psr-7",
+ "query-string",
+ "querystring",
+ "rfc3986",
+ "rfc3987",
+ "rfc6570",
+ "uri",
+ "uri-template",
+ "url",
+ "ws"
],
"support": {
- "issues": "https://github.com/minimalcode-org/search/issues",
- "source": "https://github.com/minimalcode-org/search/tree/master"
+ "docs": "https://uri.thephpleague.com",
+ "forum": "https://thephpleague.slack.com",
+ "issues": "https://github.com/thephpleague/uri-src/issues",
+ "source": "https://github.com/thephpleague/uri/tree/7.4.1"
},
- "time": "2017-02-05T00:00:15+00:00"
+ "funding": [
+ {
+ "url": "https://github.com/sponsors/nyamsprod",
+ "type": "github"
+ }
+ ],
+ "time": "2024-03-23T07:42:40+00:00"
},
{
- "name": "monolog/monolog",
- "version": "1.27.1",
+ "name": "league/uri-interfaces",
+ "version": "7.4.1",
"source": {
"type": "git",
- "url": "https://github.com/Seldaek/monolog.git",
- "reference": "904713c5929655dc9b97288b69cfeedad610c9a1"
+ "url": "https://github.com/thephpleague/uri-interfaces.git",
+ "reference": "8d43ef5c841032c87e2de015972c06f3865ef718"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/Seldaek/monolog/zipball/904713c5929655dc9b97288b69cfeedad610c9a1",
- "reference": "904713c5929655dc9b97288b69cfeedad610c9a1",
+ "url": "https://api.github.com/repos/thephpleague/uri-interfaces/zipball/8d43ef5c841032c87e2de015972c06f3865ef718",
+ "reference": "8d43ef5c841032c87e2de015972c06f3865ef718",
"shasum": ""
},
"require": {
- "php": ">=5.3.0",
- "psr/log": "~1.0"
- },
- "provide": {
- "psr/log-implementation": "1.0.0"
- },
- "require-dev": {
- "aws/aws-sdk-php": "^2.4.9 || ^3.0",
- "doctrine/couchdb": "~1.0@dev",
- "graylog2/gelf-php": "~1.0",
- "php-amqplib/php-amqplib": "~2.4",
- "php-console/php-console": "^3.1.3",
- "phpstan/phpstan": "^0.12.59",
- "phpunit/phpunit": "~4.5",
- "ruflin/elastica": ">=0.90 <3.0",
- "sentry/sentry": "^0.13",
- "swiftmailer/swiftmailer": "^5.3|^6.0"
+ "ext-filter": "*",
+ "php": "^8.1",
+ "psr/http-factory": "^1",
+ "psr/http-message": "^1.1 || ^2.0"
},
"suggest": {
- "aws/aws-sdk-php": "Allow sending log messages to AWS services like DynamoDB",
- "doctrine/couchdb": "Allow sending log messages to a CouchDB server",
- "ext-amqp": "Allow sending log messages to an AMQP server (1.0+ required)",
- "ext-mongo": "Allow sending log messages to a MongoDB server",
- "graylog2/gelf-php": "Allow sending log messages to a GrayLog2 server",
- "mongodb/mongodb": "Allow sending log messages to a MongoDB server via PHP Driver",
- "php-amqplib/php-amqplib": "Allow sending log messages to an AMQP server using php-amqplib",
- "php-console/php-console": "Allow sending log messages to Google Chrome",
- "rollbar/rollbar": "Allow sending log messages to Rollbar",
- "ruflin/elastica": "Allow sending log messages to an Elastic Search server",
- "sentry/sentry": "Allow sending log messages to a Sentry server"
+ "ext-bcmath": "to improve IPV4 host parsing",
+ "ext-gmp": "to improve IPV4 host parsing",
+ "ext-intl": "to handle IDN host with the best performance",
+ "php-64bit": "to improve IPV4 host parsing",
+ "symfony/polyfill-intl-idn": "to handle IDN host via the Symfony polyfill if ext-intl is not present"
},
"type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "7.x-dev"
+ }
+ },
"autoload": {
"psr-4": {
- "Monolog\\": "src/Monolog"
+ "League\\Uri\\": ""
}
},
"notification-url": "https://packagist.org/downloads/",
@@ -2439,53 +2613,77 @@
],
"authors": [
{
- "name": "Jordi Boggiano",
- "email": "j.boggiano@seld.be",
- "homepage": "http://seld.be"
+ "name": "Ignace Nyamagana Butera",
+ "email": "nyamsprod@gmail.com",
+ "homepage": "https://nyamsprod.com"
}
],
- "description": "Sends your logs to files, sockets, inboxes, databases and various web services",
- "homepage": "http://github.com/Seldaek/monolog",
+ "description": "Common interfaces and classes for URI representation and interaction",
+ "homepage": "https://uri.thephpleague.com",
"keywords": [
- "log",
- "logging",
- "psr-3"
+ "data-uri",
+ "file-uri",
+ "ftp",
+ "hostname",
+ "http",
+ "https",
+ "parse_str",
+ "parse_url",
+ "psr-7",
+ "query-string",
+ "querystring",
+ "rfc3986",
+ "rfc3987",
+ "rfc6570",
+ "uri",
+ "url",
+ "ws"
],
"support": {
- "issues": "https://github.com/Seldaek/monolog/issues",
- "source": "https://github.com/Seldaek/monolog/tree/1.27.1"
+ "docs": "https://uri.thephpleague.com",
+ "forum": "https://thephpleague.slack.com",
+ "issues": "https://github.com/thephpleague/uri-src/issues",
+ "source": "https://github.com/thephpleague/uri-interfaces/tree/7.4.1"
},
"funding": [
{
- "url": "https://github.com/Seldaek",
+ "url": "https://github.com/sponsors/nyamsprod",
"type": "github"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/monolog/monolog",
- "type": "tidelift"
}
],
- "time": "2022-06-09T08:53:42+00:00"
+ "time": "2024-03-23T07:42:40+00:00"
},
{
- "name": "ninsuo/symfony-collection",
- "version": "2.1.33",
+ "name": "masterminds/html5",
+ "version": "2.9.0",
"source": {
"type": "git",
- "url": "https://github.com/ninsuo/symfony-collection.git",
- "reference": "231f790eee9ea2c3301ac45f5fe4fbb09ec4289c"
+ "url": "https://github.com/Masterminds/html5-php.git",
+ "reference": "f5ac2c0b0a2eefca70b2ce32a5809992227e75a6"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/ninsuo/symfony-collection/zipball/231f790eee9ea2c3301ac45f5fe4fbb09ec4289c",
- "reference": "231f790eee9ea2c3301ac45f5fe4fbb09ec4289c",
+ "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": {
- "classmap": [
- "ScriptHandler.php"
- ]
+ "psr-4": {
+ "Masterminds\\": "src"
+ }
},
"notification-url": "https://packagist.org/downloads/",
"license": [
@@ -2493,56 +2691,100 @@
],
"authors": [
{
- "name": "Alain Tiemblo",
- "email": "ninsuo@gmail.com"
+ "name": "Matt Butcher",
+ "email": "technosophos@gmail.com"
+ },
+ {
+ "name": "Matt Farina",
+ "email": "matt@mattfarina.com"
+ },
+ {
+ "name": "Asmir Mustafic",
+ "email": "goetas@gmail.com"
}
],
- "description": "A jQuery plugin that manages adding, deleting and moving elements from a Symfony collection",
+ "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/ninsuo/symfony-collection/issues",
- "source": "https://github.com/ninsuo/symfony-collection/tree/2.1.33"
+ "issues": "https://github.com/Masterminds/html5-php/issues",
+ "source": "https://github.com/Masterminds/html5-php/tree/2.9.0"
},
- "time": "2020-01-13T12:54:48+00:00"
+ "time": "2024-03-31T07:05:07+00:00"
},
{
- "name": "nyholm/psr7",
- "version": "1.5.1",
+ "name": "monolog/monolog",
+ "version": "3.6.0",
"source": {
"type": "git",
- "url": "https://github.com/Nyholm/psr7.git",
- "reference": "f734364e38a876a23be4d906a2a089e1315be18a"
+ "url": "https://github.com/Seldaek/monolog.git",
+ "reference": "4b18b21a5527a3d5ffdac2fd35d3ab25a9597654"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/Nyholm/psr7/zipball/f734364e38a876a23be4d906a2a089e1315be18a",
- "reference": "f734364e38a876a23be4d906a2a089e1315be18a",
+ "url": "https://api.github.com/repos/Seldaek/monolog/zipball/4b18b21a5527a3d5ffdac2fd35d3ab25a9597654",
+ "reference": "4b18b21a5527a3d5ffdac2fd35d3ab25a9597654",
"shasum": ""
},
"require": {
- "php": ">=7.1",
- "php-http/message-factory": "^1.0",
- "psr/http-factory": "^1.0",
- "psr/http-message": "^1.0"
+ "php": ">=8.1",
+ "psr/log": "^2.0 || ^3.0"
},
"provide": {
- "psr/http-factory-implementation": "1.0",
- "psr/http-message-implementation": "1.0"
+ "psr/log-implementation": "3.0.0"
},
"require-dev": {
- "http-interop/http-factory-tests": "^0.9",
- "php-http/psr7-integration-tests": "^1.0",
- "phpunit/phpunit": "^7.5 || 8.5 || 9.4",
- "symfony/error-handler": "^4.4"
+ "aws/aws-sdk-php": "^3.0",
+ "doctrine/couchdb": "~1.0@dev",
+ "elasticsearch/elasticsearch": "^7 || ^8",
+ "ext-json": "*",
+ "graylog2/gelf-php": "^1.4.2 || ^2.0",
+ "guzzlehttp/guzzle": "^7.4.5",
+ "guzzlehttp/psr7": "^2.2",
+ "mongodb/mongodb": "^1.8",
+ "php-amqplib/php-amqplib": "~2.4 || ^3",
+ "phpstan/phpstan": "^1.9",
+ "phpstan/phpstan-deprecation-rules": "^1.0",
+ "phpstan/phpstan-strict-rules": "^1.4",
+ "phpunit/phpunit": "^10.5.17",
+ "predis/predis": "^1.1 || ^2",
+ "ruflin/elastica": "^7",
+ "symfony/mailer": "^5.4 || ^6",
+ "symfony/mime": "^5.4 || ^6"
+ },
+ "suggest": {
+ "aws/aws-sdk-php": "Allow sending log messages to AWS services like DynamoDB",
+ "doctrine/couchdb": "Allow sending log messages to a CouchDB server",
+ "elasticsearch/elasticsearch": "Allow sending log messages to an Elasticsearch server via official client",
+ "ext-amqp": "Allow sending log messages to an AMQP server (1.0+ required)",
+ "ext-curl": "Required to send log messages using the IFTTTHandler, the LogglyHandler, the SendGridHandler, the SlackWebhookHandler or the TelegramBotHandler",
+ "ext-mbstring": "Allow to work properly with unicode symbols",
+ "ext-mongodb": "Allow sending log messages to a MongoDB server (via driver)",
+ "ext-openssl": "Required to send log messages using SSL",
+ "ext-sockets": "Allow sending log messages to a Syslog server (via UDP driver)",
+ "graylog2/gelf-php": "Allow sending log messages to a GrayLog2 server",
+ "mongodb/mongodb": "Allow sending log messages to a MongoDB server (via library)",
+ "php-amqplib/php-amqplib": "Allow sending log messages to an AMQP server using php-amqplib",
+ "rollbar/rollbar": "Allow sending log messages to Rollbar",
+ "ruflin/elastica": "Allow sending log messages to an Elastic Search server"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "1.4-dev"
+ "dev-main": "3.x-dev"
}
},
"autoload": {
"psr-4": {
- "Nyholm\\Psr7\\": "src/"
+ "Monolog\\": "src/Monolog"
}
},
"notification-url": "https://packagist.org/downloads/",
@@ -2551,63 +2793,111 @@
],
"authors": [
{
- "name": "Tobias Nyholm",
- "email": "tobias.nyholm@gmail.com"
- },
- {
- "name": "Martijn van der Ven",
- "email": "martijn@vanderven.se"
+ "name": "Jordi Boggiano",
+ "email": "j.boggiano@seld.be",
+ "homepage": "https://seld.be"
}
],
- "description": "A fast PHP7 implementation of PSR-7",
- "homepage": "https://tnyholm.se",
+ "description": "Sends your logs to files, sockets, inboxes, databases and various web services",
+ "homepage": "https://github.com/Seldaek/monolog",
"keywords": [
- "psr-17",
- "psr-7"
+ "log",
+ "logging",
+ "psr-3"
],
"support": {
- "issues": "https://github.com/Nyholm/psr7/issues",
- "source": "https://github.com/Nyholm/psr7/tree/1.5.1"
+ "issues": "https://github.com/Seldaek/monolog/issues",
+ "source": "https://github.com/Seldaek/monolog/tree/3.6.0"
},
"funding": [
{
- "url": "https://github.com/Zegnat",
+ "url": "https://github.com/Seldaek",
"type": "github"
},
{
- "url": "https://github.com/nyholm",
- "type": "github"
+ "url": "https://tidelift.com/funding/github/packagist/monolog/monolog",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2024-04-12T21:02:21+00:00"
+ },
+ {
+ "name": "ninsuo/symfony-collection",
+ "version": "2.1.33",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/ninsuo/symfony-collection.git",
+ "reference": "231f790eee9ea2c3301ac45f5fe4fbb09ec4289c"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/ninsuo/symfony-collection/zipball/231f790eee9ea2c3301ac45f5fe4fbb09ec4289c",
+ "reference": "231f790eee9ea2c3301ac45f5fe4fbb09ec4289c",
+ "shasum": ""
+ },
+ "type": "library",
+ "autoload": {
+ "classmap": [
+ "ScriptHandler.php"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Alain Tiemblo",
+ "email": "ninsuo@gmail.com"
}
],
- "time": "2022-06-22T07:13:36+00:00"
+ "description": "A jQuery plugin that manages adding, deleting and moving elements from a Symfony collection",
+ "support": {
+ "issues": "https://github.com/ninsuo/symfony-collection/issues",
+ "source": "https://github.com/ninsuo/symfony-collection/tree/2.1.33"
+ },
+ "time": "2020-01-13T12:54:48+00:00"
},
{
- "name": "php-http/message-factory",
- "version": "v1.0.2",
+ "name": "nyholm/psr7",
+ "version": "1.8.1",
"source": {
"type": "git",
- "url": "https://github.com/php-http/message-factory.git",
- "reference": "a478cb11f66a6ac48d8954216cfed9aa06a501a1"
+ "url": "https://github.com/Nyholm/psr7.git",
+ "reference": "aa5fc277a4f5508013d571341ade0c3886d4d00e"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/php-http/message-factory/zipball/a478cb11f66a6ac48d8954216cfed9aa06a501a1",
- "reference": "a478cb11f66a6ac48d8954216cfed9aa06a501a1",
+ "url": "https://api.github.com/repos/Nyholm/psr7/zipball/aa5fc277a4f5508013d571341ade0c3886d4d00e",
+ "reference": "aa5fc277a4f5508013d571341ade0c3886d4d00e",
"shasum": ""
},
"require": {
- "php": ">=5.4",
- "psr/http-message": "^1.0"
+ "php": ">=7.2",
+ "psr/http-factory": "^1.0",
+ "psr/http-message": "^1.1 || ^2.0"
+ },
+ "provide": {
+ "php-http/message-factory-implementation": "1.0",
+ "psr/http-factory-implementation": "1.0",
+ "psr/http-message-implementation": "1.0"
+ },
+ "require-dev": {
+ "http-interop/http-factory-tests": "^0.9",
+ "php-http/message-factory": "^1.0",
+ "php-http/psr7-integration-tests": "^1.0",
+ "phpunit/phpunit": "^7.5 || ^8.5 || ^9.4",
+ "symfony/error-handler": "^4.4"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "1.0-dev"
+ "dev-master": "1.8-dev"
}
},
"autoload": {
"psr-4": {
- "Http\\Message\\": "src/"
+ "Nyholm\\Psr7\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
@@ -2616,24 +2906,35 @@
],
"authors": [
{
- "name": "Márk Sági-Kazár",
- "email": "mark.sagikazar@gmail.com"
+ "name": "Tobias Nyholm",
+ "email": "tobias.nyholm@gmail.com"
+ },
+ {
+ "name": "Martijn van der Ven",
+ "email": "martijn@vanderven.se"
}
],
- "description": "Factory interfaces for PSR-7 HTTP Message",
- "homepage": "http://php-http.org",
+ "description": "A fast PHP7 implementation of PSR-7",
+ "homepage": "https://tnyholm.se",
"keywords": [
- "factory",
- "http",
- "message",
- "stream",
- "uri"
+ "psr-17",
+ "psr-7"
],
"support": {
- "issues": "https://github.com/php-http/message-factory/issues",
- "source": "https://github.com/php-http/message-factory/tree/master"
+ "issues": "https://github.com/Nyholm/psr7/issues",
+ "source": "https://github.com/Nyholm/psr7/tree/1.8.1"
},
- "time": "2015-12-19T14:08:53+00:00"
+ "funding": [
+ {
+ "url": "https://github.com/Zegnat",
+ "type": "github"
+ },
+ {
+ "url": "https://github.com/nyholm",
+ "type": "github"
+ }
+ ],
+ "time": "2023-11-13T09:31:12+00:00"
},
{
"name": "phpdocumentor/reflection-common",
@@ -2690,28 +2991,35 @@
},
{
"name": "phpdocumentor/reflection-docblock",
- "version": "5.3.0",
+ "version": "5.4.0",
"source": {
"type": "git",
"url": "https://github.com/phpDocumentor/ReflectionDocBlock.git",
- "reference": "622548b623e81ca6d78b721c5e029f4ce664f170"
+ "reference": "298d2febfe79d03fe714eb871d5538da55205b1a"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/622548b623e81ca6d78b721c5e029f4ce664f170",
- "reference": "622548b623e81ca6d78b721c5e029f4ce664f170",
+ "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/298d2febfe79d03fe714eb871d5538da55205b1a",
+ "reference": "298d2febfe79d03fe714eb871d5538da55205b1a",
"shasum": ""
},
"require": {
+ "doctrine/deprecations": "^1.1",
"ext-filter": "*",
- "php": "^7.2 || ^8.0",
+ "php": "^7.4 || ^8.0",
"phpdocumentor/reflection-common": "^2.2",
- "phpdocumentor/type-resolver": "^1.3",
+ "phpdocumentor/type-resolver": "^1.7",
+ "phpstan/phpdoc-parser": "^1.7",
"webmozart/assert": "^1.9.1"
},
"require-dev": {
- "mockery/mockery": "~1.3.2",
- "psalm/phar": "^4.8"
+ "mockery/mockery": "~1.3.5",
+ "phpstan/extension-installer": "^1.1",
+ "phpstan/phpstan": "^1.8",
+ "phpstan/phpstan-mockery": "^1.1",
+ "phpstan/phpstan-webmozart-assert": "^1.2",
+ "phpunit/phpunit": "^9.5",
+ "vimeo/psalm": "^5.13"
},
"type": "library",
"extra": {
@@ -2735,37 +3043,45 @@
},
{
"name": "Jaap van Otterdijk",
- "email": "account@ijaap.nl"
+ "email": "opensource@ijaap.nl"
}
],
"description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.",
"support": {
"issues": "https://github.com/phpDocumentor/ReflectionDocBlock/issues",
- "source": "https://github.com/phpDocumentor/ReflectionDocBlock/tree/5.3.0"
+ "source": "https://github.com/phpDocumentor/ReflectionDocBlock/tree/5.4.0"
},
- "time": "2021-10-19T17:43:47+00:00"
+ "time": "2024-04-09T21:13:58+00:00"
},
{
"name": "phpdocumentor/type-resolver",
- "version": "1.6.1",
+ "version": "1.8.2",
"source": {
"type": "git",
"url": "https://github.com/phpDocumentor/TypeResolver.git",
- "reference": "77a32518733312af16a44300404e945338981de3"
+ "reference": "153ae662783729388a584b4361f2545e4d841e3c"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/77a32518733312af16a44300404e945338981de3",
- "reference": "77a32518733312af16a44300404e945338981de3",
+ "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/153ae662783729388a584b4361f2545e4d841e3c",
+ "reference": "153ae662783729388a584b4361f2545e4d841e3c",
"shasum": ""
},
"require": {
- "php": "^7.2 || ^8.0",
- "phpdocumentor/reflection-common": "^2.0"
+ "doctrine/deprecations": "^1.0",
+ "php": "^7.3 || ^8.0",
+ "phpdocumentor/reflection-common": "^2.0",
+ "phpstan/phpdoc-parser": "^1.13"
},
"require-dev": {
"ext-tokenizer": "*",
- "psalm/phar": "^4.8"
+ "phpbench/phpbench": "^1.2",
+ "phpstan/extension-installer": "^1.1",
+ "phpstan/phpstan": "^1.8",
+ "phpstan/phpstan-phpunit": "^1.1",
+ "phpunit/phpunit": "^9.5",
+ "rector/rector": "^0.13.9",
+ "vimeo/psalm": "^4.25"
},
"type": "library",
"extra": {
@@ -2791,26 +3107,73 @@
"description": "A PSR-5 based resolver of Class names, Types and Structural Element Names",
"support": {
"issues": "https://github.com/phpDocumentor/TypeResolver/issues",
- "source": "https://github.com/phpDocumentor/TypeResolver/tree/1.6.1"
+ "source": "https://github.com/phpDocumentor/TypeResolver/tree/1.8.2"
+ },
+ "time": "2024-02-23T11:10:43+00:00"
+ },
+ {
+ "name": "phpstan/phpdoc-parser",
+ "version": "1.29.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/phpstan/phpdoc-parser.git",
+ "reference": "536889f2b340489d328f5ffb7b02bb6b183ddedc"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/536889f2b340489d328f5ffb7b02bb6b183ddedc",
+ "reference": "536889f2b340489d328f5ffb7b02bb6b183ddedc",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.2 || ^8.0"
},
- "time": "2022-03-15T21:29:03+00:00"
+ "require-dev": {
+ "doctrine/annotations": "^2.0",
+ "nikic/php-parser": "^4.15",
+ "php-parallel-lint/php-parallel-lint": "^1.2",
+ "phpstan/extension-installer": "^1.0",
+ "phpstan/phpstan": "^1.5",
+ "phpstan/phpstan-phpunit": "^1.1",
+ "phpstan/phpstan-strict-rules": "^1.0",
+ "phpunit/phpunit": "^9.5",
+ "symfony/process": "^5.2"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "PHPStan\\PhpDocParser\\": [
+ "src/"
+ ]
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "description": "PHPDoc parser with support for nullable, intersection and generic types",
+ "support": {
+ "issues": "https://github.com/phpstan/phpdoc-parser/issues",
+ "source": "https://github.com/phpstan/phpdoc-parser/tree/1.29.0"
+ },
+ "time": "2024-05-06T12:04:23+00:00"
},
{
"name": "psr/cache",
- "version": "1.0.1",
+ "version": "3.0.0",
"source": {
"type": "git",
"url": "https://github.com/php-fig/cache.git",
- "reference": "d11b50ad223250cf17b86e38383413f5a6764bf8"
+ "reference": "aa5030cfa5405eccfdcb1083ce040c2cb8d253bf"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/php-fig/cache/zipball/d11b50ad223250cf17b86e38383413f5a6764bf8",
- "reference": "d11b50ad223250cf17b86e38383413f5a6764bf8",
+ "url": "https://api.github.com/repos/php-fig/cache/zipball/aa5030cfa5405eccfdcb1083ce040c2cb8d253bf",
+ "reference": "aa5030cfa5405eccfdcb1083ce040c2cb8d253bf",
"shasum": ""
},
"require": {
- "php": ">=5.3.0"
+ "php": ">=8.0.0"
},
"type": "library",
"extra": {
@@ -2830,7 +3193,7 @@
"authors": [
{
"name": "PHP-FIG",
- "homepage": "http://www.php-fig.org/"
+ "homepage": "https://www.php-fig.org/"
}
],
"description": "Common interface for caching libraries",
@@ -2840,28 +3203,81 @@
"psr-6"
],
"support": {
- "source": "https://github.com/php-fig/cache/tree/master"
+ "source": "https://github.com/php-fig/cache/tree/3.0.0"
},
- "time": "2016-08-06T20:24:11+00:00"
+ "time": "2021-02-03T23:26:27+00:00"
+ },
+ {
+ "name": "psr/clock",
+ "version": "1.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/php-fig/clock.git",
+ "reference": "e41a24703d4560fd0acb709162f73b8adfc3aa0d"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/php-fig/clock/zipball/e41a24703d4560fd0acb709162f73b8adfc3aa0d",
+ "reference": "e41a24703d4560fd0acb709162f73b8adfc3aa0d",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.0 || ^8.0"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Psr\\Clock\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "PHP-FIG",
+ "homepage": "https://www.php-fig.org/"
+ }
+ ],
+ "description": "Common interface for reading the clock.",
+ "homepage": "https://github.com/php-fig/clock",
+ "keywords": [
+ "clock",
+ "now",
+ "psr",
+ "psr-20",
+ "time"
+ ],
+ "support": {
+ "issues": "https://github.com/php-fig/clock/issues",
+ "source": "https://github.com/php-fig/clock/tree/1.0.0"
+ },
+ "time": "2022-11-25T14:36:26+00:00"
},
{
"name": "psr/container",
- "version": "1.1.2",
+ "version": "2.0.2",
"source": {
"type": "git",
"url": "https://github.com/php-fig/container.git",
- "reference": "513e0666f7216c7459170d56df27dfcefe1689ea"
+ "reference": "c71ecc56dfe541dbd90c5360474fbc405f8d5963"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/php-fig/container/zipball/513e0666f7216c7459170d56df27dfcefe1689ea",
- "reference": "513e0666f7216c7459170d56df27dfcefe1689ea",
+ "url": "https://api.github.com/repos/php-fig/container/zipball/c71ecc56dfe541dbd90c5360474fbc405f8d5963",
+ "reference": "c71ecc56dfe541dbd90c5360474fbc405f8d5963",
"shasum": ""
},
"require": {
"php": ">=7.4.0"
},
"type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.0.x-dev"
+ }
+ },
"autoload": {
"psr-4": {
"Psr\\Container\\": "src/"
@@ -2888,9 +3304,9 @@
],
"support": {
"issues": "https://github.com/php-fig/container/issues",
- "source": "https://github.com/php-fig/container/tree/1.1.2"
+ "source": "https://github.com/php-fig/container/tree/2.0.2"
},
- "time": "2021-11-05T16:50:12+00:00"
+ "time": "2021-11-05T16:47:00+00:00"
},
{
"name": "psr/event-dispatcher",
@@ -2944,21 +3360,21 @@
},
{
"name": "psr/http-client",
- "version": "1.0.1",
+ "version": "1.0.3",
"source": {
"type": "git",
"url": "https://github.com/php-fig/http-client.git",
- "reference": "2dfb5f6c5eff0e91e20e913f8c5452ed95b86621"
+ "reference": "bb5906edc1c324c9a05aa0873d40117941e5fa90"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/php-fig/http-client/zipball/2dfb5f6c5eff0e91e20e913f8c5452ed95b86621",
- "reference": "2dfb5f6c5eff0e91e20e913f8c5452ed95b86621",
+ "url": "https://api.github.com/repos/php-fig/http-client/zipball/bb5906edc1c324c9a05aa0873d40117941e5fa90",
+ "reference": "bb5906edc1c324c9a05aa0873d40117941e5fa90",
"shasum": ""
},
"require": {
"php": "^7.0 || ^8.0",
- "psr/http-message": "^1.0"
+ "psr/http-message": "^1.0 || ^2.0"
},
"type": "library",
"extra": {
@@ -2978,7 +3394,7 @@
"authors": [
{
"name": "PHP-FIG",
- "homepage": "http://www.php-fig.org/"
+ "homepage": "https://www.php-fig.org/"
}
],
"description": "Common interface for HTTP clients",
@@ -2990,27 +3406,27 @@
"psr-18"
],
"support": {
- "source": "https://github.com/php-fig/http-client/tree/master"
+ "source": "https://github.com/php-fig/http-client"
},
- "time": "2020-06-29T06:28:15+00:00"
+ "time": "2023-09-23T14:17:50+00:00"
},
{
"name": "psr/http-factory",
- "version": "1.0.1",
+ "version": "1.0.2",
"source": {
"type": "git",
"url": "https://github.com/php-fig/http-factory.git",
- "reference": "12ac7fcd07e5b077433f5f2bee95b3a771bf61be"
+ "reference": "e616d01114759c4c489f93b099585439f795fe35"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/php-fig/http-factory/zipball/12ac7fcd07e5b077433f5f2bee95b3a771bf61be",
- "reference": "12ac7fcd07e5b077433f5f2bee95b3a771bf61be",
+ "url": "https://api.github.com/repos/php-fig/http-factory/zipball/e616d01114759c4c489f93b099585439f795fe35",
+ "reference": "e616d01114759c4c489f93b099585439f795fe35",
"shasum": ""
},
"require": {
"php": ">=7.0.0",
- "psr/http-message": "^1.0"
+ "psr/http-message": "^1.0 || ^2.0"
},
"type": "library",
"extra": {
@@ -3030,7 +3446,7 @@
"authors": [
{
"name": "PHP-FIG",
- "homepage": "http://www.php-fig.org/"
+ "homepage": "https://www.php-fig.org/"
}
],
"description": "Common interfaces for PSR-7 HTTP message factories",
@@ -3045,31 +3461,31 @@
"response"
],
"support": {
- "source": "https://github.com/php-fig/http-factory/tree/master"
+ "source": "https://github.com/php-fig/http-factory/tree/1.0.2"
},
- "time": "2019-04-30T12:38:16+00:00"
+ "time": "2023-04-10T20:10:41+00:00"
},
{
"name": "psr/http-message",
- "version": "1.0.1",
+ "version": "2.0",
"source": {
"type": "git",
"url": "https://github.com/php-fig/http-message.git",
- "reference": "f6561bf28d520154e4b0ec72be95418abe6d9363"
+ "reference": "402d35bcb92c70c026d1a6a9883f06b2ead23d71"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/php-fig/http-message/zipball/f6561bf28d520154e4b0ec72be95418abe6d9363",
- "reference": "f6561bf28d520154e4b0ec72be95418abe6d9363",
+ "url": "https://api.github.com/repos/php-fig/http-message/zipball/402d35bcb92c70c026d1a6a9883f06b2ead23d71",
+ "reference": "402d35bcb92c70c026d1a6a9883f06b2ead23d71",
"shasum": ""
},
"require": {
- "php": ">=5.3.0"
+ "php": "^7.2 || ^8.0"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "1.0.x-dev"
+ "dev-master": "2.0.x-dev"
}
},
"autoload": {
@@ -3084,7 +3500,7 @@
"authors": [
{
"name": "PHP-FIG",
- "homepage": "http://www.php-fig.org/"
+ "homepage": "https://www.php-fig.org/"
}
],
"description": "Common interface for HTTP messages",
@@ -3098,31 +3514,34 @@
"response"
],
"support": {
- "source": "https://github.com/php-fig/http-message/tree/master"
+ "source": "https://github.com/php-fig/http-message/tree/2.0"
},
- "time": "2016-08-06T14:39:51+00:00"
+ "time": "2023-04-04T09:54:51+00:00"
},
{
"name": "psr/link",
- "version": "1.0.0",
+ "version": "2.0.1",
"source": {
"type": "git",
"url": "https://github.com/php-fig/link.git",
- "reference": "eea8e8662d5cd3ae4517c9b864493f59fca95562"
+ "reference": "84b159194ecfd7eaa472280213976e96415433f7"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/php-fig/link/zipball/eea8e8662d5cd3ae4517c9b864493f59fca95562",
- "reference": "eea8e8662d5cd3ae4517c9b864493f59fca95562",
+ "url": "https://api.github.com/repos/php-fig/link/zipball/84b159194ecfd7eaa472280213976e96415433f7",
+ "reference": "84b159194ecfd7eaa472280213976e96415433f7",
"shasum": ""
},
"require": {
- "php": ">=5.3.0"
+ "php": ">=8.0.0"
+ },
+ "suggest": {
+ "fig/link-util": "Provides some useful PSR-13 utilities"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "1.0.x-dev"
+ "dev-master": "2.0.x-dev"
}
},
"autoload": {
@@ -3141,6 +3560,7 @@
}
],
"description": "Common interfaces for HTTP links",
+ "homepage": "https://github.com/php-fig/link",
"keywords": [
"http",
"http-link",
@@ -3150,36 +3570,36 @@
"rest"
],
"support": {
- "source": "https://github.com/php-fig/link/tree/master"
+ "source": "https://github.com/php-fig/link/tree/2.0.1"
},
- "time": "2016-10-28T16:06:13+00:00"
+ "time": "2021-03-11T23:00:27+00:00"
},
{
"name": "psr/log",
- "version": "1.1.4",
+ "version": "3.0.0",
"source": {
"type": "git",
"url": "https://github.com/php-fig/log.git",
- "reference": "d49695b909c3b7628b6289db5479a1c204601f11"
+ "reference": "fe5ea303b0887d5caefd3d431c3e61ad47037001"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/php-fig/log/zipball/d49695b909c3b7628b6289db5479a1c204601f11",
- "reference": "d49695b909c3b7628b6289db5479a1c204601f11",
+ "url": "https://api.github.com/repos/php-fig/log/zipball/fe5ea303b0887d5caefd3d431c3e61ad47037001",
+ "reference": "fe5ea303b0887d5caefd3d431c3e61ad47037001",
"shasum": ""
},
"require": {
- "php": ">=5.3.0"
+ "php": ">=8.0.0"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "1.1.x-dev"
+ "dev-master": "3.x-dev"
}
},
"autoload": {
"psr-4": {
- "Psr\\Log\\": "Psr/Log/"
+ "Psr\\Log\\": "src"
}
},
"notification-url": "https://packagist.org/downloads/",
@@ -3200,9 +3620,9 @@
"psr-3"
],
"support": {
- "source": "https://github.com/php-fig/log/tree/1.1.4"
+ "source": "https://github.com/php-fig/log/tree/3.0.0"
},
- "time": "2021-05-03T11:20:27+00:00"
+ "time": "2021-07-14T16:46:02+00:00"
},
{
"name": "ralouphie/getallheaders",
@@ -3250,20 +3670,20 @@
},
{
"name": "sensio/framework-extra-bundle",
- "version": "v6.2.6",
+ "version": "v6.2.10",
"source": {
"type": "git",
"url": "https://github.com/sensiolabs/SensioFrameworkExtraBundle.git",
- "reference": "6bd976c99ef3f78e31c9490a10ba6dd8901076eb"
+ "reference": "2f886f4b31f23c76496901acaedfedb6936ba61f"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sensiolabs/SensioFrameworkExtraBundle/zipball/6bd976c99ef3f78e31c9490a10ba6dd8901076eb",
- "reference": "6bd976c99ef3f78e31c9490a10ba6dd8901076eb",
+ "url": "https://api.github.com/repos/sensiolabs/SensioFrameworkExtraBundle/zipball/2f886f4b31f23c76496901acaedfedb6936ba61f",
+ "reference": "2f886f4b31f23c76496901acaedfedb6936ba61f",
"shasum": ""
},
"require": {
- "doctrine/annotations": "^1.0",
+ "doctrine/annotations": "^1.0|^2.0",
"php": ">=7.2.5",
"symfony/config": "^4.4|^5.0|^6.0",
"symfony/dependency-injection": "^4.4|^5.0|^6.0",
@@ -3321,154 +3741,112 @@
"controllers"
],
"support": {
- "issues": "https://github.com/sensiolabs/SensioFrameworkExtraBundle/issues",
- "source": "https://github.com/sensiolabs/SensioFrameworkExtraBundle/tree/v6.2.6"
+ "source": "https://github.com/sensiolabs/SensioFrameworkExtraBundle/tree/v6.2.10"
},
- "time": "2022-01-14T11:51:13+00:00"
+ "abandoned": "Symfony",
+ "time": "2023-02-24T14:57:12+00:00"
},
{
- "name": "solarium/solarium",
- "version": "6.2.6",
+ "name": "sfu-dhil/nines",
+ "version": "v6.3.17",
"source": {
"type": "git",
- "url": "https://github.com/solariumphp/solarium.git",
- "reference": "cefde7709ba6290b78bb98d4ca11899cc0eb956e"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/solariumphp/solarium/zipball/cefde7709ba6290b78bb98d4ca11899cc0eb956e",
- "reference": "cefde7709ba6290b78bb98d4ca11899cc0eb956e",
- "shasum": ""
+ "url": "https://github.com/sfu-dhil/nines-bundles.git",
+ "reference": "6c8633b6c83bf29810daf704ec5faa82edda64b4"
},
"require": {
- "composer-runtime-api": ">=2.0",
+ "doctrine/cache": "^2.2",
+ "doctrine/inflector": "^2.0",
+ "doctrine/persistence": "^3.1",
+ "egulias/email-validator": "^4.0",
+ "excelwebzone/recaptcha-bundle": "^1.5",
+ "ext-imagick": "*",
"ext-json": "*",
- "php": "^7.3 || ^8.0",
- "psr/event-dispatcher": "^1.0",
- "psr/http-client": "^1.0",
- "psr/http-factory": "^1.0",
- "symfony/event-dispatcher-contracts": "^1.0 || ^2.0 || ^3.0"
+ "guzzlehttp/guzzle": "^6.5||^7.5",
+ "knplabs/knp-menu-bundle": "^3.2",
+ "knplabs/knp-paginator-bundle": "^6.2",
+ "nyholm/psr7": "^1.5",
+ "php": ">=8.2.0",
+ "sensio/framework-extra-bundle": "^6.2",
+ "symfony/form": "6.3.*",
+ "symfony/html-sanitizer": "6.3.*",
+ "symfony/mailer": "6.3.*",
+ "symfony/monolog-bundle": "^3.8",
+ "symfony/security-bundle": "6.3.*",
+ "symfony/serializer-pack": "^1.3",
+ "symfony/twig-bundle": "6.3.*",
+ "symfony/validator": "6.3.*",
+ "twig/string-extra": "^3.5"
},
"require-dev": {
- "escapestudios/symfony2-coding-standard": "^3.11",
- "guzzlehttp/guzzle": "^7.2",
- "nyholm/psr7": "^1.2",
- "php-http/guzzle7-adapter": "^0.1",
- "phpstan/extension-installer": "^1.0",
- "phpstan/phpstan": "^1.0",
- "phpstan/phpstan-phpunit": "^1.0",
- "phpunit/phpunit": "^9.5",
- "roave/security-advisories": "dev-master",
- "symfony/event-dispatcher": "^4.3 || ^5.0 || ^6.0"
+ "dama/doctrine-test-bundle": "^7.2",
+ "doctrine/doctrine-fixtures-bundle": "^3.4",
+ "friendsofphp/php-cs-fixer": "^3.49",
+ "friendsoftwig/twigcs": "^6.4",
+ "liip/test-fixtures-bundle": "^2.6.0",
+ "phpstan/phpstan": "^1.10",
+ "phpstan/phpstan-doctrine": "^1.3",
+ "phpstan/phpstan-symfony": "^1.2",
+ "phpunit/phpunit": "^9.6",
+ "symfony/browser-kit": "6.3.*",
+ "symfony/css-selector": "6.3.*",
+ "symfony/maker-bundle": "^1.50",
+ "symfony/phpunit-bridge": "6.3.*",
+ "symfony/test-pack": "^1.1"
},
"type": "library",
"autoload": {
"psr-4": {
- "Solarium\\": "src/"
+ "Nines\\BlogBundle\\": "BlogBundle",
+ "Nines\\DublinCoreBundle\\": "DublinCoreBundle",
+ "Nines\\EditorBundle\\": "EditorBundle",
+ "Nines\\FeedbackBundle\\": "FeedbackBundle",
+ "Nines\\MakerBundle\\": "MakerBundle",
+ "Nines\\MediaBundle\\": "MediaBundle",
+ "Nines\\UserBundle\\": "UserBundle",
+ "Nines\\UtilBundle\\": "UtilBundle"
}
},
- "notification-url": "https://packagist.org/downloads/",
"license": [
- "BSD-3-Clause"
+ "gpl"
],
"authors": [
{
- "name": "See GitHub contributors",
- "homepage": "https://github.com/solariumphp/solarium/contributors"
- }
- ],
- "description": "PHP Solr client",
- "homepage": "http://www.solarium-project.org",
- "keywords": [
- "php",
- "search",
- "solr"
- ],
- "support": {
- "issues": "https://github.com/solariumphp/solarium/issues",
- "source": "https://github.com/solariumphp/solarium/tree/6.2.6"
- },
- "time": "2022-07-22T10:29:01+00:00"
- },
- {
- "name": "soundasleep/html2text",
- "version": "2.0.0",
- "source": {
- "type": "git",
- "url": "https://github.com/soundasleep/html2text.git",
- "reference": "aa214620d7beecd5cef8b1c32102a9204edb82f5"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/soundasleep/html2text/zipball/aa214620d7beecd5cef8b1c32102a9204edb82f5",
- "reference": "aa214620d7beecd5cef8b1c32102a9204edb82f5",
- "shasum": ""
- },
- "require": {
- "ext-dom": "*",
- "ext-libxml": "*",
- "php": "^7.0|^8.0"
- },
- "require-dev": {
- "phpunit/phpunit": "^7.0|^8.0|^9.0",
- "soundasleep/component-tests": "^0.2"
- },
- "type": "library",
- "autoload": {
- "psr-4": {
- "Soundasleep\\": "src"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
+ "name": "Michael Joyce",
+ "email": "ubermichael@gmail.com"
+ },
{
- "name": "Jevon Wright",
- "homepage": "https://jevon.org",
- "role": "Developer"
+ "name": "Andrew Gardener",
+ "email": "andrew.e.gardner@gmail.com"
}
],
- "description": "A PHP script to convert HTML into a plain text format",
- "homepage": "https://github.com/soundasleep/html2text",
- "keywords": [
- "email",
- "html",
- "php",
- "text"
- ],
- "support": {
- "email": "support@jevon.org",
- "issues": "https://github.com/soundasleep/html2text/issues",
- "source": "https://github.com/soundasleep/html2text/tree/2.0.0"
- },
- "time": "2022-01-29T19:05:09+00:00"
+ "description": "Some useful bundles.",
+ "time": "2024-05-10T17:16:17+00:00"
},
{
"name": "symfony/asset",
- "version": "v4.4.40",
+ "version": "v6.3.12",
"source": {
"type": "git",
"url": "https://github.com/symfony/asset.git",
- "reference": "4dee0d02664f2d06005c56b8e43612b7a372e47d"
+ "reference": "a579e67adaa9586a007abd1b6faf97296eef08ec"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/asset/zipball/4dee0d02664f2d06005c56b8e43612b7a372e47d",
- "reference": "4dee0d02664f2d06005c56b8e43612b7a372e47d",
+ "url": "https://api.github.com/repos/symfony/asset/zipball/a579e67adaa9586a007abd1b6faf97296eef08ec",
+ "reference": "a579e67adaa9586a007abd1b6faf97296eef08ec",
"shasum": ""
},
"require": {
- "php": ">=7.1.3",
- "symfony/polyfill-php80": "^1.16"
+ "php": ">=8.1"
},
- "require-dev": {
- "symfony/http-foundation": "^3.4|^4.0|^5.0",
- "symfony/http-kernel": "^3.4|^4.0|^5.0"
+ "conflict": {
+ "symfony/http-foundation": "<5.4"
},
- "suggest": {
- "symfony/http-foundation": ""
+ "require-dev": {
+ "symfony/http-client": "^5.4|^6.0",
+ "symfony/http-foundation": "^5.4|^6.0",
+ "symfony/http-kernel": "^5.4|^6.0"
},
"type": "library",
"autoload": {
@@ -3496,7 +3874,7 @@
"description": "Manages URL generation and versioning of web assets such as CSS stylesheets, JavaScript files and image files",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/asset/tree/v4.4.40"
+ "source": "https://github.com/symfony/asset/tree/v6.3.12"
},
"funding": [
{
@@ -3512,60 +3890,61 @@
"type": "tidelift"
}
],
- "time": "2022-03-07T18:38:28+00:00"
+ "time": "2024-01-23T14:35:58+00:00"
},
{
"name": "symfony/cache",
- "version": "v4.4.44",
+ "version": "v6.3.12",
"source": {
"type": "git",
"url": "https://github.com/symfony/cache.git",
- "reference": "db611fb1b86e2223d406c5bf3d813536c95de7ce"
+ "reference": "d085eedf33550ce014230bc51fca8df726ed7ac5"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/cache/zipball/db611fb1b86e2223d406c5bf3d813536c95de7ce",
- "reference": "db611fb1b86e2223d406c5bf3d813536c95de7ce",
+ "url": "https://api.github.com/repos/symfony/cache/zipball/d085eedf33550ce014230bc51fca8df726ed7ac5",
+ "reference": "d085eedf33550ce014230bc51fca8df726ed7ac5",
"shasum": ""
},
"require": {
- "php": ">=7.1.3",
- "psr/cache": "^1.0|^2.0",
- "psr/log": "^1|^2|^3",
- "symfony/cache-contracts": "^1.1.7|^2",
- "symfony/polyfill-php73": "^1.9",
- "symfony/polyfill-php80": "^1.16",
- "symfony/service-contracts": "^1.1|^2",
- "symfony/var-exporter": "^4.2|^5.0"
+ "php": ">=8.1",
+ "psr/cache": "^2.0|^3.0",
+ "psr/log": "^1.1|^2|^3",
+ "symfony/cache-contracts": "^2.5|^3",
+ "symfony/service-contracts": "^2.5|^3",
+ "symfony/var-exporter": "^6.3.6"
},
"conflict": {
- "doctrine/dbal": "<2.7",
- "symfony/dependency-injection": "<3.4",
- "symfony/http-kernel": "<4.4|>=5.0",
- "symfony/var-dumper": "<4.4"
+ "doctrine/dbal": "<2.13.1",
+ "symfony/dependency-injection": "<5.4",
+ "symfony/http-kernel": "<5.4",
+ "symfony/var-dumper": "<5.4"
},
"provide": {
- "psr/cache-implementation": "1.0|2.0",
- "psr/simple-cache-implementation": "1.0|2.0",
- "symfony/cache-implementation": "1.0|2.0"
+ "psr/cache-implementation": "2.0|3.0",
+ "psr/simple-cache-implementation": "1.0|2.0|3.0",
+ "symfony/cache-implementation": "1.1|2.0|3.0"
},
"require-dev": {
"cache/integration-tests": "dev-master",
- "doctrine/cache": "^1.6|^2.0",
- "doctrine/dbal": "^2.7|^3.0",
- "predis/predis": "^1.1",
- "psr/simple-cache": "^1.0|^2.0",
- "symfony/config": "^4.2|^5.0",
- "symfony/dependency-injection": "^3.4|^4.1|^5.0",
- "symfony/filesystem": "^4.4|^5.0",
- "symfony/http-kernel": "^4.4",
- "symfony/var-dumper": "^4.4|^5.0"
+ "doctrine/dbal": "^2.13.1|^3|^4",
+ "predis/predis": "^1.1|^2.0",
+ "psr/simple-cache": "^1.0|^2.0|^3.0",
+ "symfony/config": "^5.4|^6.0",
+ "symfony/dependency-injection": "^5.4|^6.0",
+ "symfony/filesystem": "^5.4|^6.0",
+ "symfony/http-kernel": "^5.4|^6.0",
+ "symfony/messenger": "^5.4|^6.0",
+ "symfony/var-dumper": "^5.4|^6.0"
},
"type": "library",
"autoload": {
"psr-4": {
"Symfony\\Component\\Cache\\": ""
},
+ "classmap": [
+ "Traits/ValueWrapper.php"
+ ],
"exclude-from-classmap": [
"/Tests/"
]
@@ -3584,14 +3963,14 @@
"homepage": "https://symfony.com/contributors"
}
],
- "description": "Provides an extended PSR-6, PSR-16 (and tags) implementation",
+ "description": "Provides extended PSR-6, PSR-16 (and tags) implementations",
"homepage": "https://symfony.com",
"keywords": [
"caching",
"psr6"
],
"support": {
- "source": "https://github.com/symfony/cache/tree/v4.4.44"
+ "source": "https://github.com/symfony/cache/tree/v6.3.12"
},
"funding": [
{
@@ -3607,33 +3986,30 @@
"type": "tidelift"
}
],
- "time": "2022-07-20T09:59:04+00:00"
+ "time": "2024-01-23T14:42:18+00:00"
},
{
"name": "symfony/cache-contracts",
- "version": "v2.5.2",
+ "version": "v3.5.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/cache-contracts.git",
- "reference": "64be4a7acb83b6f2bf6de9a02cee6dad41277ebc"
+ "reference": "df6a1a44c890faded49a5fca33c2d5c5fd3c2197"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/cache-contracts/zipball/64be4a7acb83b6f2bf6de9a02cee6dad41277ebc",
- "reference": "64be4a7acb83b6f2bf6de9a02cee6dad41277ebc",
+ "url": "https://api.github.com/repos/symfony/cache-contracts/zipball/df6a1a44c890faded49a5fca33c2d5c5fd3c2197",
+ "reference": "df6a1a44c890faded49a5fca33c2d5c5fd3c2197",
"shasum": ""
},
"require": {
- "php": ">=7.2.5",
- "psr/cache": "^1.0|^2.0|^3.0"
- },
- "suggest": {
- "symfony/cache-implementation": ""
+ "php": ">=8.1",
+ "psr/cache": "^3.0"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "2.5-dev"
+ "dev-main": "3.5-dev"
},
"thanks": {
"name": "symfony/contracts",
@@ -3670,7 +4046,7 @@
"standards"
],
"support": {
- "source": "https://github.com/symfony/cache-contracts/tree/v2.5.2"
+ "source": "https://github.com/symfony/cache-contracts/tree/v3.5.0"
},
"funding": [
{
@@ -3686,46 +4062,36 @@
"type": "tidelift"
}
],
- "time": "2022-01-02T09:53:40+00:00"
+ "time": "2024-04-18T09:32:20+00:00"
},
{
- "name": "symfony/config",
- "version": "v4.4.44",
+ "name": "symfony/clock",
+ "version": "v6.3.12",
"source": {
"type": "git",
- "url": "https://github.com/symfony/config.git",
- "reference": "ed42f8f9da528d2c6cae36fe1f380b0c1d8f0658"
+ "url": "https://github.com/symfony/clock.git",
+ "reference": "b0fd66f03a9afb104a8def4e893fa96e1699c39b"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/config/zipball/ed42f8f9da528d2c6cae36fe1f380b0c1d8f0658",
- "reference": "ed42f8f9da528d2c6cae36fe1f380b0c1d8f0658",
+ "url": "https://api.github.com/repos/symfony/clock/zipball/b0fd66f03a9afb104a8def4e893fa96e1699c39b",
+ "reference": "b0fd66f03a9afb104a8def4e893fa96e1699c39b",
"shasum": ""
},
"require": {
- "php": ">=7.1.3",
- "symfony/filesystem": "^3.4|^4.0|^5.0",
- "symfony/polyfill-ctype": "~1.8",
- "symfony/polyfill-php80": "^1.16",
- "symfony/polyfill-php81": "^1.22"
- },
- "conflict": {
- "symfony/finder": "<3.4"
- },
- "require-dev": {
- "symfony/event-dispatcher": "^3.4|^4.0|^5.0",
- "symfony/finder": "^3.4|^4.0|^5.0",
- "symfony/messenger": "^4.1|^5.0",
- "symfony/service-contracts": "^1.1|^2",
- "symfony/yaml": "^3.4|^4.0|^5.0"
+ "php": ">=8.1",
+ "psr/clock": "^1.0"
},
- "suggest": {
- "symfony/yaml": "To use the yaml reference dumper"
+ "provide": {
+ "psr/clock-implementation": "1.0"
},
"type": "library",
"autoload": {
+ "files": [
+ "Resources/now.php"
+ ],
"psr-4": {
- "Symfony\\Component\\Config\\": ""
+ "Symfony\\Component\\Clock\\": ""
},
"exclude-from-classmap": [
"/Tests/"
@@ -3737,18 +4103,23 @@
],
"authors": [
{
- "name": "Fabien Potencier",
- "email": "fabien@symfony.com"
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
},
{
"name": "Symfony Community",
"homepage": "https://symfony.com/contributors"
}
],
- "description": "Helps you find, load, combine, autofill and validate configuration values of any kind",
+ "description": "Decouples applications from the system clock",
"homepage": "https://symfony.com",
+ "keywords": [
+ "clock",
+ "psr20",
+ "time"
+ ],
"support": {
- "source": "https://github.com/symfony/config/tree/v4.4.44"
+ "source": "https://github.com/symfony/clock/tree/v6.3.12"
},
"funding": [
{
@@ -3764,58 +4135,43 @@
"type": "tidelift"
}
],
- "time": "2022-07-20T09:59:04+00:00"
+ "time": "2024-01-23T14:35:58+00:00"
},
{
- "name": "symfony/console",
- "version": "v4.4.44",
+ "name": "symfony/config",
+ "version": "v6.3.12",
"source": {
"type": "git",
- "url": "https://github.com/symfony/console.git",
- "reference": "c35fafd7f12ebd6f9e29c95a370df7f1fb171a40"
+ "url": "https://github.com/symfony/config.git",
+ "reference": "66b548223ec2569cc9f997f0dfbe8c3cfed9417e"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/console/zipball/c35fafd7f12ebd6f9e29c95a370df7f1fb171a40",
- "reference": "c35fafd7f12ebd6f9e29c95a370df7f1fb171a40",
+ "url": "https://api.github.com/repos/symfony/config/zipball/66b548223ec2569cc9f997f0dfbe8c3cfed9417e",
+ "reference": "66b548223ec2569cc9f997f0dfbe8c3cfed9417e",
"shasum": ""
},
"require": {
- "php": ">=7.1.3",
- "symfony/polyfill-mbstring": "~1.0",
- "symfony/polyfill-php73": "^1.8",
- "symfony/polyfill-php80": "^1.16",
- "symfony/service-contracts": "^1.1|^2"
+ "php": ">=8.1",
+ "symfony/deprecation-contracts": "^2.5|^3",
+ "symfony/filesystem": "^5.4|^6.0",
+ "symfony/polyfill-ctype": "~1.8"
},
"conflict": {
- "psr/log": ">=3",
- "symfony/dependency-injection": "<3.4",
- "symfony/event-dispatcher": "<4.3|>=5",
- "symfony/lock": "<4.4",
- "symfony/process": "<3.3"
- },
- "provide": {
- "psr/log-implementation": "1.0|2.0"
+ "symfony/finder": "<5.4",
+ "symfony/service-contracts": "<2.5"
},
"require-dev": {
- "psr/log": "^1|^2",
- "symfony/config": "^3.4|^4.0|^5.0",
- "symfony/dependency-injection": "^3.4|^4.0|^5.0",
- "symfony/event-dispatcher": "^4.3",
- "symfony/lock": "^4.4|^5.0",
- "symfony/process": "^3.4|^4.0|^5.0",
- "symfony/var-dumper": "^4.3|^5.0"
- },
- "suggest": {
- "psr/log": "For using the console logger",
- "symfony/event-dispatcher": "",
- "symfony/lock": "",
- "symfony/process": ""
+ "symfony/event-dispatcher": "^5.4|^6.0",
+ "symfony/finder": "^5.4|^6.0",
+ "symfony/messenger": "^5.4|^6.0",
+ "symfony/service-contracts": "^2.5|^3",
+ "symfony/yaml": "^5.4|^6.0"
},
"type": "library",
"autoload": {
"psr-4": {
- "Symfony\\Component\\Console\\": ""
+ "Symfony\\Component\\Config\\": ""
},
"exclude-from-classmap": [
"/Tests/"
@@ -3835,10 +4191,10 @@
"homepage": "https://symfony.com/contributors"
}
],
- "description": "Eases the creation of beautiful and testable command line interfaces",
+ "description": "Helps you find, load, combine, autofill and validate configuration values of any kind",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/console/tree/v4.4.44"
+ "source": "https://github.com/symfony/config/tree/v6.3.12"
},
"funding": [
{
@@ -3854,36 +4210,52 @@
"type": "tidelift"
}
],
- "time": "2022-07-20T09:59:04+00:00"
+ "time": "2024-01-23T14:35:58+00:00"
},
{
- "name": "symfony/debug",
- "version": "v4.4.44",
+ "name": "symfony/console",
+ "version": "v6.3.12",
"source": {
"type": "git",
- "url": "https://github.com/symfony/debug.git",
- "reference": "1a692492190773c5310bc7877cb590c04c2f05be"
+ "url": "https://github.com/symfony/console.git",
+ "reference": "6f69929b2421cf733a5b791dde3c3a2cfa6340cd"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/debug/zipball/1a692492190773c5310bc7877cb590c04c2f05be",
- "reference": "1a692492190773c5310bc7877cb590c04c2f05be",
+ "url": "https://api.github.com/repos/symfony/console/zipball/6f69929b2421cf733a5b791dde3c3a2cfa6340cd",
+ "reference": "6f69929b2421cf733a5b791dde3c3a2cfa6340cd",
"shasum": ""
},
"require": {
- "php": ">=7.1.3",
- "psr/log": "^1|^2|^3"
+ "php": ">=8.1",
+ "symfony/deprecation-contracts": "^2.5|^3",
+ "symfony/polyfill-mbstring": "~1.0",
+ "symfony/service-contracts": "^2.5|^3",
+ "symfony/string": "^5.4|^6.0"
},
"conflict": {
- "symfony/http-kernel": "<3.4"
+ "symfony/dependency-injection": "<5.4",
+ "symfony/dotenv": "<5.4",
+ "symfony/event-dispatcher": "<5.4",
+ "symfony/lock": "<5.4",
+ "symfony/process": "<5.4"
+ },
+ "provide": {
+ "psr/log-implementation": "1.0|2.0|3.0"
},
"require-dev": {
- "symfony/http-kernel": "^3.4|^4.0|^5.0"
+ "psr/log": "^1|^2|^3",
+ "symfony/config": "^5.4|^6.0",
+ "symfony/dependency-injection": "^5.4|^6.0",
+ "symfony/event-dispatcher": "^5.4|^6.0",
+ "symfony/lock": "^5.4|^6.0",
+ "symfony/process": "^5.4|^6.0",
+ "symfony/var-dumper": "^5.4|^6.0"
},
"type": "library",
"autoload": {
"psr-4": {
- "Symfony\\Component\\Debug\\": ""
+ "Symfony\\Component\\Console\\": ""
},
"exclude-from-classmap": [
"/Tests/"
@@ -3903,10 +4275,16 @@
"homepage": "https://symfony.com/contributors"
}
],
- "description": "Provides tools to ease debugging PHP code",
- "homepage": "https://symfony.com",
+ "description": "Eases the creation of beautiful and testable command line interfaces",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "cli",
+ "command-line",
+ "console",
+ "terminal"
+ ],
"support": {
- "source": "https://github.com/symfony/debug/tree/v4.4.44"
+ "source": "https://github.com/symfony/console/tree/v6.3.12"
},
"funding": [
{
@@ -3922,50 +4300,44 @@
"type": "tidelift"
}
],
- "abandoned": "symfony/error-handler",
- "time": "2022-07-28T16:29:46+00:00"
+ "time": "2024-01-23T16:21:43+00:00"
},
{
"name": "symfony/dependency-injection",
- "version": "v4.4.44",
+ "version": "v6.3.12",
"source": {
"type": "git",
"url": "https://github.com/symfony/dependency-injection.git",
- "reference": "25502a57182ba1e15da0afd64c975cae4d0a1471"
+ "reference": "3ca6c70bef0644be86d5acd962f11a6a6aa9382d"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/25502a57182ba1e15da0afd64c975cae4d0a1471",
- "reference": "25502a57182ba1e15da0afd64c975cae4d0a1471",
+ "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/3ca6c70bef0644be86d5acd962f11a6a6aa9382d",
+ "reference": "3ca6c70bef0644be86d5acd962f11a6a6aa9382d",
"shasum": ""
},
"require": {
- "php": ">=7.1.3",
- "psr/container": "^1.0",
- "symfony/polyfill-php80": "^1.16",
- "symfony/service-contracts": "^1.1.6|^2"
+ "php": ">=8.1",
+ "psr/container": "^1.1|^2.0",
+ "symfony/deprecation-contracts": "^2.5|^3",
+ "symfony/service-contracts": "^2.5|^3.0",
+ "symfony/var-exporter": "^6.2.10"
},
"conflict": {
- "symfony/config": "<4.3|>=5.0",
- "symfony/finder": "<3.4",
- "symfony/proxy-manager-bridge": "<3.4",
- "symfony/yaml": "<4.4.26"
+ "ext-psr": "<1.1|>=2",
+ "symfony/config": "<6.1",
+ "symfony/finder": "<5.4",
+ "symfony/proxy-manager-bridge": "<6.3",
+ "symfony/yaml": "<5.4"
},
"provide": {
- "psr/container-implementation": "1.0",
- "symfony/service-implementation": "1.0|2.0"
+ "psr/container-implementation": "1.1|2.0",
+ "symfony/service-implementation": "1.1|2.0|3.0"
},
"require-dev": {
- "symfony/config": "^4.3",
- "symfony/expression-language": "^3.4|^4.0|^5.0",
- "symfony/yaml": "^4.4.26|^5.0"
- },
- "suggest": {
- "symfony/config": "",
- "symfony/expression-language": "For using expressions in service container configuration",
- "symfony/finder": "For using double-star glob patterns or when GLOB_BRACE portability is required",
- "symfony/proxy-manager-bridge": "Generate service proxies to lazy load them",
- "symfony/yaml": ""
+ "symfony/config": "^6.1",
+ "symfony/expression-language": "^5.4|^6.0",
+ "symfony/yaml": "^5.4|^6.0"
},
"type": "library",
"autoload": {
@@ -3993,7 +4365,7 @@
"description": "Allows you to standardize and centralize the way objects are constructed in your application",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/dependency-injection/tree/v4.4.44"
+ "source": "https://github.com/symfony/dependency-injection/tree/v6.3.12"
},
"funding": [
{
@@ -4009,29 +4381,29 @@
"type": "tidelift"
}
],
- "time": "2022-07-20T09:59:04+00:00"
+ "time": "2024-01-30T08:17:33+00:00"
},
{
"name": "symfony/deprecation-contracts",
- "version": "v2.5.2",
+ "version": "v3.5.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/deprecation-contracts.git",
- "reference": "e8b495ea28c1d97b5e0c121748d6f9b53d075c66"
+ "reference": "0e0d29ce1f20deffb4ab1b016a7257c4f1e789a1"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/e8b495ea28c1d97b5e0c121748d6f9b53d075c66",
- "reference": "e8b495ea28c1d97b5e0c121748d6f9b53d075c66",
+ "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/0e0d29ce1f20deffb4ab1b016a7257c4f1e789a1",
+ "reference": "0e0d29ce1f20deffb4ab1b016a7257c4f1e789a1",
"shasum": ""
},
"require": {
- "php": ">=7.1"
+ "php": ">=8.1"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "2.5-dev"
+ "dev-main": "3.5-dev"
},
"thanks": {
"name": "symfony/contracts",
@@ -4060,7 +4432,7 @@
"description": "A generic function and convention to trigger deprecation notices",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/deprecation-contracts/tree/v2.5.2"
+ "source": "https://github.com/symfony/deprecation-contracts/tree/v3.5.0"
},
"funding": [
{
@@ -4076,73 +4448,73 @@
"type": "tidelift"
}
],
- "time": "2022-01-02T09:53:40+00:00"
+ "time": "2024-04-18T09:32:20+00:00"
},
{
"name": "symfony/doctrine-bridge",
- "version": "v4.4.44",
+ "version": "v6.3.12",
"source": {
"type": "git",
"url": "https://github.com/symfony/doctrine-bridge.git",
- "reference": "5d5a797a5bb03b68bdb62d6d16e7d599769f9bcb"
+ "reference": "395b7bfd32b0f7700877c50ab1452f283c99878a"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/doctrine-bridge/zipball/5d5a797a5bb03b68bdb62d6d16e7d599769f9bcb",
- "reference": "5d5a797a5bb03b68bdb62d6d16e7d599769f9bcb",
+ "url": "https://api.github.com/repos/symfony/doctrine-bridge/zipball/395b7bfd32b0f7700877c50ab1452f283c99878a",
+ "reference": "395b7bfd32b0f7700877c50ab1452f283c99878a",
"shasum": ""
},
"require": {
- "doctrine/event-manager": "~1.0",
- "doctrine/persistence": "^1.3|^2|^3",
- "php": ">=7.1.3",
+ "doctrine/event-manager": "^1.2|^2",
+ "doctrine/persistence": "^2|^3",
+ "php": ">=8.1",
+ "symfony/deprecation-contracts": "^2.5|^3",
"symfony/polyfill-ctype": "~1.8",
"symfony/polyfill-mbstring": "~1.0",
- "symfony/polyfill-php80": "^1.16",
- "symfony/service-contracts": "^1.1|^2"
+ "symfony/service-contracts": "^2.5|^3"
},
"conflict": {
- "doctrine/dbal": "<2.7",
+ "doctrine/annotations": "<1.13.1",
+ "doctrine/dbal": "<2.13.1",
"doctrine/lexer": "<1.1",
- "doctrine/orm": "<2.6.3",
- "phpunit/phpunit": "<4.8.35|<5.4.3,>=5.0",
- "symfony/dependency-injection": "<3.4",
- "symfony/form": "<4.4",
- "symfony/http-kernel": "<4.3.7",
- "symfony/messenger": "<4.3",
- "symfony/proxy-manager-bridge": "<4.4.19",
- "symfony/security-core": "<4.4",
- "symfony/validator": "<4.4.2|<5.0.2,>=5.0"
+ "doctrine/orm": "<2.12",
+ "symfony/cache": "<5.4",
+ "symfony/dependency-injection": "<6.2",
+ "symfony/form": "<5.4.21|>=6,<6.2.7",
+ "symfony/http-foundation": "<6.3",
+ "symfony/http-kernel": "<6.2",
+ "symfony/lock": "<6.3",
+ "symfony/messenger": "<5.4",
+ "symfony/property-info": "<5.4",
+ "symfony/security-bundle": "<5.4",
+ "symfony/security-core": "<6.0",
+ "symfony/validator": "<5.4.25|>=6,<6.2.12|>=6.3,<6.3.1"
},
"require-dev": {
- "composer/package-versions-deprecated": "^1.8",
- "doctrine/annotations": "^1.10.4",
- "doctrine/collections": "~1.0",
+ "doctrine/annotations": "^1.13.1|^2",
+ "doctrine/collections": "^1.0|^2.0",
"doctrine/data-fixtures": "^1.1",
- "doctrine/dbal": "^2.7|^3.0",
- "doctrine/orm": "^2.6.3",
- "symfony/config": "^4.2|^5.0",
- "symfony/dependency-injection": "^3.4|^4.0|^5.0",
- "symfony/expression-language": "^3.4|^4.0|^5.0",
- "symfony/form": "^4.4.41|^5.0.11",
- "symfony/http-kernel": "^4.3.7",
- "symfony/messenger": "^4.4|^5.0",
- "symfony/property-access": "^3.4|^4.0|^5.0",
- "symfony/property-info": "^3.4|^4.0|^5.0",
- "symfony/proxy-manager-bridge": "^3.4|^4.0|^5.0",
- "symfony/security-core": "^4.4|^5.0",
- "symfony/stopwatch": "^3.4|^4.0|^5.0",
- "symfony/translation": "^3.4|^4.0|^5.0",
- "symfony/validator": "^4.4.2|^5.0.2",
- "symfony/var-dumper": "^3.4|^4.0|^5.0"
- },
- "suggest": {
- "doctrine/data-fixtures": "",
- "doctrine/dbal": "",
- "doctrine/orm": "",
- "symfony/form": "",
- "symfony/property-info": "",
- "symfony/validator": ""
+ "doctrine/dbal": "^2.13.1|^3|^4",
+ "doctrine/orm": "^2.12|^3",
+ "psr/log": "^1|^2|^3",
+ "symfony/cache": "^5.4|^6.0",
+ "symfony/config": "^5.4|^6.0",
+ "symfony/dependency-injection": "^6.2",
+ "symfony/doctrine-messenger": "^5.4|^6.0",
+ "symfony/expression-language": "^5.4|^6.0",
+ "symfony/form": "^5.4.21|^6.2.7",
+ "symfony/http-kernel": "^6.3",
+ "symfony/lock": "^6.3",
+ "symfony/messenger": "^5.4|^6.0",
+ "symfony/property-access": "^5.4|^6.0",
+ "symfony/property-info": "^5.4|^6.0",
+ "symfony/proxy-manager-bridge": "^5.4|^6.0",
+ "symfony/security-core": "^6.0",
+ "symfony/stopwatch": "^5.4|^6.0",
+ "symfony/translation": "^5.4|^6.0",
+ "symfony/uid": "^5.4|^6.0",
+ "symfony/validator": "^5.4.25|~6.2.12|^6.3.1",
+ "symfony/var-dumper": "^5.4|^6.0"
},
"type": "symfony-bridge",
"autoload": {
@@ -4170,7 +4542,7 @@
"description": "Provides integration for Doctrine with various Symfony components",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/doctrine-bridge/tree/v4.4.44"
+ "source": "https://github.com/symfony/doctrine-bridge/tree/v6.3.12"
},
"funding": [
{
@@ -4186,27 +4558,32 @@
"type": "tidelift"
}
],
- "time": "2022-07-20T09:59:04+00:00"
+ "time": "2024-01-23T14:42:18+00:00"
},
{
"name": "symfony/dotenv",
- "version": "v4.4.37",
+ "version": "v6.3.12",
"source": {
"type": "git",
"url": "https://github.com/symfony/dotenv.git",
- "reference": "fcedd6d382b3afc3e1e786aa4e4fc4cf06f564cf"
+ "reference": "d9eaf699978601af5a50c26cbc4326158d9bd8b0"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/dotenv/zipball/fcedd6d382b3afc3e1e786aa4e4fc4cf06f564cf",
- "reference": "fcedd6d382b3afc3e1e786aa4e4fc4cf06f564cf",
+ "url": "https://api.github.com/repos/symfony/dotenv/zipball/d9eaf699978601af5a50c26cbc4326158d9bd8b0",
+ "reference": "d9eaf699978601af5a50c26cbc4326158d9bd8b0",
"shasum": ""
},
"require": {
- "php": ">=7.1.3"
+ "php": ">=8.1"
+ },
+ "conflict": {
+ "symfony/console": "<5.4",
+ "symfony/process": "<5.4"
},
"require-dev": {
- "symfony/process": "^3.4.2|^4.0|^5.0"
+ "symfony/console": "^5.4|^6.0",
+ "symfony/process": "^5.4|^6.0"
},
"type": "library",
"autoload": {
@@ -4239,7 +4616,7 @@
"environment"
],
"support": {
- "source": "https://github.com/symfony/dotenv/tree/v4.4.37"
+ "source": "https://github.com/symfony/dotenv/tree/v6.3.12"
},
"funding": [
{
@@ -4255,32 +4632,38 @@
"type": "tidelift"
}
],
- "time": "2022-01-02T09:41:36+00:00"
+ "time": "2024-01-23T14:35:58+00:00"
},
{
"name": "symfony/error-handler",
- "version": "v4.4.44",
+ "version": "v6.3.12",
"source": {
"type": "git",
"url": "https://github.com/symfony/error-handler.git",
- "reference": "be731658121ef2d8be88f3a1ec938148a9237291"
+ "reference": "93a8400a7eaaaf385b2d6f71e30e064baa639629"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/error-handler/zipball/be731658121ef2d8be88f3a1ec938148a9237291",
- "reference": "be731658121ef2d8be88f3a1ec938148a9237291",
+ "url": "https://api.github.com/repos/symfony/error-handler/zipball/93a8400a7eaaaf385b2d6f71e30e064baa639629",
+ "reference": "93a8400a7eaaaf385b2d6f71e30e064baa639629",
"shasum": ""
},
"require": {
- "php": ">=7.1.3",
+ "php": ">=8.1",
"psr/log": "^1|^2|^3",
- "symfony/debug": "^4.4.5",
- "symfony/var-dumper": "^4.4|^5.0"
+ "symfony/var-dumper": "^5.4|^6.0"
+ },
+ "conflict": {
+ "symfony/deprecation-contracts": "<2.5"
},
"require-dev": {
- "symfony/http-kernel": "^4.4|^5.0",
- "symfony/serializer": "^4.4|^5.0"
+ "symfony/deprecation-contracts": "^2.5|^3",
+ "symfony/http-kernel": "^5.4|^6.0",
+ "symfony/serializer": "^5.4|^6.0"
},
+ "bin": [
+ "Resources/bin/patch-type-declarations"
+ ],
"type": "library",
"autoload": {
"psr-4": {
@@ -4307,7 +4690,7 @@
"description": "Provides tools to manage errors and ease debugging PHP code",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/error-handler/tree/v4.4.44"
+ "source": "https://github.com/symfony/error-handler/tree/v6.3.12"
},
"funding": [
{
@@ -4323,47 +4706,43 @@
"type": "tidelift"
}
],
- "time": "2022-07-28T16:29:46+00:00"
+ "time": "2024-01-23T14:35:58+00:00"
},
{
"name": "symfony/event-dispatcher",
- "version": "v4.4.44",
+ "version": "v6.3.12",
"source": {
"type": "git",
"url": "https://github.com/symfony/event-dispatcher.git",
- "reference": "1e866e9e5c1b22168e0ce5f0b467f19bba61266a"
+ "reference": "6e344ddd3c18c525b5e5a4e996f3debda48e3078"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/1e866e9e5c1b22168e0ce5f0b467f19bba61266a",
- "reference": "1e866e9e5c1b22168e0ce5f0b467f19bba61266a",
+ "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/6e344ddd3c18c525b5e5a4e996f3debda48e3078",
+ "reference": "6e344ddd3c18c525b5e5a4e996f3debda48e3078",
"shasum": ""
},
"require": {
- "php": ">=7.1.3",
- "symfony/event-dispatcher-contracts": "^1.1",
- "symfony/polyfill-php80": "^1.16"
+ "php": ">=8.1",
+ "symfony/event-dispatcher-contracts": "^2.5|^3"
},
"conflict": {
- "symfony/dependency-injection": "<3.4"
+ "symfony/dependency-injection": "<5.4",
+ "symfony/service-contracts": "<2.5"
},
"provide": {
"psr/event-dispatcher-implementation": "1.0",
- "symfony/event-dispatcher-implementation": "1.1"
+ "symfony/event-dispatcher-implementation": "2.0|3.0"
},
"require-dev": {
"psr/log": "^1|^2|^3",
- "symfony/config": "^3.4|^4.0|^5.0",
- "symfony/dependency-injection": "^3.4|^4.0|^5.0",
- "symfony/error-handler": "~3.4|~4.4",
- "symfony/expression-language": "^3.4|^4.0|^5.0",
- "symfony/http-foundation": "^3.4|^4.0|^5.0",
- "symfony/service-contracts": "^1.1|^2",
- "symfony/stopwatch": "^3.4|^4.0|^5.0"
- },
- "suggest": {
- "symfony/dependency-injection": "",
- "symfony/http-kernel": ""
+ "symfony/config": "^5.4|^6.0",
+ "symfony/dependency-injection": "^5.4|^6.0",
+ "symfony/error-handler": "^5.4|^6.0",
+ "symfony/expression-language": "^5.4|^6.0",
+ "symfony/http-foundation": "^5.4|^6.0",
+ "symfony/service-contracts": "^2.5|^3",
+ "symfony/stopwatch": "^5.4|^6.0"
},
"type": "library",
"autoload": {
@@ -4391,7 +4770,7 @@
"description": "Provides tools that allow your application components to communicate with each other by dispatching events and listening to them",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/event-dispatcher/tree/v4.4.44"
+ "source": "https://github.com/symfony/event-dispatcher/tree/v6.3.12"
},
"funding": [
{
@@ -4407,33 +4786,30 @@
"type": "tidelift"
}
],
- "time": "2022-07-20T09:59:04+00:00"
+ "time": "2024-01-23T14:35:58+00:00"
},
{
"name": "symfony/event-dispatcher-contracts",
- "version": "v1.1.13",
+ "version": "v3.5.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/event-dispatcher-contracts.git",
- "reference": "1d5cd762abaa6b2a4169d3e77610193a7157129e"
+ "reference": "8f93aec25d41b72493c6ddff14e916177c9efc50"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/1d5cd762abaa6b2a4169d3e77610193a7157129e",
- "reference": "1d5cd762abaa6b2a4169d3e77610193a7157129e",
+ "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/8f93aec25d41b72493c6ddff14e916177c9efc50",
+ "reference": "8f93aec25d41b72493c6ddff14e916177c9efc50",
"shasum": ""
},
"require": {
- "php": ">=7.1.3"
- },
- "suggest": {
- "psr/event-dispatcher": "",
- "symfony/event-dispatcher-implementation": ""
+ "php": ">=8.1",
+ "psr/event-dispatcher": "^1"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "1.1-dev"
+ "dev-main": "3.5-dev"
},
"thanks": {
"name": "symfony/contracts",
@@ -4470,7 +4846,7 @@
"standards"
],
"support": {
- "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v1.1.13"
+ "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v3.5.0"
},
"funding": [
{
@@ -4486,26 +4862,27 @@
"type": "tidelift"
}
],
- "time": "2022-01-02T09:41:36+00:00"
+ "time": "2024-04-18T09:32:20+00:00"
},
{
"name": "symfony/expression-language",
- "version": "v4.4.44",
+ "version": "v6.3.12",
"source": {
"type": "git",
"url": "https://github.com/symfony/expression-language.git",
- "reference": "13f0e1fd96066299eb39c87473446805fcf57c41"
+ "reference": "89f6dc6f1883c3dc3c31d418038966c9b1766617"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/expression-language/zipball/13f0e1fd96066299eb39c87473446805fcf57c41",
- "reference": "13f0e1fd96066299eb39c87473446805fcf57c41",
+ "url": "https://api.github.com/repos/symfony/expression-language/zipball/89f6dc6f1883c3dc3c31d418038966c9b1766617",
+ "reference": "89f6dc6f1883c3dc3c31d418038966c9b1766617",
"shasum": ""
},
"require": {
- "php": ">=7.1.3",
- "symfony/cache": "^3.4|^4.0|^5.0",
- "symfony/service-contracts": "^1.1|^2"
+ "php": ">=8.1",
+ "symfony/cache": "^5.4|^6.0",
+ "symfony/deprecation-contracts": "^2.5|^3",
+ "symfony/service-contracts": "^2.5|^3"
},
"type": "library",
"autoload": {
@@ -4533,7 +4910,7 @@
"description": "Provides an engine that can compile and evaluate expressions",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/expression-language/tree/v4.4.44"
+ "source": "https://github.com/symfony/expression-language/tree/v6.3.12"
},
"funding": [
{
@@ -4549,26 +4926,26 @@
"type": "tidelift"
}
],
- "time": "2022-07-20T09:59:04+00:00"
+ "time": "2024-01-23T14:35:58+00:00"
},
{
"name": "symfony/filesystem",
- "version": "v4.4.42",
+ "version": "v6.3.12",
"source": {
"type": "git",
"url": "https://github.com/symfony/filesystem.git",
- "reference": "815412ee8971209bd4c1eecd5f4f481eacd44bf5"
+ "reference": "9f4b59b7906ccb0692d7565f98012fd1679eedfc"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/filesystem/zipball/815412ee8971209bd4c1eecd5f4f481eacd44bf5",
- "reference": "815412ee8971209bd4c1eecd5f4f481eacd44bf5",
+ "url": "https://api.github.com/repos/symfony/filesystem/zipball/9f4b59b7906ccb0692d7565f98012fd1679eedfc",
+ "reference": "9f4b59b7906ccb0692d7565f98012fd1679eedfc",
"shasum": ""
},
"require": {
- "php": ">=7.1.3",
+ "php": ">=8.1",
"symfony/polyfill-ctype": "~1.8",
- "symfony/polyfill-php80": "^1.16"
+ "symfony/polyfill-mbstring": "~1.8"
},
"type": "library",
"autoload": {
@@ -4596,7 +4973,7 @@
"description": "Provides basic utilities for the filesystem",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/filesystem/tree/v4.4.42"
+ "source": "https://github.com/symfony/filesystem/tree/v6.3.12"
},
"funding": [
{
@@ -4612,25 +4989,27 @@
"type": "tidelift"
}
],
- "time": "2022-05-20T08:49:14+00:00"
+ "time": "2024-01-23T14:35:58+00:00"
},
{
"name": "symfony/finder",
- "version": "v4.4.44",
+ "version": "v6.3.5",
"source": {
"type": "git",
"url": "https://github.com/symfony/finder.git",
- "reference": "66bd787edb5e42ff59d3523f623895af05043e4f"
+ "reference": "a1b31d88c0e998168ca7792f222cbecee47428c4"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/finder/zipball/66bd787edb5e42ff59d3523f623895af05043e4f",
- "reference": "66bd787edb5e42ff59d3523f623895af05043e4f",
+ "url": "https://api.github.com/repos/symfony/finder/zipball/a1b31d88c0e998168ca7792f222cbecee47428c4",
+ "reference": "a1b31d88c0e998168ca7792f222cbecee47428c4",
"shasum": ""
},
"require": {
- "php": ">=7.1.3",
- "symfony/polyfill-php80": "^1.16"
+ "php": ">=8.1"
+ },
+ "require-dev": {
+ "symfony/filesystem": "^6.0"
},
"type": "library",
"autoload": {
@@ -4658,7 +5037,7 @@
"description": "Finds files and directories via an intuitive fluent interface",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/finder/tree/v4.4.44"
+ "source": "https://github.com/symfony/finder/tree/v6.3.5"
},
"funding": [
{
@@ -4674,32 +5053,32 @@
"type": "tidelift"
}
],
- "time": "2022-07-29T07:35:46+00:00"
+ "time": "2023-09-26T12:56:25+00:00"
},
{
"name": "symfony/flex",
- "version": "v1.19.3",
+ "version": "v2.4.5",
"source": {
"type": "git",
"url": "https://github.com/symfony/flex.git",
- "reference": "ab0453b16029e131c112df1a76e59eb2a47e1f67"
+ "reference": "b0a405f40614c9f584b489d54f91091817b0e26e"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/flex/zipball/ab0453b16029e131c112df1a76e59eb2a47e1f67",
- "reference": "ab0453b16029e131c112df1a76e59eb2a47e1f67",
+ "url": "https://api.github.com/repos/symfony/flex/zipball/b0a405f40614c9f584b489d54f91091817b0e26e",
+ "reference": "b0a405f40614c9f584b489d54f91091817b0e26e",
"shasum": ""
},
"require": {
- "composer-plugin-api": "^1.0|^2.0",
- "php": ">=7.1"
+ "composer-plugin-api": "^2.1",
+ "php": ">=8.0"
},
"require-dev": {
- "composer/composer": "^1.0.2|^2.0",
- "symfony/dotenv": "^4.4|^5.0|^6.0",
- "symfony/filesystem": "^4.4|^5.0|^6.0",
- "symfony/phpunit-bridge": "^4.4.12|^5.0|^6.0",
- "symfony/process": "^4.4|^5.0|^6.0"
+ "composer/composer": "^2.1",
+ "symfony/dotenv": "^5.4|^6.0",
+ "symfony/filesystem": "^5.4|^6.0",
+ "symfony/phpunit-bridge": "^5.4|^6.0",
+ "symfony/process": "^5.4|^6.0"
},
"type": "composer-plugin",
"extra": {
@@ -4723,7 +5102,7 @@
"description": "Composer plugin for Symfony",
"support": {
"issues": "https://github.com/symfony/flex/issues",
- "source": "https://github.com/symfony/flex/tree/v1.19.3"
+ "source": "https://github.com/symfony/flex/tree/v2.4.5"
},
"funding": [
{
@@ -4739,61 +5118,60 @@
"type": "tidelift"
}
],
- "time": "2022-08-07T09:39:08+00:00"
+ "time": "2024-03-02T08:16:47+00:00"
},
{
"name": "symfony/form",
- "version": "v4.4.44",
+ "version": "v6.3.12",
"source": {
"type": "git",
"url": "https://github.com/symfony/form.git",
- "reference": "db35f2e2c237c41baa8036d256f1b913a2430d04"
+ "reference": "bf78d0298e2bc6313063bdc1e6d85d5e05e1dc88"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/form/zipball/db35f2e2c237c41baa8036d256f1b913a2430d04",
- "reference": "db35f2e2c237c41baa8036d256f1b913a2430d04",
+ "url": "https://api.github.com/repos/symfony/form/zipball/bf78d0298e2bc6313063bdc1e6d85d5e05e1dc88",
+ "reference": "bf78d0298e2bc6313063bdc1e6d85d5e05e1dc88",
"shasum": ""
},
"require": {
- "php": ">=7.1.3",
- "symfony/event-dispatcher": "^4.3",
- "symfony/intl": "^4.4|^5.0",
- "symfony/options-resolver": "~4.3|^5.0",
+ "php": ">=8.1",
+ "symfony/deprecation-contracts": "^2.5|^3",
+ "symfony/event-dispatcher": "^5.4|^6.0",
+ "symfony/options-resolver": "^5.4|^6.0",
"symfony/polyfill-ctype": "~1.8",
+ "symfony/polyfill-intl-icu": "^1.21",
"symfony/polyfill-mbstring": "~1.0",
- "symfony/polyfill-php80": "^1.16",
- "symfony/property-access": "^3.4.40|^4.4.8|^5.0.8",
- "symfony/service-contracts": "^1.1|^2"
+ "symfony/property-access": "^5.4|^6.0",
+ "symfony/service-contracts": "^2.5|^3"
},
"conflict": {
- "phpunit/phpunit": "<4.8.35|<5.4.3,>=5.0",
- "symfony/console": "<4.3",
- "symfony/dependency-injection": "<3.4",
- "symfony/doctrine-bridge": "<3.4",
- "symfony/framework-bundle": "<3.4",
- "symfony/http-kernel": "<4.4",
- "symfony/intl": "<4.3",
- "symfony/translation": "<4.2",
- "symfony/twig-bridge": "<3.4.5|<4.0.5,>=4.0"
+ "symfony/console": "<5.4",
+ "symfony/dependency-injection": "<5.4",
+ "symfony/doctrine-bridge": "<5.4.21|>=6,<6.2.7",
+ "symfony/error-handler": "<5.4",
+ "symfony/framework-bundle": "<5.4",
+ "symfony/http-kernel": "<5.4",
+ "symfony/translation": "<5.4.35|>=6.0,<6.3.12|>=6.4,<6.4.3",
+ "symfony/translation-contracts": "<2.5",
+ "symfony/twig-bridge": "<6.3"
},
"require-dev": {
- "doctrine/collections": "~1.0",
- "symfony/config": "^3.4|^4.0|^5.0",
- "symfony/console": "^4.3|^5.0",
- "symfony/dependency-injection": "^3.4|^4.0|^5.0",
- "symfony/expression-language": "^3.4|^4.0|^5.0",
- "symfony/http-foundation": "^3.4|^4.0|^5.0",
- "symfony/http-kernel": "^4.4",
- "symfony/security-csrf": "^3.4|^4.0|^5.0",
- "symfony/translation": "^4.2|^5.0",
- "symfony/validator": "^4.4.17|^5.1.9",
- "symfony/var-dumper": "^4.3|^5.0"
- },
- "suggest": {
- "symfony/security-csrf": "For protecting forms against CSRF attacks.",
- "symfony/twig-bridge": "For templating with Twig.",
- "symfony/validator": "For form validation."
+ "doctrine/collections": "^1.0|^2.0",
+ "symfony/config": "^5.4|^6.0",
+ "symfony/console": "^5.4|^6.0",
+ "symfony/dependency-injection": "^5.4|^6.0",
+ "symfony/expression-language": "^5.4|^6.0",
+ "symfony/html-sanitizer": "^6.1",
+ "symfony/http-foundation": "^5.4|^6.0",
+ "symfony/http-kernel": "^5.4|^6.0",
+ "symfony/intl": "^5.4|^6.0",
+ "symfony/security-core": "^6.2",
+ "symfony/security-csrf": "^5.4|^6.0",
+ "symfony/translation": "^5.4.35|~6.3.12|^6.4.3",
+ "symfony/uid": "^5.4|^6.0",
+ "symfony/validator": "^5.4|^6.0",
+ "symfony/var-dumper": "^5.4|^6.0"
},
"type": "library",
"autoload": {
@@ -4821,7 +5199,7 @@
"description": "Allows to easily create, process and reuse HTML forms",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/form/tree/v4.4.44"
+ "source": "https://github.com/symfony/form/tree/v6.3.12"
},
"funding": [
{
@@ -4837,109 +5215,107 @@
"type": "tidelift"
}
],
- "time": "2022-07-20T09:59:04+00:00"
+ "time": "2024-01-23T16:21:43+00:00"
},
{
"name": "symfony/framework-bundle",
- "version": "v4.4.44",
+ "version": "v6.3.12",
"source": {
"type": "git",
"url": "https://github.com/symfony/framework-bundle.git",
- "reference": "3cbca8f6b93681102cab0fe0e3c23d16e4d0ded3"
+ "reference": "e144e3757296bed367ec3b764d8438891af75f78"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/framework-bundle/zipball/3cbca8f6b93681102cab0fe0e3c23d16e4d0ded3",
- "reference": "3cbca8f6b93681102cab0fe0e3c23d16e4d0ded3",
+ "url": "https://api.github.com/repos/symfony/framework-bundle/zipball/e144e3757296bed367ec3b764d8438891af75f78",
+ "reference": "e144e3757296bed367ec3b764d8438891af75f78",
"shasum": ""
},
"require": {
+ "composer-runtime-api": ">=2.1",
"ext-xml": "*",
- "php": ">=7.1.3",
- "symfony/cache": "^4.4|^5.0",
- "symfony/config": "^4.4.11|~5.0.11|^5.1.3",
- "symfony/dependency-injection": "^4.4.38|^5.0.1",
- "symfony/error-handler": "^4.4.1|^5.0.1",
- "symfony/filesystem": "^3.4|^4.0|^5.0",
- "symfony/finder": "^3.4|^4.0|^5.0",
- "symfony/http-foundation": "^4.4|^5.0",
- "symfony/http-kernel": "^4.4",
+ "php": ">=8.1",
+ "symfony/cache": "^5.4|^6.0",
+ "symfony/config": "^6.1",
+ "symfony/dependency-injection": "^6.3.1",
+ "symfony/deprecation-contracts": "^2.5|^3",
+ "symfony/error-handler": "^6.1",
+ "symfony/event-dispatcher": "^5.4|^6.0",
+ "symfony/filesystem": "^5.4|^6.0",
+ "symfony/finder": "^5.4|^6.0",
+ "symfony/http-foundation": "^6.3",
+ "symfony/http-kernel": "^6.3",
"symfony/polyfill-mbstring": "~1.0",
- "symfony/polyfill-php80": "^1.16",
- "symfony/routing": "^4.4.12|^5.1.4"
+ "symfony/routing": "^5.4|^6.0"
},
"conflict": {
+ "doctrine/annotations": "<1.13.1",
"doctrine/persistence": "<1.3",
- "phpdocumentor/reflection-docblock": "<3.0|>=3.2.0,<3.2.2",
- "phpdocumentor/type-resolver": "<0.3.0|1.3.*",
- "phpunit/phpunit": "<4.8.35|<5.4.3,>=5.0",
- "symfony/asset": "<3.4",
- "symfony/browser-kit": "<4.3",
- "symfony/console": "<4.4.21",
- "symfony/dom-crawler": "<4.3",
- "symfony/dotenv": "<4.3.6",
- "symfony/form": "<4.3.5",
- "symfony/http-client": "<4.4",
- "symfony/lock": "<4.4",
- "symfony/mailer": "<4.4",
- "symfony/messenger": "<4.4",
- "symfony/mime": "<4.4",
- "symfony/property-info": "<3.4",
- "symfony/security-bundle": "<4.4",
- "symfony/serializer": "<4.4",
- "symfony/stopwatch": "<3.4",
- "symfony/translation": "<4.4",
- "symfony/twig-bridge": "<4.1.1",
- "symfony/twig-bundle": "<4.4",
- "symfony/validator": "<4.4",
- "symfony/web-profiler-bundle": "<4.4",
- "symfony/workflow": "<4.3.6"
+ "phpdocumentor/reflection-docblock": "<3.2.2",
+ "phpdocumentor/type-resolver": "<1.4.0",
+ "symfony/asset": "<5.4",
+ "symfony/clock": "<6.3",
+ "symfony/console": "<5.4|>=7.0",
+ "symfony/dom-crawler": "<6.3",
+ "symfony/dotenv": "<5.4",
+ "symfony/form": "<5.4",
+ "symfony/http-client": "<6.3",
+ "symfony/lock": "<5.4",
+ "symfony/mailer": "<5.4",
+ "symfony/messenger": "<6.3",
+ "symfony/mime": "<6.2",
+ "symfony/property-access": "<5.4",
+ "symfony/property-info": "<5.4",
+ "symfony/security-core": "<5.4",
+ "symfony/security-csrf": "<5.4",
+ "symfony/serializer": "<6.3",
+ "symfony/stopwatch": "<5.4",
+ "symfony/translation": "<6.2.8",
+ "symfony/twig-bridge": "<5.4",
+ "symfony/twig-bundle": "<5.4",
+ "symfony/validator": "<6.3",
+ "symfony/web-profiler-bundle": "<5.4",
+ "symfony/workflow": "<5.4"
},
"require-dev": {
- "doctrine/annotations": "^1.10.4",
- "doctrine/cache": "^1.0|^2.0",
+ "doctrine/annotations": "^1.13.1|^2",
"doctrine/persistence": "^1.3|^2|^3",
- "paragonie/sodium_compat": "^1.8",
"phpdocumentor/reflection-docblock": "^3.0|^4.0|^5.0",
- "symfony/asset": "^3.4|^4.0|^5.0",
- "symfony/browser-kit": "^4.3|^5.0",
- "symfony/console": "^4.4.42|^5.4.9",
- "symfony/css-selector": "^3.4|^4.0|^5.0",
- "symfony/dom-crawler": "^4.4.30|^5.3.7",
- "symfony/dotenv": "^4.3.6|^5.0",
- "symfony/expression-language": "^3.4|^4.0|^5.0",
- "symfony/form": "^4.3.5|^5.0",
- "symfony/http-client": "^4.4|^5.0",
- "symfony/lock": "^4.4|^5.0",
- "symfony/mailer": "^4.4|^5.0",
- "symfony/messenger": "^4.4|^5.0",
- "symfony/mime": "^4.4|^5.0",
+ "symfony/asset": "^5.4|^6.0",
+ "symfony/asset-mapper": "^6.3",
+ "symfony/browser-kit": "^5.4|^6.0",
+ "symfony/clock": "^6.2",
+ "symfony/console": "^5.4.9|^6.0.9",
+ "symfony/css-selector": "^5.4|^6.0",
+ "symfony/dom-crawler": "^6.3",
+ "symfony/dotenv": "^5.4|^6.0",
+ "symfony/expression-language": "^5.4|^6.0",
+ "symfony/form": "^5.4|^6.0",
+ "symfony/html-sanitizer": "^6.1",
+ "symfony/http-client": "^6.3",
+ "symfony/lock": "^5.4|^6.0",
+ "symfony/mailer": "^5.4|^6.0",
+ "symfony/messenger": "^6.3",
+ "symfony/mime": "^6.2",
+ "symfony/notifier": "^5.4|^6.0",
"symfony/polyfill-intl-icu": "~1.0",
- "symfony/process": "^3.4|^4.0|^5.0",
- "symfony/property-info": "^3.4|^4.0|^5.0",
- "symfony/security-core": "^3.4|^4.4|^5.2",
- "symfony/security-csrf": "^3.4|^4.0|^5.0",
- "symfony/security-http": "^3.4|^4.0|^5.0",
- "symfony/serializer": "^4.4|^5.0",
- "symfony/stopwatch": "^3.4|^4.0|^5.0",
- "symfony/templating": "^3.4|^4.0|^5.0",
- "symfony/translation": "^4.4|^5.0",
- "symfony/twig-bundle": "^4.4|^5.0",
- "symfony/validator": "^4.4|^5.0",
- "symfony/web-link": "^4.4|^5.0",
- "symfony/workflow": "^4.3.6|^5.0",
- "symfony/yaml": "^3.4|^4.0|^5.0",
- "twig/twig": "^1.43|^2.13|^3.0.4"
- },
- "suggest": {
- "ext-apcu": "For best performance of the system caches",
- "symfony/console": "For using the console commands",
- "symfony/form": "For using forms",
- "symfony/property-info": "For using the property_info service",
- "symfony/serializer": "For using the serializer service",
- "symfony/validator": "For using validation",
- "symfony/web-link": "For using web links, features such as preloading, prefetching or prerendering",
- "symfony/yaml": "For using the debug:config and lint:yaml commands"
+ "symfony/process": "^5.4|^6.0",
+ "symfony/property-info": "^5.4|^6.0",
+ "symfony/rate-limiter": "^5.4|^6.0",
+ "symfony/scheduler": "^6.3",
+ "symfony/security-bundle": "^5.4|^6.0",
+ "symfony/semaphore": "^5.4|^6.0",
+ "symfony/serializer": "^6.3",
+ "symfony/stopwatch": "^5.4|^6.0",
+ "symfony/string": "^5.4|^6.0",
+ "symfony/translation": "^6.2.8",
+ "symfony/twig-bundle": "^5.4|^6.0",
+ "symfony/uid": "^5.4|^6.0",
+ "symfony/validator": "^6.3",
+ "symfony/web-link": "^5.4|^6.0",
+ "symfony/workflow": "^5.4|^6.0",
+ "symfony/yaml": "^5.4|^6.0",
+ "twig/twig": "^2.10|^3.0"
},
"type": "symfony-bundle",
"autoload": {
@@ -4967,7 +5343,76 @@
"description": "Provides a tight integration between Symfony components and the Symfony full-stack framework",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/framework-bundle/tree/v4.4.44"
+ "source": "https://github.com/symfony/framework-bundle/tree/v6.3.12"
+ },
+ "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-01-23T16:21:43+00:00"
+ },
+ {
+ "name": "symfony/html-sanitizer",
+ "version": "v6.3.12",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/html-sanitizer.git",
+ "reference": "77d508d1d91f9894a9d7b2384bf832a70197752a"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/html-sanitizer/zipball/77d508d1d91f9894a9d7b2384bf832a70197752a",
+ "reference": "77d508d1d91f9894a9d7b2384bf832a70197752a",
+ "shasum": ""
+ },
+ "require": {
+ "ext-dom": "*",
+ "league/uri": "^6.5|^7.0",
+ "masterminds/html5": "^2.7.2",
+ "php": ">=8.1"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\HtmlSanitizer\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Titouan Galopin",
+ "email": "galopintitouan@gmail.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Provides an object-oriented API to sanitize untrusted HTML input for safe insertion into a document's DOM.",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "Purifier",
+ "html",
+ "sanitizer"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/html-sanitizer/tree/v6.3.12"
},
"funding": [
{
@@ -4983,44 +5428,52 @@
"type": "tidelift"
}
],
- "time": "2022-07-20T09:59:04+00:00"
+ "time": "2024-01-23T14:35:58+00:00"
},
{
"name": "symfony/http-client",
- "version": "v4.4.44",
+ "version": "v6.3.12",
"source": {
"type": "git",
"url": "https://github.com/symfony/http-client.git",
- "reference": "900632460c2ed5fa656b13cb911ff8f702918618"
+ "reference": "510c51058dbef5db7d49c704954f32d6527d17f8"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/http-client/zipball/900632460c2ed5fa656b13cb911ff8f702918618",
- "reference": "900632460c2ed5fa656b13cb911ff8f702918618",
+ "url": "https://api.github.com/repos/symfony/http-client/zipball/510c51058dbef5db7d49c704954f32d6527d17f8",
+ "reference": "510c51058dbef5db7d49c704954f32d6527d17f8",
"shasum": ""
},
"require": {
- "php": ">=7.1.3",
+ "php": ">=8.1",
"psr/log": "^1|^2|^3",
- "symfony/http-client-contracts": "^1.1.10|^2",
- "symfony/polyfill-php73": "^1.11",
- "symfony/polyfill-php80": "^1.16",
- "symfony/service-contracts": "^1.0|^2"
+ "symfony/deprecation-contracts": "^2.5|^3",
+ "symfony/http-client-contracts": "^3",
+ "symfony/service-contracts": "^2.5|^3"
+ },
+ "conflict": {
+ "php-http/discovery": "<1.15",
+ "symfony/http-foundation": "<6.3"
},
"provide": {
"php-http/async-client-implementation": "*",
"php-http/client-implementation": "*",
"psr/http-client-implementation": "1.0",
- "symfony/http-client-implementation": "1.1|2.0"
+ "symfony/http-client-implementation": "3.0"
},
"require-dev": {
+ "amphp/amp": "^2.5",
+ "amphp/http-client": "^4.2.1",
+ "amphp/http-tunnel": "^1.0",
+ "amphp/socket": "^1.1",
"guzzlehttp/promises": "^1.4",
"nyholm/psr7": "^1.0",
"php-http/httplug": "^1.0|^2.0",
"psr/http-client": "^1.0",
- "symfony/dependency-injection": "^4.3|^5.0",
- "symfony/http-kernel": "^4.4.13",
- "symfony/process": "^4.2|^5.0"
+ "symfony/dependency-injection": "^5.4|^6.0",
+ "symfony/http-kernel": "^5.4|^6.0",
+ "symfony/process": "^5.4|^6.0",
+ "symfony/stopwatch": "^5.4|^6.0"
},
"type": "library",
"autoload": {
@@ -5047,8 +5500,11 @@
],
"description": "Provides powerful methods to fetch HTTP resources synchronously or asynchronously",
"homepage": "https://symfony.com",
+ "keywords": [
+ "http"
+ ],
"support": {
- "source": "https://github.com/symfony/http-client/tree/v4.4.44"
+ "source": "https://github.com/symfony/http-client/tree/v6.3.12"
},
"funding": [
{
@@ -5064,32 +5520,29 @@
"type": "tidelift"
}
],
- "time": "2022-07-27T17:16:03+00:00"
+ "time": "2024-01-29T14:46:07+00:00"
},
{
"name": "symfony/http-client-contracts",
- "version": "v2.5.2",
+ "version": "v3.5.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/http-client-contracts.git",
- "reference": "ba6a9f0e8f3edd190520ee3b9a958596b6ca2e70"
+ "reference": "20414d96f391677bf80078aa55baece78b82647d"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/http-client-contracts/zipball/ba6a9f0e8f3edd190520ee3b9a958596b6ca2e70",
- "reference": "ba6a9f0e8f3edd190520ee3b9a958596b6ca2e70",
+ "url": "https://api.github.com/repos/symfony/http-client-contracts/zipball/20414d96f391677bf80078aa55baece78b82647d",
+ "reference": "20414d96f391677bf80078aa55baece78b82647d",
"shasum": ""
},
"require": {
- "php": ">=7.2.5"
- },
- "suggest": {
- "symfony/http-client-implementation": ""
+ "php": ">=8.1"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "2.5-dev"
+ "dev-main": "3.5-dev"
},
"thanks": {
"name": "symfony/contracts",
@@ -5099,7 +5552,10 @@
"autoload": {
"psr-4": {
"Symfony\\Contracts\\HttpClient\\": ""
- }
+ },
+ "exclude-from-classmap": [
+ "/Test/"
+ ]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
@@ -5126,7 +5582,7 @@
"standards"
],
"support": {
- "source": "https://github.com/symfony/http-client-contracts/tree/v2.5.2"
+ "source": "https://github.com/symfony/http-client-contracts/tree/v3.5.0"
},
"funding": [
{
@@ -5142,31 +5598,40 @@
"type": "tidelift"
}
],
- "time": "2022-04-12T15:48:08+00:00"
+ "time": "2024-04-18T09:32:20+00:00"
},
{
"name": "symfony/http-foundation",
- "version": "v4.4.44",
+ "version": "v6.3.12",
"source": {
"type": "git",
"url": "https://github.com/symfony/http-foundation.git",
- "reference": "9bc83c2f78949fc64503134a3139a7b055890d06"
+ "reference": "3b72add708d48e8c08f7152df2d0b8d5303408fa"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/http-foundation/zipball/9bc83c2f78949fc64503134a3139a7b055890d06",
- "reference": "9bc83c2f78949fc64503134a3139a7b055890d06",
+ "url": "https://api.github.com/repos/symfony/http-foundation/zipball/3b72add708d48e8c08f7152df2d0b8d5303408fa",
+ "reference": "3b72add708d48e8c08f7152df2d0b8d5303408fa",
"shasum": ""
},
"require": {
- "php": ">=7.1.3",
- "symfony/mime": "^4.3|^5.0",
+ "php": ">=8.1",
+ "symfony/deprecation-contracts": "^2.5|^3",
"symfony/polyfill-mbstring": "~1.1",
- "symfony/polyfill-php80": "^1.16"
+ "symfony/polyfill-php83": "^1.27"
+ },
+ "conflict": {
+ "symfony/cache": "<6.3"
},
"require-dev": {
- "predis/predis": "~1.0",
- "symfony/expression-language": "^3.4|^4.0|^5.0"
+ "doctrine/dbal": "^2.13.1|^3|^4",
+ "predis/predis": "^1.1|^2.0",
+ "symfony/cache": "^6.3",
+ "symfony/dependency-injection": "^5.4|^6.0",
+ "symfony/expression-language": "^5.4|^6.0",
+ "symfony/http-kernel": "^5.4.12|^6.0.12|^6.1.4",
+ "symfony/mime": "^5.4|^6.0",
+ "symfony/rate-limiter": "^5.2|^6.0"
},
"type": "library",
"autoload": {
@@ -5194,7 +5659,7 @@
"description": "Defines an object-oriented layer for the HTTP specification",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/http-foundation/tree/v4.4.44"
+ "source": "https://github.com/symfony/http-foundation/tree/v6.3.12"
},
"funding": [
{
@@ -5210,67 +5675,76 @@
"type": "tidelift"
}
],
- "time": "2022-07-20T09:59:04+00:00"
+ "time": "2024-01-23T14:35:58+00:00"
},
{
"name": "symfony/http-kernel",
- "version": "v4.4.44",
+ "version": "v6.3.12",
"source": {
"type": "git",
"url": "https://github.com/symfony/http-kernel.git",
- "reference": "9e444442334fae9637ef3209bc2abddfef49e714"
+ "reference": "f7d160e46a6e0d3183e7a3846d4e3b4d04d5898b"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/http-kernel/zipball/9e444442334fae9637ef3209bc2abddfef49e714",
- "reference": "9e444442334fae9637ef3209bc2abddfef49e714",
+ "url": "https://api.github.com/repos/symfony/http-kernel/zipball/f7d160e46a6e0d3183e7a3846d4e3b4d04d5898b",
+ "reference": "f7d160e46a6e0d3183e7a3846d4e3b4d04d5898b",
"shasum": ""
},
"require": {
- "php": ">=7.1.3",
- "psr/log": "^1|^2",
- "symfony/error-handler": "^4.4",
- "symfony/event-dispatcher": "^4.4",
- "symfony/http-client-contracts": "^1.1|^2",
- "symfony/http-foundation": "^4.4.30|^5.3.7",
- "symfony/polyfill-ctype": "^1.8",
- "symfony/polyfill-php73": "^1.9",
- "symfony/polyfill-php80": "^1.16"
+ "php": ">=8.1",
+ "psr/log": "^1|^2|^3",
+ "symfony/deprecation-contracts": "^2.5|^3",
+ "symfony/error-handler": "^6.3",
+ "symfony/event-dispatcher": "^5.4|^6.0",
+ "symfony/http-foundation": "^6.3.4",
+ "symfony/polyfill-ctype": "^1.8"
},
"conflict": {
- "symfony/browser-kit": "<4.3",
- "symfony/config": "<3.4",
- "symfony/console": ">=5",
- "symfony/dependency-injection": "<4.3",
- "symfony/translation": "<4.2",
- "twig/twig": "<1.43|<2.13,>=2"
+ "symfony/browser-kit": "<5.4",
+ "symfony/cache": "<5.4",
+ "symfony/config": "<6.1",
+ "symfony/console": "<5.4",
+ "symfony/dependency-injection": "<6.3.4",
+ "symfony/doctrine-bridge": "<5.4",
+ "symfony/form": "<5.4",
+ "symfony/http-client": "<5.4",
+ "symfony/http-client-contracts": "<2.5",
+ "symfony/mailer": "<5.4",
+ "symfony/messenger": "<5.4",
+ "symfony/translation": "<5.4",
+ "symfony/translation-contracts": "<2.5",
+ "symfony/twig-bridge": "<5.4",
+ "symfony/validator": "<5.4",
+ "symfony/var-dumper": "<6.3",
+ "twig/twig": "<2.13"
},
"provide": {
- "psr/log-implementation": "1.0|2.0"
+ "psr/log-implementation": "1.0|2.0|3.0"
},
"require-dev": {
"psr/cache": "^1.0|^2.0|^3.0",
- "symfony/browser-kit": "^4.3|^5.0",
- "symfony/config": "^3.4|^4.0|^5.0",
- "symfony/console": "^3.4|^4.0",
- "symfony/css-selector": "^3.4|^4.0|^5.0",
- "symfony/dependency-injection": "^4.3|^5.0",
- "symfony/dom-crawler": "^3.4|^4.0|^5.0",
- "symfony/expression-language": "^3.4|^4.0|^5.0",
- "symfony/finder": "^3.4|^4.0|^5.0",
- "symfony/process": "^3.4|^4.0|^5.0",
- "symfony/routing": "^3.4|^4.0|^5.0",
- "symfony/stopwatch": "^3.4|^4.0|^5.0",
- "symfony/templating": "^3.4|^4.0|^5.0",
- "symfony/translation": "^4.2|^5.0",
- "symfony/translation-contracts": "^1.1|^2",
- "twig/twig": "^1.43|^2.13|^3.0.4"
- },
- "suggest": {
- "symfony/browser-kit": "",
- "symfony/config": "",
- "symfony/console": "",
- "symfony/dependency-injection": ""
+ "symfony/browser-kit": "^5.4|^6.0",
+ "symfony/clock": "^6.2",
+ "symfony/config": "^6.1",
+ "symfony/console": "^5.4|^6.0",
+ "symfony/css-selector": "^5.4|^6.0",
+ "symfony/dependency-injection": "^6.3.4",
+ "symfony/dom-crawler": "^5.4|^6.0",
+ "symfony/expression-language": "^5.4|^6.0",
+ "symfony/finder": "^5.4|^6.0",
+ "symfony/http-client-contracts": "^2.5|^3",
+ "symfony/process": "^5.4|^6.0",
+ "symfony/property-access": "^5.4.5|^6.0.5",
+ "symfony/routing": "^5.4|^6.0",
+ "symfony/serializer": "^6.3",
+ "symfony/stopwatch": "^5.4|^6.0",
+ "symfony/translation": "^5.4|^6.0",
+ "symfony/translation-contracts": "^2.5|^3",
+ "symfony/uid": "^5.4|^6.0",
+ "symfony/validator": "^6.3",
+ "symfony/var-exporter": "^6.2",
+ "twig/twig": "^2.13|^3.0.4"
},
"type": "library",
"autoload": {
@@ -5298,78 +5772,7 @@
"description": "Provides a structured process for converting a Request into a Response",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/http-kernel/tree/v4.4.44"
- },
- "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": "2022-07-29T12:23:38+00:00"
- },
- {
- "name": "symfony/inflector",
- "version": "v4.4.44",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/inflector.git",
- "reference": "66185be61805b1e44a5c4000929e700228d426cc"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/inflector/zipball/66185be61805b1e44a5c4000929e700228d426cc",
- "reference": "66185be61805b1e44a5c4000929e700228d426cc",
- "shasum": ""
- },
- "require": {
- "php": ">=7.1.3",
- "symfony/polyfill-ctype": "~1.8",
- "symfony/polyfill-php80": "^1.16"
- },
- "type": "library",
- "autoload": {
- "psr-4": {
- "Symfony\\Component\\Inflector\\": ""
- },
- "exclude-from-classmap": [
- "/Tests/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Bernhard Schussek",
- "email": "bschussek@gmail.com"
- },
- {
- "name": "Symfony Community",
- "homepage": "https://symfony.com/contributors"
- }
- ],
- "description": "Converts words between their singular and plural forms (English only)",
- "homepage": "https://symfony.com",
- "keywords": [
- "inflection",
- "pluralize",
- "singularize",
- "string",
- "symfony",
- "words"
- ],
- "support": {
- "source": "https://github.com/symfony/inflector/tree/v4.4.44"
+ "source": "https://github.com/symfony/http-kernel/tree/v6.3.12"
},
"funding": [
{
@@ -5385,42 +5788,35 @@
"type": "tidelift"
}
],
- "abandoned": "EnglishInflector from the String component",
- "time": "2022-07-20T09:59:04+00:00"
+ "time": "2024-01-30T20:05:26+00:00"
},
{
"name": "symfony/intl",
- "version": "v4.4.44",
+ "version": "v6.3.12",
"source": {
"type": "git",
"url": "https://github.com/symfony/intl.git",
- "reference": "834ba2af906d8e3531afcad9c13f4c43c5935592"
+ "reference": "db1c2e9fc5c28622587a1e975a6346e93d0417c2"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/intl/zipball/834ba2af906d8e3531afcad9c13f4c43c5935592",
- "reference": "834ba2af906d8e3531afcad9c13f4c43c5935592",
+ "url": "https://api.github.com/repos/symfony/intl/zipball/db1c2e9fc5c28622587a1e975a6346e93d0417c2",
+ "reference": "db1c2e9fc5c28622587a1e975a6346e93d0417c2",
"shasum": ""
},
"require": {
- "php": ">=7.1.3",
- "symfony/polyfill-intl-icu": "~1.0",
- "symfony/polyfill-php80": "^1.16"
+ "php": ">=8.1"
},
"require-dev": {
- "symfony/filesystem": "^3.4|^4.0|^5.0"
- },
- "suggest": {
- "ext-intl": "to use the component with locales other than \"en\""
+ "symfony/filesystem": "^5.4|^6.0",
+ "symfony/finder": "^5.4|^6.0",
+ "symfony/var-exporter": "^5.4|^6.0"
},
"type": "library",
"autoload": {
"psr-4": {
"Symfony\\Component\\Intl\\": ""
},
- "classmap": [
- "Resources/stubs"
- ],
"exclude-from-classmap": [
"/Tests/"
]
@@ -5447,7 +5843,7 @@
"homepage": "https://symfony.com/contributors"
}
],
- "description": "Provides a PHP replacement layer for the C intl extension that includes additional data from the ICU library",
+ "description": "Provides access to the localization data of the ICU library",
"homepage": "https://symfony.com",
"keywords": [
"i18n",
@@ -5458,7 +5854,7 @@
"localization"
],
"support": {
- "source": "https://github.com/symfony/intl/tree/v4.4.44"
+ "source": "https://github.com/symfony/intl/tree/v6.3.12"
},
"funding": [
{
@@ -5474,44 +5870,43 @@
"type": "tidelift"
}
],
- "time": "2022-07-20T09:59:04+00:00"
+ "time": "2024-01-23T14:42:18+00:00"
},
{
"name": "symfony/mailer",
- "version": "v4.4.44",
+ "version": "v6.3.12",
"source": {
"type": "git",
"url": "https://github.com/symfony/mailer.git",
- "reference": "5f514a86368c53cf0d6c67aa40f7771fdf1ceb0c"
+ "reference": "3cbb745658179fb1a68ba87a4a4f16ee99dcb821"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/mailer/zipball/5f514a86368c53cf0d6c67aa40f7771fdf1ceb0c",
- "reference": "5f514a86368c53cf0d6c67aa40f7771fdf1ceb0c",
+ "url": "https://api.github.com/repos/symfony/mailer/zipball/3cbb745658179fb1a68ba87a4a4f16ee99dcb821",
+ "reference": "3cbb745658179fb1a68ba87a4a4f16ee99dcb821",
"shasum": ""
},
"require": {
- "egulias/email-validator": "^2.1.10|^3",
- "php": ">=7.1.3",
+ "egulias/email-validator": "^2.1.10|^3|^4",
+ "php": ">=8.1",
+ "psr/event-dispatcher": "^1",
"psr/log": "^1|^2|^3",
- "symfony/event-dispatcher": "^4.3",
- "symfony/mime": "^4.4.21|^5.2.6",
- "symfony/polyfill-php80": "^1.16",
- "symfony/service-contracts": "^1.1|^2"
+ "symfony/event-dispatcher": "^5.4|^6.0",
+ "symfony/mime": "^6.2",
+ "symfony/service-contracts": "^2.5|^3"
},
"conflict": {
- "symfony/http-kernel": "<4.4",
- "symfony/sendgrid-mailer": "<4.4"
+ "symfony/http-client-contracts": "<2.5",
+ "symfony/http-kernel": "<5.4",
+ "symfony/messenger": "<6.2",
+ "symfony/mime": "<6.2",
+ "symfony/twig-bridge": "<6.2.1"
},
"require-dev": {
- "symfony/amazon-mailer": "^4.4|^5.0",
- "symfony/google-mailer": "^4.4|^5.0",
- "symfony/http-client-contracts": "^1.1|^2",
- "symfony/mailchimp-mailer": "^4.4|^5.0",
- "symfony/mailgun-mailer": "^4.4|^5.0",
- "symfony/messenger": "^4.4|^5.0",
- "symfony/postmark-mailer": "^4.4|^5.0",
- "symfony/sendgrid-mailer": "^4.4|^5.0"
+ "symfony/console": "^5.4|^6.0",
+ "symfony/http-client": "^5.4|^6.0",
+ "symfony/messenger": "^6.2",
+ "symfony/twig-bridge": "^6.2"
},
"type": "library",
"autoload": {
@@ -5539,7 +5934,7 @@
"description": "Helps sending emails",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/mailer/tree/v4.4.44"
+ "source": "https://github.com/symfony/mailer/tree/v6.3.12"
},
"funding": [
{
@@ -5555,35 +5950,43 @@
"type": "tidelift"
}
],
- "time": "2022-07-20T09:59:04+00:00"
+ "time": "2024-01-29T14:46:07+00:00"
},
{
"name": "symfony/mime",
- "version": "v4.4.44",
+ "version": "v6.3.12",
"source": {
"type": "git",
"url": "https://github.com/symfony/mime.git",
- "reference": "72748976b0cc82b44fcae1d66c9df7b598b543c4"
+ "reference": "4b24dcaf8dfcd23fb7abb5b9df11e8c8093db68a"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/mime/zipball/72748976b0cc82b44fcae1d66c9df7b598b543c4",
- "reference": "72748976b0cc82b44fcae1d66c9df7b598b543c4",
+ "url": "https://api.github.com/repos/symfony/mime/zipball/4b24dcaf8dfcd23fb7abb5b9df11e8c8093db68a",
+ "reference": "4b24dcaf8dfcd23fb7abb5b9df11e8c8093db68a",
"shasum": ""
},
"require": {
- "php": ">=7.1.3",
+ "php": ">=8.1",
+ "symfony/deprecation-contracts": "^2.5|^3",
"symfony/polyfill-intl-idn": "^1.10",
- "symfony/polyfill-mbstring": "^1.0",
- "symfony/polyfill-php80": "^1.16"
+ "symfony/polyfill-mbstring": "^1.0"
},
"conflict": {
"egulias/email-validator": "~3.0.0",
- "symfony/mailer": "<4.4"
+ "phpdocumentor/reflection-docblock": "<3.2.2",
+ "phpdocumentor/type-resolver": "<1.4.0",
+ "symfony/mailer": "<5.4",
+ "symfony/serializer": "<6.3.12|>=6.4,<6.4.3"
},
"require-dev": {
- "egulias/email-validator": "^2.1.10|^3.1",
- "symfony/dependency-injection": "^3.4|^4.1|^5.0"
+ "egulias/email-validator": "^2.1.10|^3.1|^4",
+ "league/html-to-markdown": "^5.0",
+ "phpdocumentor/reflection-docblock": "^3.0|^4.0|^5.0",
+ "symfony/dependency-injection": "^5.4|^6.0",
+ "symfony/property-access": "^5.4|^6.0",
+ "symfony/property-info": "^5.4|^6.0",
+ "symfony/serializer": "~6.3.12|^6.4.3"
},
"type": "library",
"autoload": {
@@ -5615,7 +6018,7 @@
"mime-type"
],
"support": {
- "source": "https://github.com/symfony/mime/tree/v4.4.44"
+ "source": "https://github.com/symfony/mime/tree/v6.3.12"
},
"funding": [
{
@@ -5631,43 +6034,41 @@
"type": "tidelift"
}
],
- "time": "2022-07-20T09:59:04+00:00"
+ "time": "2024-01-30T08:17:33+00:00"
},
{
"name": "symfony/monolog-bridge",
- "version": "v4.4.43",
+ "version": "v6.3.12",
"source": {
"type": "git",
"url": "https://github.com/symfony/monolog-bridge.git",
- "reference": "ad09c9980b912e757c4ecd8363cebf3039d1d471"
+ "reference": "b655801218307a85cc0ebb853ac289446db3084a"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/monolog-bridge/zipball/ad09c9980b912e757c4ecd8363cebf3039d1d471",
- "reference": "ad09c9980b912e757c4ecd8363cebf3039d1d471",
+ "url": "https://api.github.com/repos/symfony/monolog-bridge/zipball/b655801218307a85cc0ebb853ac289446db3084a",
+ "reference": "b655801218307a85cc0ebb853ac289446db3084a",
"shasum": ""
},
"require": {
- "monolog/monolog": "^1.25.1",
- "php": ">=7.1.3",
- "symfony/http-kernel": "^4.3",
- "symfony/polyfill-php80": "^1.16",
- "symfony/service-contracts": "^1.1|^2"
+ "monolog/monolog": "^1.25.1|^2|^3",
+ "php": ">=8.1",
+ "symfony/http-kernel": "^5.4|^6.0",
+ "symfony/service-contracts": "^2.5|^3"
},
"conflict": {
- "symfony/console": "<3.4",
- "symfony/http-foundation": "<3.4"
+ "symfony/console": "<5.4",
+ "symfony/http-foundation": "<5.4",
+ "symfony/security-core": "<6.0"
},
"require-dev": {
- "symfony/console": "^3.4|^4.0|^5.0",
- "symfony/http-client": "^4.4|^5.0",
- "symfony/security-core": "^3.4|^4.0|^5.0",
- "symfony/var-dumper": "^3.4|^4.0|^5.0"
- },
- "suggest": {
- "symfony/console": "For the possibility to show log messages in console commands depending on verbosity settings.",
- "symfony/http-kernel": "For using the debugging handlers together with the response life cycle of the HTTP kernel.",
- "symfony/var-dumper": "For using the debugging handlers like the console handler or the log server handler."
+ "symfony/console": "^5.4|^6.0",
+ "symfony/http-client": "^5.4|^6.0",
+ "symfony/mailer": "^5.4|^6.0",
+ "symfony/messenger": "^5.4|^6.0",
+ "symfony/mime": "^5.4|^6.0",
+ "symfony/security-core": "^6.0",
+ "symfony/var-dumper": "^5.4|^6.0"
},
"type": "symfony-bridge",
"autoload": {
@@ -5695,7 +6096,7 @@
"description": "Provides integration for Monolog with various Symfony components",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/monolog-bridge/tree/v4.4.43"
+ "source": "https://github.com/symfony/monolog-bridge/tree/v6.3.12"
},
"funding": [
{
@@ -5711,34 +6112,34 @@
"type": "tidelift"
}
],
- "time": "2022-06-16T12:12:11+00:00"
+ "time": "2024-01-29T14:47:00+00:00"
},
{
"name": "symfony/monolog-bundle",
- "version": "v3.8.0",
+ "version": "v3.10.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/monolog-bundle.git",
- "reference": "a41bbcdc1105603b6d73a7d9a43a3788f8e0fb7d"
+ "reference": "414f951743f4aa1fd0f5bf6a0e9c16af3fe7f181"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/monolog-bundle/zipball/a41bbcdc1105603b6d73a7d9a43a3788f8e0fb7d",
- "reference": "a41bbcdc1105603b6d73a7d9a43a3788f8e0fb7d",
+ "url": "https://api.github.com/repos/symfony/monolog-bundle/zipball/414f951743f4aa1fd0f5bf6a0e9c16af3fe7f181",
+ "reference": "414f951743f4aa1fd0f5bf6a0e9c16af3fe7f181",
"shasum": ""
},
"require": {
- "monolog/monolog": "^1.22 || ^2.0 || ^3.0",
- "php": ">=7.1.3",
- "symfony/config": "~4.4 || ^5.0 || ^6.0",
- "symfony/dependency-injection": "^4.4 || ^5.0 || ^6.0",
- "symfony/http-kernel": "~4.4 || ^5.0 || ^6.0",
- "symfony/monolog-bridge": "~4.4 || ^5.0 || ^6.0"
+ "monolog/monolog": "^1.25.1 || ^2.0 || ^3.0",
+ "php": ">=7.2.5",
+ "symfony/config": "^5.4 || ^6.0 || ^7.0",
+ "symfony/dependency-injection": "^5.4 || ^6.0 || ^7.0",
+ "symfony/http-kernel": "^5.4 || ^6.0 || ^7.0",
+ "symfony/monolog-bridge": "^5.4 || ^6.0 || ^7.0"
},
"require-dev": {
- "symfony/console": "~4.4 || ^5.0 || ^6.0",
- "symfony/phpunit-bridge": "^5.2 || ^6.0",
- "symfony/yaml": "~4.4 || ^5.0 || ^6.0"
+ "symfony/console": "^5.4 || ^6.0 || ^7.0",
+ "symfony/phpunit-bridge": "^6.3 || ^7.0",
+ "symfony/yaml": "^5.4 || ^6.0 || ^7.0"
},
"type": "symfony-bundle",
"extra": {
@@ -5776,7 +6177,7 @@
],
"support": {
"issues": "https://github.com/symfony/monolog-bundle/issues",
- "source": "https://github.com/symfony/monolog-bundle/tree/v3.8.0"
+ "source": "https://github.com/symfony/monolog-bundle/tree/v3.10.0"
},
"funding": [
{
@@ -5792,30 +6193,103 @@
"type": "tidelift"
}
],
- "time": "2022-05-10T14:24:36+00:00"
+ "time": "2023-11-06T17:08:13+00:00"
},
{
"name": "symfony/options-resolver",
- "version": "v4.4.44",
+ "version": "v6.3.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/options-resolver.git",
+ "reference": "a10f19f5198d589d5c33333cffe98dc9820332dd"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/options-resolver/zipball/a10f19f5198d589d5c33333cffe98dc9820332dd",
+ "reference": "a10f19f5198d589d5c33333cffe98dc9820332dd",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.1",
+ "symfony/deprecation-contracts": "^2.5|^3"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\OptionsResolver\\": ""
+ },
+ "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": "Provides an improved replacement for the array_replace PHP function",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "config",
+ "configuration",
+ "options"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/options-resolver/tree/v6.3.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": "2023-05-12T14:21:09+00:00"
+ },
+ {
+ "name": "symfony/password-hasher",
+ "version": "v6.3.12",
"source": {
"type": "git",
- "url": "https://github.com/symfony/options-resolver.git",
- "reference": "583f56160f716dd435f1cd721fd14b548f4bb510"
+ "url": "https://github.com/symfony/password-hasher.git",
+ "reference": "513140986f5d6ca1b1ef86f47166a36654571bfe"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/options-resolver/zipball/583f56160f716dd435f1cd721fd14b548f4bb510",
- "reference": "583f56160f716dd435f1cd721fd14b548f4bb510",
+ "url": "https://api.github.com/repos/symfony/password-hasher/zipball/513140986f5d6ca1b1ef86f47166a36654571bfe",
+ "reference": "513140986f5d6ca1b1ef86f47166a36654571bfe",
"shasum": ""
},
"require": {
- "php": ">=7.1.3",
- "symfony/polyfill-php80": "^1.16"
+ "php": ">=8.1"
+ },
+ "conflict": {
+ "symfony/security-core": "<5.4"
+ },
+ "require-dev": {
+ "symfony/console": "^5.4|^6.0",
+ "symfony/security-core": "^5.4|^6.0"
},
"type": "library",
"autoload": {
"psr-4": {
- "Symfony\\Component\\OptionsResolver\\": ""
+ "Symfony\\Component\\PasswordHasher\\": ""
},
"exclude-from-classmap": [
"/Tests/"
@@ -5827,23 +6301,22 @@
],
"authors": [
{
- "name": "Fabien Potencier",
- "email": "fabien@symfony.com"
+ "name": "Robin Chalas",
+ "email": "robin.chalas@gmail.com"
},
{
"name": "Symfony Community",
"homepage": "https://symfony.com/contributors"
}
],
- "description": "Provides an improved replacement for the array_replace PHP function",
+ "description": "Provides password hashing utilities",
"homepage": "https://symfony.com",
"keywords": [
- "config",
- "configuration",
- "options"
+ "hashing",
+ "password"
],
"support": {
- "source": "https://github.com/symfony/options-resolver/tree/v4.4.44"
+ "source": "https://github.com/symfony/password-hasher/tree/v6.3.12"
},
"funding": [
{
@@ -5859,20 +6332,20 @@
"type": "tidelift"
}
],
- "time": "2022-07-20T09:59:04+00:00"
+ "time": "2024-01-23T14:35:58+00:00"
},
{
"name": "symfony/polyfill-intl-grapheme",
- "version": "v1.26.0",
+ "version": "v1.29.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-intl-grapheme.git",
- "reference": "433d05519ce6990bf3530fba6957499d327395c2"
+ "reference": "32a9da87d7b3245e09ac426c83d334ae9f06f80f"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/433d05519ce6990bf3530fba6957499d327395c2",
- "reference": "433d05519ce6990bf3530fba6957499d327395c2",
+ "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/32a9da87d7b3245e09ac426c83d334ae9f06f80f",
+ "reference": "32a9da87d7b3245e09ac426c83d334ae9f06f80f",
"shasum": ""
},
"require": {
@@ -5883,9 +6356,6 @@
},
"type": "library",
"extra": {
- "branch-alias": {
- "dev-main": "1.26-dev"
- },
"thanks": {
"name": "symfony/polyfill",
"url": "https://github.com/symfony/polyfill"
@@ -5924,7 +6394,7 @@
"shim"
],
"support": {
- "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.26.0"
+ "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.29.0"
},
"funding": [
{
@@ -5940,20 +6410,20 @@
"type": "tidelift"
}
],
- "time": "2022-05-24T11:49:31+00:00"
+ "time": "2024-01-29T20:11:03+00:00"
},
{
"name": "symfony/polyfill-intl-icu",
- "version": "v1.26.0",
+ "version": "v1.29.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-intl-icu.git",
- "reference": "e407643d610e5f2c8a4b14189150f68934bf5e48"
+ "reference": "07094a28851a49107f3ab4f9120ca2975a64b6e1"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-intl-icu/zipball/e407643d610e5f2c8a4b14189150f68934bf5e48",
- "reference": "e407643d610e5f2c8a4b14189150f68934bf5e48",
+ "url": "https://api.github.com/repos/symfony/polyfill-intl-icu/zipball/07094a28851a49107f3ab4f9120ca2975a64b6e1",
+ "reference": "07094a28851a49107f3ab4f9120ca2975a64b6e1",
"shasum": ""
},
"require": {
@@ -5964,9 +6434,6 @@
},
"type": "library",
"extra": {
- "branch-alias": {
- "dev-main": "1.26-dev"
- },
"thanks": {
"name": "symfony/polyfill",
"url": "https://github.com/symfony/polyfill"
@@ -6011,7 +6478,7 @@
"shim"
],
"support": {
- "source": "https://github.com/symfony/polyfill-intl-icu/tree/v1.26.0"
+ "source": "https://github.com/symfony/polyfill-intl-icu/tree/v1.29.0"
},
"funding": [
{
@@ -6027,20 +6494,20 @@
"type": "tidelift"
}
],
- "time": "2022-05-24T11:49:31+00:00"
+ "time": "2024-01-29T20:12:16+00:00"
},
{
"name": "symfony/polyfill-intl-idn",
- "version": "v1.26.0",
+ "version": "v1.29.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-intl-idn.git",
- "reference": "59a8d271f00dd0e4c2e518104cc7963f655a1aa8"
+ "reference": "a287ed7475f85bf6f61890146edbc932c0fff919"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/59a8d271f00dd0e4c2e518104cc7963f655a1aa8",
- "reference": "59a8d271f00dd0e4c2e518104cc7963f655a1aa8",
+ "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/a287ed7475f85bf6f61890146edbc932c0fff919",
+ "reference": "a287ed7475f85bf6f61890146edbc932c0fff919",
"shasum": ""
},
"require": {
@@ -6053,9 +6520,6 @@
},
"type": "library",
"extra": {
- "branch-alias": {
- "dev-main": "1.26-dev"
- },
"thanks": {
"name": "symfony/polyfill",
"url": "https://github.com/symfony/polyfill"
@@ -6098,7 +6562,7 @@
"shim"
],
"support": {
- "source": "https://github.com/symfony/polyfill-intl-idn/tree/v1.26.0"
+ "source": "https://github.com/symfony/polyfill-intl-idn/tree/v1.29.0"
},
"funding": [
{
@@ -6114,20 +6578,20 @@
"type": "tidelift"
}
],
- "time": "2022-05-24T11:49:31+00:00"
+ "time": "2024-01-29T20:11:03+00:00"
},
{
"name": "symfony/polyfill-intl-normalizer",
- "version": "v1.26.0",
+ "version": "v1.29.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-intl-normalizer.git",
- "reference": "219aa369ceff116e673852dce47c3a41794c14bd"
+ "reference": "bc45c394692b948b4d383a08d7753968bed9a83d"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/219aa369ceff116e673852dce47c3a41794c14bd",
- "reference": "219aa369ceff116e673852dce47c3a41794c14bd",
+ "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/bc45c394692b948b4d383a08d7753968bed9a83d",
+ "reference": "bc45c394692b948b4d383a08d7753968bed9a83d",
"shasum": ""
},
"require": {
@@ -6138,9 +6602,6 @@
},
"type": "library",
"extra": {
- "branch-alias": {
- "dev-main": "1.26-dev"
- },
"thanks": {
"name": "symfony/polyfill",
"url": "https://github.com/symfony/polyfill"
@@ -6182,7 +6643,7 @@
"shim"
],
"support": {
- "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.26.0"
+ "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.29.0"
},
"funding": [
{
@@ -6198,20 +6659,20 @@
"type": "tidelift"
}
],
- "time": "2022-05-24T11:49:31+00:00"
+ "time": "2024-01-29T20:11:03+00:00"
},
{
"name": "symfony/polyfill-mbstring",
- "version": "v1.26.0",
+ "version": "v1.29.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-mbstring.git",
- "reference": "9344f9cb97f3b19424af1a21a3b0e75b0a7d8d7e"
+ "reference": "9773676c8a1bb1f8d4340a62efe641cf76eda7ec"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/9344f9cb97f3b19424af1a21a3b0e75b0a7d8d7e",
- "reference": "9344f9cb97f3b19424af1a21a3b0e75b0a7d8d7e",
+ "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/9773676c8a1bb1f8d4340a62efe641cf76eda7ec",
+ "reference": "9773676c8a1bb1f8d4340a62efe641cf76eda7ec",
"shasum": ""
},
"require": {
@@ -6225,9 +6686,6 @@
},
"type": "library",
"extra": {
- "branch-alias": {
- "dev-main": "1.26-dev"
- },
"thanks": {
"name": "symfony/polyfill",
"url": "https://github.com/symfony/polyfill"
@@ -6265,7 +6723,7 @@
"shim"
],
"support": {
- "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.26.0"
+ "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.29.0"
},
"funding": [
{
@@ -6281,20 +6739,20 @@
"type": "tidelift"
}
],
- "time": "2022-05-24T11:49:31+00:00"
+ "time": "2024-01-29T20:11:03+00:00"
},
{
"name": "symfony/polyfill-php72",
- "version": "v1.26.0",
+ "version": "v1.29.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-php72.git",
- "reference": "bf44a9fd41feaac72b074de600314a93e2ae78e2"
+ "reference": "861391a8da9a04cbad2d232ddd9e4893220d6e25"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/bf44a9fd41feaac72b074de600314a93e2ae78e2",
- "reference": "bf44a9fd41feaac72b074de600314a93e2ae78e2",
+ "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/861391a8da9a04cbad2d232ddd9e4893220d6e25",
+ "reference": "861391a8da9a04cbad2d232ddd9e4893220d6e25",
"shasum": ""
},
"require": {
@@ -6302,9 +6760,6 @@
},
"type": "library",
"extra": {
- "branch-alias": {
- "dev-main": "1.26-dev"
- },
"thanks": {
"name": "symfony/polyfill",
"url": "https://github.com/symfony/polyfill"
@@ -6341,86 +6796,7 @@
"shim"
],
"support": {
- "source": "https://github.com/symfony/polyfill-php72/tree/v1.26.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": "2022-05-24T11:49:31+00:00"
- },
- {
- "name": "symfony/polyfill-php73",
- "version": "v1.26.0",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/polyfill-php73.git",
- "reference": "e440d35fa0286f77fb45b79a03fedbeda9307e85"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/e440d35fa0286f77fb45b79a03fedbeda9307e85",
- "reference": "e440d35fa0286f77fb45b79a03fedbeda9307e85",
- "shasum": ""
- },
- "require": {
- "php": ">=7.1"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-main": "1.26-dev"
- },
- "thanks": {
- "name": "symfony/polyfill",
- "url": "https://github.com/symfony/polyfill"
- }
- },
- "autoload": {
- "files": [
- "bootstrap.php"
- ],
- "psr-4": {
- "Symfony\\Polyfill\\Php73\\": ""
- },
- "classmap": [
- "Resources/stubs"
- ]
- },
- "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": "Symfony polyfill backporting some PHP 7.3+ features to lower PHP versions",
- "homepage": "https://symfony.com",
- "keywords": [
- "compatibility",
- "polyfill",
- "portable",
- "shim"
- ],
- "support": {
- "source": "https://github.com/symfony/polyfill-php73/tree/v1.26.0"
+ "source": "https://github.com/symfony/polyfill-php72/tree/v1.29.0"
},
"funding": [
{
@@ -6436,20 +6812,20 @@
"type": "tidelift"
}
],
- "time": "2022-05-24T11:49:31+00:00"
+ "time": "2024-01-29T20:11:03+00:00"
},
{
"name": "symfony/polyfill-php80",
- "version": "v1.26.0",
+ "version": "v1.29.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-php80.git",
- "reference": "cfa0ae98841b9e461207c13ab093d76b0fa7bace"
+ "reference": "87b68208d5c1188808dd7839ee1e6c8ec3b02f1b"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/cfa0ae98841b9e461207c13ab093d76b0fa7bace",
- "reference": "cfa0ae98841b9e461207c13ab093d76b0fa7bace",
+ "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/87b68208d5c1188808dd7839ee1e6c8ec3b02f1b",
+ "reference": "87b68208d5c1188808dd7839ee1e6c8ec3b02f1b",
"shasum": ""
},
"require": {
@@ -6457,9 +6833,6 @@
},
"type": "library",
"extra": {
- "branch-alias": {
- "dev-main": "1.26-dev"
- },
"thanks": {
"name": "symfony/polyfill",
"url": "https://github.com/symfony/polyfill"
@@ -6503,7 +6876,7 @@
"shim"
],
"support": {
- "source": "https://github.com/symfony/polyfill-php80/tree/v1.26.0"
+ "source": "https://github.com/symfony/polyfill-php80/tree/v1.29.0"
},
"funding": [
{
@@ -6519,30 +6892,28 @@
"type": "tidelift"
}
],
- "time": "2022-05-10T07:21:04+00:00"
+ "time": "2024-01-29T20:11:03+00:00"
},
{
- "name": "symfony/polyfill-php81",
- "version": "v1.26.0",
+ "name": "symfony/polyfill-php83",
+ "version": "v1.29.0",
"source": {
"type": "git",
- "url": "https://github.com/symfony/polyfill-php81.git",
- "reference": "13f6d1271c663dc5ae9fb843a8f16521db7687a1"
+ "url": "https://github.com/symfony/polyfill-php83.git",
+ "reference": "86fcae159633351e5fd145d1c47de6c528f8caff"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-php81/zipball/13f6d1271c663dc5ae9fb843a8f16521db7687a1",
- "reference": "13f6d1271c663dc5ae9fb843a8f16521db7687a1",
+ "url": "https://api.github.com/repos/symfony/polyfill-php83/zipball/86fcae159633351e5fd145d1c47de6c528f8caff",
+ "reference": "86fcae159633351e5fd145d1c47de6c528f8caff",
"shasum": ""
},
"require": {
- "php": ">=7.1"
+ "php": ">=7.1",
+ "symfony/polyfill-php80": "^1.14"
},
"type": "library",
"extra": {
- "branch-alias": {
- "dev-main": "1.26-dev"
- },
"thanks": {
"name": "symfony/polyfill",
"url": "https://github.com/symfony/polyfill"
@@ -6553,7 +6924,7 @@
"bootstrap.php"
],
"psr-4": {
- "Symfony\\Polyfill\\Php81\\": ""
+ "Symfony\\Polyfill\\Php83\\": ""
},
"classmap": [
"Resources/stubs"
@@ -6573,7 +6944,7 @@
"homepage": "https://symfony.com/contributors"
}
],
- "description": "Symfony polyfill backporting some PHP 8.1+ features to lower PHP versions",
+ "description": "Symfony polyfill backporting some PHP 8.3+ features to lower PHP versions",
"homepage": "https://symfony.com",
"keywords": [
"compatibility",
@@ -6582,7 +6953,7 @@
"shim"
],
"support": {
- "source": "https://github.com/symfony/polyfill-php81/tree/v1.26.0"
+ "source": "https://github.com/symfony/polyfill-php83/tree/v1.29.0"
},
"funding": [
{
@@ -6598,25 +6969,24 @@
"type": "tidelift"
}
],
- "time": "2022-05-24T11:49:31+00:00"
+ "time": "2024-01-29T20:11:03+00:00"
},
{
"name": "symfony/process",
- "version": "v4.4.44",
+ "version": "v6.3.12",
"source": {
"type": "git",
"url": "https://github.com/symfony/process.git",
- "reference": "5cee9cdc4f7805e2699d9fd66991a0e6df8252a2"
+ "reference": "6c5eceb88510fc6ccd7044f2bacb21a3c0993882"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/process/zipball/5cee9cdc4f7805e2699d9fd66991a0e6df8252a2",
- "reference": "5cee9cdc4f7805e2699d9fd66991a0e6df8252a2",
+ "url": "https://api.github.com/repos/symfony/process/zipball/6c5eceb88510fc6ccd7044f2bacb21a3c0993882",
+ "reference": "6c5eceb88510fc6ccd7044f2bacb21a3c0993882",
"shasum": ""
},
"require": {
- "php": ">=7.1.3",
- "symfony/polyfill-php80": "^1.16"
+ "php": ">=8.1"
},
"type": "library",
"autoload": {
@@ -6644,7 +7014,7 @@
"description": "Executes commands in sub-processes",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/process/tree/v4.4.44"
+ "source": "https://github.com/symfony/process/tree/v6.3.12"
},
"funding": [
{
@@ -6660,32 +7030,29 @@
"type": "tidelift"
}
],
- "time": "2022-06-27T13:16:42+00:00"
+ "time": "2024-01-23T14:35:58+00:00"
},
{
"name": "symfony/property-access",
- "version": "v4.4.44",
+ "version": "v6.3.12",
"source": {
"type": "git",
"url": "https://github.com/symfony/property-access.git",
- "reference": "d49682f6f0764df725c95128213a38f7e0a9f358"
+ "reference": "bbf7228ce2673538e1502cf1613d84ecfe8548d0"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/property-access/zipball/d49682f6f0764df725c95128213a38f7e0a9f358",
- "reference": "d49682f6f0764df725c95128213a38f7e0a9f358",
+ "url": "https://api.github.com/repos/symfony/property-access/zipball/bbf7228ce2673538e1502cf1613d84ecfe8548d0",
+ "reference": "bbf7228ce2673538e1502cf1613d84ecfe8548d0",
"shasum": ""
},
"require": {
- "php": ">=7.1.3",
- "symfony/inflector": "^3.4|^4.0|^5.0",
- "symfony/polyfill-php80": "^1.16"
+ "php": ">=8.1",
+ "symfony/deprecation-contracts": "^2.5|^3",
+ "symfony/property-info": "^5.4|^6.0"
},
"require-dev": {
- "symfony/cache": "^3.4|^4.0|^5.0"
- },
- "suggest": {
- "psr/cache-implementation": "To cache access methods."
+ "symfony/cache": "^5.4|^6.0"
},
"type": "library",
"autoload": {
@@ -6720,11 +7087,11 @@
"injection",
"object",
"property",
- "property path",
+ "property-path",
"reflection"
],
"support": {
- "source": "https://github.com/symfony/property-access/tree/v4.4.44"
+ "source": "https://github.com/symfony/property-access/tree/v6.3.12"
},
"funding": [
{
@@ -6740,44 +7107,38 @@
"type": "tidelift"
}
],
- "time": "2022-06-27T13:16:42+00:00"
+ "time": "2024-01-23T14:35:58+00:00"
},
{
"name": "symfony/property-info",
- "version": "v4.4.44",
+ "version": "v6.3.12",
"source": {
"type": "git",
"url": "https://github.com/symfony/property-info.git",
- "reference": "442d69db54b0549ef7478a85275bea603230070f"
+ "reference": "ad9640f115b090503d52e8c8d5029e6041a40ccb"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/property-info/zipball/442d69db54b0549ef7478a85275bea603230070f",
- "reference": "442d69db54b0549ef7478a85275bea603230070f",
+ "url": "https://api.github.com/repos/symfony/property-info/zipball/ad9640f115b090503d52e8c8d5029e6041a40ccb",
+ "reference": "ad9640f115b090503d52e8c8d5029e6041a40ccb",
"shasum": ""
},
"require": {
- "php": ">=7.1.3",
- "symfony/inflector": "^3.4|^4.0|^5.0",
- "symfony/polyfill-php80": "^1.16"
+ "php": ">=8.1",
+ "symfony/string": "^5.4|^6.0"
},
"conflict": {
- "phpdocumentor/reflection-docblock": "<3.0|>=3.2.0,<3.2.2",
- "phpdocumentor/type-resolver": "<0.3.0|1.3.*",
- "symfony/dependency-injection": "<3.4"
+ "phpdocumentor/reflection-docblock": "<5.2",
+ "phpdocumentor/type-resolver": "<1.5.1",
+ "symfony/dependency-injection": "<5.4"
},
"require-dev": {
- "doctrine/annotations": "^1.10.4",
- "phpdocumentor/reflection-docblock": "^3.0|^4.0|^5.0",
- "symfony/cache": "^3.4|^4.0|^5.0",
- "symfony/dependency-injection": "^3.4|^4.0|^5.0",
- "symfony/serializer": "^3.4|^4.0|^5.0"
- },
- "suggest": {
- "phpdocumentor/reflection-docblock": "To use the PHPDoc",
- "psr/cache-implementation": "To cache results",
- "symfony/doctrine-bridge": "To use Doctrine metadata",
- "symfony/serializer": "To use Serializer metadata"
+ "doctrine/annotations": "^1.10.4|^2",
+ "phpdocumentor/reflection-docblock": "^5.2",
+ "phpstan/phpdoc-parser": "^1.0",
+ "symfony/cache": "^5.4|^6.0",
+ "symfony/dependency-injection": "^5.4|^6.0",
+ "symfony/serializer": "^5.4|^6.0"
},
"type": "library",
"autoload": {
@@ -6813,7 +7174,7 @@
"validator"
],
"support": {
- "source": "https://github.com/symfony/property-info/tree/v4.4.44"
+ "source": "https://github.com/symfony/property-info/tree/v6.3.12"
},
"funding": [
{
@@ -6829,30 +7190,30 @@
"type": "tidelift"
}
],
- "time": "2022-07-18T08:30:40+00:00"
+ "time": "2024-01-23T16:21:43+00:00"
},
{
"name": "symfony/proxy-manager-bridge",
- "version": "v4.4.39",
+ "version": "v6.3.12",
"source": {
"type": "git",
"url": "https://github.com/symfony/proxy-manager-bridge.git",
- "reference": "66c4de1f6fc16371c06762d6b7fafab2308a15a1"
+ "reference": "96a0f63d2934991f231bf3d389d5922786dc79ca"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/proxy-manager-bridge/zipball/66c4de1f6fc16371c06762d6b7fafab2308a15a1",
- "reference": "66c4de1f6fc16371c06762d6b7fafab2308a15a1",
+ "url": "https://api.github.com/repos/symfony/proxy-manager-bridge/zipball/96a0f63d2934991f231bf3d389d5922786dc79ca",
+ "reference": "96a0f63d2934991f231bf3d389d5922786dc79ca",
"shasum": ""
},
"require": {
"friendsofphp/proxy-manager-lts": "^1.0.2",
- "php": ">=7.1.3",
- "symfony/dependency-injection": "^4.0|^5.0",
- "symfony/polyfill-php80": "^1.16"
+ "php": ">=8.1",
+ "symfony/dependency-injection": "^6.3",
+ "symfony/deprecation-contracts": "^2.5|^3"
},
"require-dev": {
- "symfony/config": "^3.4|^4.0|^5.0"
+ "symfony/config": "^6.1"
},
"type": "symfony-bridge",
"autoload": {
@@ -6880,7 +7241,7 @@
"description": "Provides integration for ProxyManager with various Symfony components",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/proxy-manager-bridge/tree/v4.4.39"
+ "source": "https://github.com/symfony/proxy-manager-bridge/tree/v6.3.12"
},
"funding": [
{
@@ -6896,46 +7257,40 @@
"type": "tidelift"
}
],
- "time": "2022-02-25T10:38:15+00:00"
+ "time": "2024-01-23T14:35:58+00:00"
},
{
"name": "symfony/routing",
- "version": "v4.4.44",
+ "version": "v6.3.12",
"source": {
"type": "git",
"url": "https://github.com/symfony/routing.git",
- "reference": "f7751fd8b60a07f3f349947a309b5bdfce22d6ae"
+ "reference": "c7a3dcdd44d14022bf0d9d27f14a7b238f7e3e85"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/routing/zipball/f7751fd8b60a07f3f349947a309b5bdfce22d6ae",
- "reference": "f7751fd8b60a07f3f349947a309b5bdfce22d6ae",
+ "url": "https://api.github.com/repos/symfony/routing/zipball/c7a3dcdd44d14022bf0d9d27f14a7b238f7e3e85",
+ "reference": "c7a3dcdd44d14022bf0d9d27f14a7b238f7e3e85",
"shasum": ""
},
"require": {
- "php": ">=7.1.3",
- "symfony/polyfill-php80": "^1.16"
+ "php": ">=8.1",
+ "symfony/deprecation-contracts": "^2.5|^3"
},
"conflict": {
- "symfony/config": "<4.2",
- "symfony/dependency-injection": "<3.4",
- "symfony/yaml": "<3.4"
+ "doctrine/annotations": "<1.12",
+ "symfony/config": "<6.2",
+ "symfony/dependency-injection": "<5.4",
+ "symfony/yaml": "<5.4"
},
"require-dev": {
- "doctrine/annotations": "^1.10.4",
+ "doctrine/annotations": "^1.12|^2",
"psr/log": "^1|^2|^3",
- "symfony/config": "^4.2|^5.0",
- "symfony/dependency-injection": "^3.4|^4.0|^5.0",
- "symfony/expression-language": "^3.4|^4.0|^5.0",
- "symfony/http-foundation": "^3.4|^4.0|^5.0",
- "symfony/yaml": "^3.4|^4.0|^5.0"
- },
- "suggest": {
- "doctrine/annotations": "For using the annotation loader",
- "symfony/config": "For using the all-in-one router or any loader",
- "symfony/expression-language": "For using expression matching",
- "symfony/http-foundation": "For using a Symfony Request object",
- "symfony/yaml": "For using the YAML loader"
+ "symfony/config": "^6.2",
+ "symfony/dependency-injection": "^5.4|^6.0",
+ "symfony/expression-language": "^5.4|^6.0",
+ "symfony/http-foundation": "^5.4|^6.0",
+ "symfony/yaml": "^5.4|^6.0"
},
"type": "library",
"autoload": {
@@ -6969,7 +7324,7 @@
"url"
],
"support": {
- "source": "https://github.com/symfony/routing/tree/v4.4.44"
+ "source": "https://github.com/symfony/routing/tree/v6.3.12"
},
"funding": [
{
@@ -6985,64 +7340,44 @@
"type": "tidelift"
}
],
- "time": "2022-07-20T09:59:04+00:00"
+ "time": "2024-01-30T13:17:59+00:00"
},
{
- "name": "symfony/security-bundle",
- "version": "v4.4.44",
+ "name": "symfony/runtime",
+ "version": "v6.3.12",
"source": {
"type": "git",
- "url": "https://github.com/symfony/security-bundle.git",
- "reference": "d2a6bf4aeb75e75d3faacf9bec286e0de58394b6"
+ "url": "https://github.com/symfony/runtime.git",
+ "reference": "a8d2b8f6033a33c224b43065a10bab5e4f0be486"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/security-bundle/zipball/d2a6bf4aeb75e75d3faacf9bec286e0de58394b6",
- "reference": "d2a6bf4aeb75e75d3faacf9bec286e0de58394b6",
+ "url": "https://api.github.com/repos/symfony/runtime/zipball/a8d2b8f6033a33c224b43065a10bab5e4f0be486",
+ "reference": "a8d2b8f6033a33c224b43065a10bab5e4f0be486",
"shasum": ""
},
"require": {
- "ext-xml": "*",
- "php": ">=7.1.3",
- "symfony/config": "^4.2|^5.0",
- "symfony/dependency-injection": "^4.4|^5.0",
- "symfony/http-kernel": "^4.4",
- "symfony/polyfill-php80": "^1.16",
- "symfony/security-core": "^4.4",
- "symfony/security-csrf": "^4.2|^5.0",
- "symfony/security-guard": "^4.2|^5.0",
- "symfony/security-http": "^4.4.5"
+ "composer-plugin-api": "^1.0|^2.0",
+ "php": ">=8.1"
},
"conflict": {
- "symfony/browser-kit": "<4.2",
- "symfony/console": "<3.4",
- "symfony/framework-bundle": "<4.4",
- "symfony/ldap": "<4.4",
- "symfony/twig-bundle": "<4.4"
+ "symfony/dotenv": "<5.4"
},
"require-dev": {
- "doctrine/annotations": "^1.10.4",
- "symfony/asset": "^3.4|^4.0|^5.0",
- "symfony/browser-kit": "^4.2|^5.0",
- "symfony/console": "^3.4|^4.0|^5.0",
- "symfony/css-selector": "^3.4|^4.0|^5.0",
- "symfony/dom-crawler": "^3.4|^4.0|^5.0",
- "symfony/expression-language": "^3.4|^4.0|^5.0",
- "symfony/form": "^3.4|^4.0|^5.0",
- "symfony/framework-bundle": "^4.4|^5.0",
- "symfony/process": "^3.4|^4.0|^5.0",
- "symfony/serializer": "^4.4|^5.0",
- "symfony/translation": "^3.4|^4.0|^5.0",
- "symfony/twig-bridge": "^3.4|^4.0|^5.0",
- "symfony/twig-bundle": "^4.4|^5.0",
- "symfony/validator": "^3.4|^4.0|^5.0",
- "symfony/yaml": "^3.4|^4.0|^5.0",
- "twig/twig": "^1.43|^2.13|^3.0.4"
+ "composer/composer": "^1.0.2|^2.0",
+ "symfony/console": "^5.4.9|^6.0.9",
+ "symfony/dotenv": "^5.4|^6.0",
+ "symfony/http-foundation": "^5.4|^6.0",
+ "symfony/http-kernel": "^5.4|^6.0"
+ },
+ "type": "composer-plugin",
+ "extra": {
+ "class": "Symfony\\Component\\Runtime\\Internal\\ComposerPlugin"
},
- "type": "symfony-bundle",
"autoload": {
"psr-4": {
- "Symfony\\Bundle\\SecurityBundle\\": ""
+ "Symfony\\Component\\Runtime\\": "",
+ "Symfony\\Runtime\\Symfony\\Component\\": "Internal/"
},
"exclude-from-classmap": [
"/Tests/"
@@ -7054,18 +7389,21 @@
],
"authors": [
{
- "name": "Fabien Potencier",
- "email": "fabien@symfony.com"
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
},
{
"name": "Symfony Community",
"homepage": "https://symfony.com/contributors"
}
],
- "description": "Provides a tight integration of the Security component into the Symfony full-stack framework",
+ "description": "Enables decoupling PHP applications from global state",
"homepage": "https://symfony.com",
+ "keywords": [
+ "runtime"
+ ],
"support": {
- "source": "https://github.com/symfony/security-bundle/tree/v4.4.44"
+ "source": "https://github.com/symfony/runtime/tree/v6.3.12"
},
"funding": [
{
@@ -7081,55 +7419,79 @@
"type": "tidelift"
}
],
- "time": "2022-07-20T09:59:04+00:00"
+ "time": "2024-01-23T14:35:58+00:00"
},
{
- "name": "symfony/security-core",
- "version": "v4.4.44",
+ "name": "symfony/security-bundle",
+ "version": "v6.3.12",
"source": {
"type": "git",
- "url": "https://github.com/symfony/security-core.git",
- "reference": "e9a969b5e391d0983d7766503e22b481cb4c7338"
+ "url": "https://github.com/symfony/security-bundle.git",
+ "reference": "60eeacf3bbcbc830919824fbacaf6a9c0ecd0244"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/security-core/zipball/e9a969b5e391d0983d7766503e22b481cb4c7338",
- "reference": "e9a969b5e391d0983d7766503e22b481cb4c7338",
+ "url": "https://api.github.com/repos/symfony/security-bundle/zipball/60eeacf3bbcbc830919824fbacaf6a9c0ecd0244",
+ "reference": "60eeacf3bbcbc830919824fbacaf6a9c0ecd0244",
"shasum": ""
},
"require": {
- "php": ">=7.1.3",
- "symfony/event-dispatcher-contracts": "^1.1|^2",
- "symfony/polyfill-php80": "^1.16",
- "symfony/service-contracts": "^1.1.6|^2"
+ "composer-runtime-api": ">=2.1",
+ "ext-xml": "*",
+ "php": ">=8.1",
+ "symfony/clock": "^6.3",
+ "symfony/config": "^6.1",
+ "symfony/dependency-injection": "^6.2",
+ "symfony/deprecation-contracts": "^2.5|^3",
+ "symfony/event-dispatcher": "^5.4|^6.0",
+ "symfony/http-foundation": "^6.2",
+ "symfony/http-kernel": "^6.2",
+ "symfony/password-hasher": "^5.4|^6.0",
+ "symfony/security-core": "^6.2",
+ "symfony/security-csrf": "^5.4|^6.0",
+ "symfony/security-http": "^6.3.6",
+ "symfony/service-contracts": "^2.5|^3"
},
"conflict": {
- "symfony/event-dispatcher": "<4.3|>=5",
- "symfony/ldap": "<4.4",
- "symfony/security-guard": "<4.3"
+ "symfony/browser-kit": "<5.4",
+ "symfony/console": "<5.4",
+ "symfony/framework-bundle": "<6.3",
+ "symfony/http-client": "<5.4",
+ "symfony/ldap": "<5.4",
+ "symfony/twig-bundle": "<5.4"
},
"require-dev": {
- "psr/container": "^1.0|^2.0",
- "psr/log": "^1|^2|^3",
- "symfony/event-dispatcher": "^4.3",
- "symfony/expression-language": "^3.4|^4.0|^5.0",
- "symfony/http-foundation": "^3.4|^4.0|^5.0",
- "symfony/ldap": "^4.4|^5.0",
- "symfony/translation": "^4.4|^5.0",
- "symfony/validator": "^3.4.31|^4.3.4|^5.0"
- },
- "suggest": {
- "psr/container-implementation": "To instantiate the Security class",
- "symfony/event-dispatcher": "",
- "symfony/expression-language": "For using the expression voter",
- "symfony/http-foundation": "",
- "symfony/ldap": "For using LDAP integration",
- "symfony/validator": "For using the user password constraint"
+ "doctrine/annotations": "^1.10.4|^2",
+ "symfony/asset": "^5.4|^6.0",
+ "symfony/browser-kit": "^5.4|^6.0",
+ "symfony/console": "^5.4|^6.0",
+ "symfony/css-selector": "^5.4|^6.0",
+ "symfony/dom-crawler": "^5.4|^6.0",
+ "symfony/expression-language": "^5.4|^6.0",
+ "symfony/form": "^5.4|^6.0",
+ "symfony/framework-bundle": "^6.3",
+ "symfony/http-client": "^5.4|^6.0",
+ "symfony/ldap": "^5.4|^6.0",
+ "symfony/process": "^5.4|^6.0",
+ "symfony/rate-limiter": "^5.4|^6.0",
+ "symfony/serializer": "^5.4|^6.0",
+ "symfony/translation": "^5.4|^6.0",
+ "symfony/twig-bridge": "^5.4|^6.0",
+ "symfony/twig-bundle": "^5.4|^6.0",
+ "symfony/validator": "^5.4|^6.0",
+ "symfony/yaml": "^5.4|^6.0",
+ "twig/twig": "^2.13|^3.0.4",
+ "web-token/jwt-checker": "^3.1",
+ "web-token/jwt-signature-algorithm-ecdsa": "^3.1",
+ "web-token/jwt-signature-algorithm-eddsa": "^3.1",
+ "web-token/jwt-signature-algorithm-hmac": "^3.1",
+ "web-token/jwt-signature-algorithm-none": "^3.1",
+ "web-token/jwt-signature-algorithm-rsa": "^3.1"
},
- "type": "library",
+ "type": "symfony-bundle",
"autoload": {
"psr-4": {
- "Symfony\\Component\\Security\\Core\\": ""
+ "Symfony\\Bundle\\SecurityBundle\\": ""
},
"exclude-from-classmap": [
"/Tests/"
@@ -7149,10 +7511,10 @@
"homepage": "https://symfony.com/contributors"
}
],
- "description": "Symfony Security Component - Core Library",
+ "description": "Provides a tight integration of the Security component into the Symfony full-stack framework",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/security-core/tree/v4.4.44"
+ "source": "https://github.com/symfony/security-bundle/tree/v6.3.12"
},
"funding": [
{
@@ -7168,40 +7530,54 @@
"type": "tidelift"
}
],
- "time": "2022-07-20T09:59:04+00:00"
+ "time": "2024-01-23T14:42:18+00:00"
},
{
- "name": "symfony/security-csrf",
- "version": "v4.4.37",
+ "name": "symfony/security-core",
+ "version": "v6.3.12",
"source": {
"type": "git",
- "url": "https://github.com/symfony/security-csrf.git",
- "reference": "45c956ef58135091f53732646a0acd28034f02c0"
+ "url": "https://github.com/symfony/security-core.git",
+ "reference": "a2e6a338aaf4efec722839ec49f88eed2d752f92"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/security-csrf/zipball/45c956ef58135091f53732646a0acd28034f02c0",
- "reference": "45c956ef58135091f53732646a0acd28034f02c0",
+ "url": "https://api.github.com/repos/symfony/security-core/zipball/a2e6a338aaf4efec722839ec49f88eed2d752f92",
+ "reference": "a2e6a338aaf4efec722839ec49f88eed2d752f92",
"shasum": ""
},
"require": {
- "php": ">=7.1.3",
- "symfony/polyfill-php80": "^1.16",
- "symfony/security-core": "^3.4|^4.0|^5.0"
+ "php": ">=8.1",
+ "symfony/deprecation-contracts": "^2.5|^3",
+ "symfony/event-dispatcher-contracts": "^2.5|^3",
+ "symfony/password-hasher": "^5.4|^6.0",
+ "symfony/service-contracts": "^2.5|^3"
},
"conflict": {
- "symfony/http-foundation": "<3.4"
+ "symfony/event-dispatcher": "<5.4",
+ "symfony/http-foundation": "<5.4",
+ "symfony/ldap": "<5.4",
+ "symfony/security-guard": "<5.4",
+ "symfony/translation": "<5.4.35|>=6.0,<6.3.12|>=6.4,<6.4.3",
+ "symfony/validator": "<5.4"
},
"require-dev": {
- "symfony/http-foundation": "^3.4|^4.0|^5.0"
- },
- "suggest": {
- "symfony/http-foundation": "For using the class SessionTokenStorage."
+ "psr/cache": "^1.0|^2.0|^3.0",
+ "psr/container": "^1.1|^2.0",
+ "psr/log": "^1|^2|^3",
+ "symfony/cache": "^5.4|^6.0",
+ "symfony/event-dispatcher": "^5.4|^6.0",
+ "symfony/expression-language": "^5.4|^6.0",
+ "symfony/http-foundation": "^5.4|^6.0",
+ "symfony/ldap": "^5.4|^6.0",
+ "symfony/string": "^5.4|^6.0",
+ "symfony/translation": "^5.4.35|~6.3.12|^6.4.3",
+ "symfony/validator": "^5.4|^6.0"
},
"type": "library",
"autoload": {
"psr-4": {
- "Symfony\\Component\\Security\\Csrf\\": ""
+ "Symfony\\Component\\Security\\Core\\": ""
},
"exclude-from-classmap": [
"/Tests/"
@@ -7221,10 +7597,10 @@
"homepage": "https://symfony.com/contributors"
}
],
- "description": "Symfony Security Component - CSRF Library",
+ "description": "Symfony Security Component - Core Library",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/security-csrf/tree/v4.4.37"
+ "source": "https://github.com/symfony/security-core/tree/v6.3.12"
},
"funding": [
{
@@ -7240,34 +7616,36 @@
"type": "tidelift"
}
],
- "time": "2022-01-02T09:41:36+00:00"
+ "time": "2024-01-23T14:42:18+00:00"
},
{
- "name": "symfony/security-guard",
- "version": "v4.4.37",
+ "name": "symfony/security-csrf",
+ "version": "v6.3.12",
"source": {
"type": "git",
- "url": "https://github.com/symfony/security-guard.git",
- "reference": "cf8922b164e1659726c8852663eaaa593eef668c"
+ "url": "https://github.com/symfony/security-csrf.git",
+ "reference": "7d6ba797b8523da6d2e5b59994e7a73d305ce4b5"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/security-guard/zipball/cf8922b164e1659726c8852663eaaa593eef668c",
- "reference": "cf8922b164e1659726c8852663eaaa593eef668c",
+ "url": "https://api.github.com/repos/symfony/security-csrf/zipball/7d6ba797b8523da6d2e5b59994e7a73d305ce4b5",
+ "reference": "7d6ba797b8523da6d2e5b59994e7a73d305ce4b5",
"shasum": ""
},
"require": {
- "php": ">=7.1.3",
- "symfony/security-core": "^3.4.22|^4.2.3|^5.0",
- "symfony/security-http": "^4.4.1"
+ "php": ">=8.1",
+ "symfony/security-core": "^5.4|^6.0"
+ },
+ "conflict": {
+ "symfony/http-foundation": "<5.4"
},
"require-dev": {
- "psr/log": "^1|^2|^3"
+ "symfony/http-foundation": "^5.4|^6.0"
},
"type": "library",
"autoload": {
"psr-4": {
- "Symfony\\Component\\Security\\Guard\\": ""
+ "Symfony\\Component\\Security\\Csrf\\": ""
},
"exclude-from-classmap": [
"/Tests/"
@@ -7287,10 +7665,10 @@
"homepage": "https://symfony.com/contributors"
}
],
- "description": "Symfony Security Component - Guard",
+ "description": "Symfony Security Component - CSRF Library",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/security-guard/tree/v4.4.37"
+ "source": "https://github.com/symfony/security-csrf/tree/v6.3.12"
},
"funding": [
{
@@ -7306,42 +7684,51 @@
"type": "tidelift"
}
],
- "time": "2022-01-02T09:41:36+00:00"
+ "time": "2024-01-23T14:35:58+00:00"
},
{
"name": "symfony/security-http",
- "version": "v4.4.44",
+ "version": "v6.3.12",
"source": {
"type": "git",
"url": "https://github.com/symfony/security-http.git",
- "reference": "edb73e18f50f91bfe325e0524b68d9cf99a58f22"
+ "reference": "09eb813655cd9b1f679f4d984721633e9a0bab60"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/security-http/zipball/edb73e18f50f91bfe325e0524b68d9cf99a58f22",
- "reference": "edb73e18f50f91bfe325e0524b68d9cf99a58f22",
+ "url": "https://api.github.com/repos/symfony/security-http/zipball/09eb813655cd9b1f679f4d984721633e9a0bab60",
+ "reference": "09eb813655cd9b1f679f4d984721633e9a0bab60",
"shasum": ""
},
"require": {
- "php": ">=7.1.3",
- "symfony/http-foundation": "^3.4.40|^4.4.7|^5.0.7",
- "symfony/http-kernel": "^4.4",
- "symfony/polyfill-php80": "^1.16",
- "symfony/property-access": "^3.4|^4.0|^5.0",
- "symfony/security-core": "^4.4.8"
+ "php": ">=8.1",
+ "symfony/deprecation-contracts": "^2.5|^3",
+ "symfony/http-foundation": "^5.4|^6.0",
+ "symfony/http-kernel": "^6.3",
+ "symfony/polyfill-mbstring": "~1.0",
+ "symfony/property-access": "^5.4|^6.0",
+ "symfony/security-core": "^6.3",
+ "symfony/service-contracts": "^2.5|^3"
},
"conflict": {
- "symfony/event-dispatcher": ">=5",
- "symfony/security-csrf": "<3.4.11|~4.0,<4.0.11"
+ "symfony/clock": "<6.3",
+ "symfony/event-dispatcher": "<5.4.9|>=6,<6.0.9",
+ "symfony/http-client-contracts": "<3.0",
+ "symfony/security-bundle": "<5.4",
+ "symfony/security-csrf": "<5.4"
},
"require-dev": {
"psr/log": "^1|^2|^3",
- "symfony/routing": "^3.4|^4.0|^5.0",
- "symfony/security-csrf": "^3.4.11|^4.0.11|^5.0"
- },
- "suggest": {
- "symfony/routing": "For using the HttpUtils class to create sub-requests, redirect the user, and match URLs",
- "symfony/security-csrf": "For using tokens to protect authentication/logout attempts"
+ "symfony/cache": "^5.4|^6.0",
+ "symfony/clock": "^6.3",
+ "symfony/expression-language": "^5.4|^6.0",
+ "symfony/http-client-contracts": "^3.0",
+ "symfony/rate-limiter": "^5.4|^6.0",
+ "symfony/routing": "^5.4|^6.0",
+ "symfony/security-csrf": "^5.4|^6.0",
+ "symfony/translation": "^5.4|^6.0",
+ "web-token/jwt-checker": "^3.1",
+ "web-token/jwt-signature-algorithm-ecdsa": "^3.1"
},
"type": "library",
"autoload": {
@@ -7369,7 +7756,7 @@
"description": "Symfony Security Component - HTTP Integration",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/security-http/tree/v4.4.44"
+ "source": "https://github.com/symfony/security-http/tree/v6.3.12"
},
"funding": [
{
@@ -7385,57 +7772,57 @@
"type": "tidelift"
}
],
- "time": "2022-07-26T16:38:53+00:00"
+ "time": "2024-01-23T14:42:18+00:00"
},
{
"name": "symfony/serializer",
- "version": "v4.4.44",
+ "version": "v6.3.12",
"source": {
"type": "git",
"url": "https://github.com/symfony/serializer.git",
- "reference": "375509ca128d3e8b38df92af74814c765571911e"
+ "reference": "917d5ecbd6a7aece5b6a33c7aab82ee087d69803"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/serializer/zipball/375509ca128d3e8b38df92af74814c765571911e",
- "reference": "375509ca128d3e8b38df92af74814c765571911e",
+ "url": "https://api.github.com/repos/symfony/serializer/zipball/917d5ecbd6a7aece5b6a33c7aab82ee087d69803",
+ "reference": "917d5ecbd6a7aece5b6a33c7aab82ee087d69803",
"shasum": ""
},
"require": {
- "php": ">=7.1.3",
- "symfony/polyfill-ctype": "~1.8",
- "symfony/polyfill-php80": "^1.16"
+ "php": ">=8.1",
+ "symfony/deprecation-contracts": "^2.5|^3",
+ "symfony/polyfill-ctype": "~1.8"
},
"conflict": {
- "phpdocumentor/reflection-docblock": "<3.0|>=3.2.0,<3.2.2",
- "phpdocumentor/type-resolver": "<0.3.0|1.3.*",
- "symfony/dependency-injection": "<3.4",
- "symfony/property-access": "<3.4",
- "symfony/property-info": "<3.4",
- "symfony/yaml": "<3.4"
+ "doctrine/annotations": "<1.12",
+ "phpdocumentor/reflection-docblock": "<3.2.2",
+ "phpdocumentor/type-resolver": "<1.4.0",
+ "symfony/dependency-injection": "<5.4",
+ "symfony/property-access": "<5.4",
+ "symfony/property-info": "<5.4.24|>=6,<6.2.11",
+ "symfony/uid": "<5.4",
+ "symfony/yaml": "<5.4"
},
"require-dev": {
- "doctrine/annotations": "^1.10.4",
+ "doctrine/annotations": "^1.12|^2",
"phpdocumentor/reflection-docblock": "^3.2|^4.0|^5.0",
- "symfony/cache": "^3.4|^4.0|^5.0",
- "symfony/config": "^3.4|^4.0|^5.0",
- "symfony/dependency-injection": "^3.4|^4.0|^5.0",
- "symfony/error-handler": "^4.4|^5.0",
- "symfony/http-foundation": "^3.4|^4.0|^5.0",
- "symfony/mime": "^4.4|^5.0",
- "symfony/property-access": "^4.4.36|^5.3.13",
- "symfony/property-info": "^3.4.13|~4.0|^5.0",
- "symfony/validator": "^3.4|^4.0|^5.0",
- "symfony/yaml": "^3.4|^4.0|^5.0"
- },
- "suggest": {
- "doctrine/annotations": "For using the annotation mapping.",
- "psr/cache-implementation": "For using the metadata cache.",
- "symfony/config": "For using the XML mapping loader.",
- "symfony/http-foundation": "For using a MIME type guesser within the DataUriNormalizer.",
- "symfony/property-access": "For using the ObjectNormalizer.",
- "symfony/property-info": "To deserialize relations.",
- "symfony/yaml": "For using the default YAML mapping loader."
+ "symfony/cache": "^5.4|^6.0",
+ "symfony/config": "^5.4|^6.0",
+ "symfony/console": "^5.4|^6.0",
+ "symfony/dependency-injection": "^5.4|^6.0",
+ "symfony/error-handler": "^5.4|^6.0",
+ "symfony/filesystem": "^5.4|^6.0",
+ "symfony/form": "^5.4|^6.0",
+ "symfony/http-foundation": "^5.4|^6.0",
+ "symfony/http-kernel": "^5.4|^6.0",
+ "symfony/mime": "^5.4|^6.0",
+ "symfony/property-access": "^5.4.26|^6.3",
+ "symfony/property-info": "^5.4.24|^6.2.11",
+ "symfony/uid": "^5.4|^6.0",
+ "symfony/validator": "^5.4|^6.0",
+ "symfony/var-dumper": "^5.4|^6.0",
+ "symfony/var-exporter": "^5.4|^6.0",
+ "symfony/yaml": "^5.4|^6.0"
},
"type": "library",
"autoload": {
@@ -7463,7 +7850,58 @@
"description": "Handles serializing and deserializing data structures, including object graphs, into array structures or other formats like XML and JSON.",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/serializer/tree/v4.4.44"
+ "source": "https://github.com/symfony/serializer/tree/v6.3.12"
+ },
+ "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-01-30T08:17:33+00:00"
+ },
+ {
+ "name": "symfony/serializer-pack",
+ "version": "v1.3.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/serializer-pack.git",
+ "reference": "2844d81a5fc86b617b82f44a8bfcaaba1d583eee"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/serializer-pack/zipball/2844d81a5fc86b617b82f44a8bfcaaba1d583eee",
+ "reference": "2844d81a5fc86b617b82f44a8bfcaaba1d583eee",
+ "shasum": ""
+ },
+ "require": {
+ "phpdocumentor/reflection-docblock": "*",
+ "phpstan/phpdoc-parser": "*",
+ "symfony/property-access": "*",
+ "symfony/property-info": "*",
+ "symfony/serializer": "*"
+ },
+ "conflict": {
+ "symfony/property-info": "<5.4",
+ "symfony/serializer": "<5.4"
+ },
+ "type": "symfony-pack",
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "description": "A pack for the Symfony serializer",
+ "support": {
+ "issues": "https://github.com/symfony/serializer-pack/issues",
+ "source": "https://github.com/symfony/serializer-pack/tree/v1.3.0"
},
"funding": [
{
@@ -7479,37 +7917,34 @@
"type": "tidelift"
}
],
- "time": "2022-07-28T12:55:20+00:00"
+ "time": "2023-06-03T13:55:25+00:00"
},
{
"name": "symfony/service-contracts",
- "version": "v2.5.2",
+ "version": "v3.5.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/service-contracts.git",
- "reference": "4b426aac47d6427cc1a1d0f7e2ac724627f5966c"
+ "reference": "bd1d9e59a81d8fa4acdcea3f617c581f7475a80f"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/service-contracts/zipball/4b426aac47d6427cc1a1d0f7e2ac724627f5966c",
- "reference": "4b426aac47d6427cc1a1d0f7e2ac724627f5966c",
+ "url": "https://api.github.com/repos/symfony/service-contracts/zipball/bd1d9e59a81d8fa4acdcea3f617c581f7475a80f",
+ "reference": "bd1d9e59a81d8fa4acdcea3f617c581f7475a80f",
"shasum": ""
},
"require": {
- "php": ">=7.2.5",
- "psr/container": "^1.1",
- "symfony/deprecation-contracts": "^2.1|^3"
+ "php": ">=8.1",
+ "psr/container": "^1.1|^2.0",
+ "symfony/deprecation-contracts": "^2.5|^3"
},
"conflict": {
"ext-psr": "<1.1|>=2"
},
- "suggest": {
- "symfony/service-implementation": ""
- },
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "2.5-dev"
+ "dev-main": "3.5-dev"
},
"thanks": {
"name": "symfony/contracts",
@@ -7519,7 +7954,10 @@
"autoload": {
"psr-4": {
"Symfony\\Contracts\\Service\\": ""
- }
+ },
+ "exclude-from-classmap": [
+ "/Test/"
+ ]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
@@ -7546,7 +7984,7 @@
"standards"
],
"support": {
- "source": "https://github.com/symfony/service-contracts/tree/v2.5.2"
+ "source": "https://github.com/symfony/service-contracts/tree/v3.5.0"
},
"funding": [
{
@@ -7562,25 +8000,25 @@
"type": "tidelift"
}
],
- "time": "2022-05-30T19:17:29+00:00"
+ "time": "2024-04-18T09:32:20+00:00"
},
{
"name": "symfony/stopwatch",
- "version": "v4.4.38",
+ "version": "v6.3.12",
"source": {
"type": "git",
"url": "https://github.com/symfony/stopwatch.git",
- "reference": "7f4f5a8122f7530d688cc9edf2f8c9261552fa2d"
+ "reference": "416596166641f1f728b0a64f5b9dd07cceb410c1"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/stopwatch/zipball/7f4f5a8122f7530d688cc9edf2f8c9261552fa2d",
- "reference": "7f4f5a8122f7530d688cc9edf2f8c9261552fa2d",
+ "url": "https://api.github.com/repos/symfony/stopwatch/zipball/416596166641f1f728b0a64f5b9dd07cceb410c1",
+ "reference": "416596166641f1f728b0a64f5b9dd07cceb410c1",
"shasum": ""
},
"require": {
- "php": ">=7.1.3",
- "symfony/service-contracts": "^1.0|^2"
+ "php": ">=8.1",
+ "symfony/service-contracts": "^2.5|^3"
},
"type": "library",
"autoload": {
@@ -7608,7 +8046,7 @@
"description": "Provides a way to profile code",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/stopwatch/tree/v4.4.38"
+ "source": "https://github.com/symfony/stopwatch/tree/v6.3.12"
},
"funding": [
{
@@ -7624,38 +8062,38 @@
"type": "tidelift"
}
],
- "time": "2022-02-18T15:34:20+00:00"
+ "time": "2024-01-23T14:35:58+00:00"
},
{
"name": "symfony/string",
- "version": "v5.4.11",
+ "version": "v6.3.12",
"source": {
"type": "git",
"url": "https://github.com/symfony/string.git",
- "reference": "5eb661e49ad389e4ae2b6e4df8d783a8a6548322"
+ "reference": "bce75043af265dc8aca536a6ab1d6b3181763529"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/string/zipball/5eb661e49ad389e4ae2b6e4df8d783a8a6548322",
- "reference": "5eb661e49ad389e4ae2b6e4df8d783a8a6548322",
+ "url": "https://api.github.com/repos/symfony/string/zipball/bce75043af265dc8aca536a6ab1d6b3181763529",
+ "reference": "bce75043af265dc8aca536a6ab1d6b3181763529",
"shasum": ""
},
"require": {
- "php": ">=7.2.5",
+ "php": ">=8.1",
"symfony/polyfill-ctype": "~1.8",
"symfony/polyfill-intl-grapheme": "~1.0",
"symfony/polyfill-intl-normalizer": "~1.0",
- "symfony/polyfill-mbstring": "~1.0",
- "symfony/polyfill-php80": "~1.15"
+ "symfony/polyfill-mbstring": "~1.0"
},
"conflict": {
- "symfony/translation-contracts": ">=3.0"
+ "symfony/translation-contracts": "<2.5"
},
"require-dev": {
- "symfony/error-handler": "^4.4|^5.0|^6.0",
- "symfony/http-client": "^4.4|^5.0|^6.0",
- "symfony/translation-contracts": "^1.1|^2",
- "symfony/var-exporter": "^4.4|^5.0|^6.0"
+ "symfony/error-handler": "^5.4|^6.0",
+ "symfony/http-client": "^5.4|^6.0",
+ "symfony/intl": "^6.2",
+ "symfony/translation-contracts": "^2.5|^3.0",
+ "symfony/var-exporter": "^5.4|^6.0"
},
"type": "library",
"autoload": {
@@ -7694,7 +8132,7 @@
"utf8"
],
"support": {
- "source": "https://github.com/symfony/string/tree/v5.4.11"
+ "source": "https://github.com/symfony/string/tree/v6.3.12"
},
"funding": [
{
@@ -7710,55 +8148,61 @@
"type": "tidelift"
}
],
- "time": "2022-07-24T16:15:25+00:00"
+ "time": "2024-01-23T14:35:58+00:00"
},
{
"name": "symfony/translation",
- "version": "v4.4.44",
+ "version": "v6.3.12",
"source": {
"type": "git",
"url": "https://github.com/symfony/translation.git",
- "reference": "af947fefc306cec6ea5a1f6160c7e305a71f2493"
+ "reference": "5c67cd1b1635be525f4dbe89042cdc3749a89ff5"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/translation/zipball/af947fefc306cec6ea5a1f6160c7e305a71f2493",
- "reference": "af947fefc306cec6ea5a1f6160c7e305a71f2493",
+ "url": "https://api.github.com/repos/symfony/translation/zipball/5c67cd1b1635be525f4dbe89042cdc3749a89ff5",
+ "reference": "5c67cd1b1635be525f4dbe89042cdc3749a89ff5",
"shasum": ""
},
"require": {
- "php": ">=7.1.3",
+ "php": ">=8.1",
+ "symfony/deprecation-contracts": "^2.5|^3",
"symfony/polyfill-mbstring": "~1.0",
- "symfony/polyfill-php80": "^1.16",
- "symfony/translation-contracts": "^1.1.6|^2"
+ "symfony/translation-contracts": "^2.5|^3.0"
},
"conflict": {
- "symfony/config": "<3.4",
- "symfony/dependency-injection": "<3.4",
- "symfony/http-kernel": "<4.4",
- "symfony/yaml": "<3.4"
+ "symfony/config": "<5.4",
+ "symfony/console": "<5.4",
+ "symfony/dependency-injection": "<5.4",
+ "symfony/http-client-contracts": "<2.5",
+ "symfony/http-kernel": "<5.4",
+ "symfony/service-contracts": "<2.5",
+ "symfony/twig-bundle": "<5.4",
+ "symfony/yaml": "<5.4"
},
"provide": {
- "symfony/translation-implementation": "1.0|2.0"
+ "symfony/translation-implementation": "2.3|3.0"
},
"require-dev": {
+ "nikic/php-parser": "^4.18|^5.0",
"psr/log": "^1|^2|^3",
- "symfony/config": "^3.4|^4.0|^5.0",
- "symfony/console": "^3.4|^4.0|^5.0",
- "symfony/dependency-injection": "^3.4|^4.0|^5.0",
- "symfony/finder": "~2.8|~3.0|~4.0|^5.0",
- "symfony/http-kernel": "^4.4",
- "symfony/intl": "^3.4|^4.0|^5.0",
- "symfony/service-contracts": "^1.1.2|^2",
- "symfony/yaml": "^3.4|^4.0|^5.0"
- },
- "suggest": {
- "psr/log-implementation": "To use logging capability in translator",
- "symfony/config": "",
- "symfony/yaml": ""
+ "symfony/config": "^5.4|^6.0",
+ "symfony/console": "^5.4|^6.0",
+ "symfony/dependency-injection": "^5.4|^6.0",
+ "symfony/finder": "^5.4|^6.0",
+ "symfony/http-client-contracts": "^2.5|^3.0",
+ "symfony/http-kernel": "^5.4|^6.0",
+ "symfony/intl": "^5.4|^6.0",
+ "symfony/polyfill-intl-icu": "^1.21",
+ "symfony/routing": "^5.4|^6.0",
+ "symfony/service-contracts": "^2.5|^3",
+ "symfony/yaml": "^5.4|^6.0"
},
"type": "library",
"autoload": {
+ "files": [
+ "Resources/functions.php"
+ ],
"psr-4": {
"Symfony\\Component\\Translation\\": ""
},
@@ -7783,7 +8227,7 @@
"description": "Provides tools to internationalize your application",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/translation/tree/v4.4.44"
+ "source": "https://github.com/symfony/translation/tree/v6.3.12"
},
"funding": [
{
@@ -7799,32 +8243,29 @@
"type": "tidelift"
}
],
- "time": "2022-07-20T09:59:04+00:00"
+ "time": "2024-01-23T14:35:58+00:00"
},
{
"name": "symfony/translation-contracts",
- "version": "v2.5.2",
+ "version": "v3.5.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/translation-contracts.git",
- "reference": "136b19dd05cdf0709db6537d058bcab6dd6e2dbe"
+ "reference": "b9d2189887bb6b2e0367a9fc7136c5239ab9b05a"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/136b19dd05cdf0709db6537d058bcab6dd6e2dbe",
- "reference": "136b19dd05cdf0709db6537d058bcab6dd6e2dbe",
+ "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/b9d2189887bb6b2e0367a9fc7136c5239ab9b05a",
+ "reference": "b9d2189887bb6b2e0367a9fc7136c5239ab9b05a",
"shasum": ""
},
"require": {
- "php": ">=7.2.5"
- },
- "suggest": {
- "symfony/translation-implementation": ""
+ "php": ">=8.1"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "2.5-dev"
+ "dev-main": "3.5-dev"
},
"thanks": {
"name": "symfony/contracts",
@@ -7834,7 +8275,10 @@
"autoload": {
"psr-4": {
"Symfony\\Contracts\\Translation\\": ""
- }
+ },
+ "exclude-from-classmap": [
+ "/Test/"
+ ]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
@@ -7861,7 +8305,7 @@
"standards"
],
"support": {
- "source": "https://github.com/symfony/translation-contracts/tree/v2.5.2"
+ "source": "https://github.com/symfony/translation-contracts/tree/v3.5.0"
},
"funding": [
{
@@ -7877,81 +8321,72 @@
"type": "tidelift"
}
],
- "time": "2022-06-27T16:58:25+00:00"
+ "time": "2024-04-18T09:32:20+00:00"
},
{
"name": "symfony/twig-bridge",
- "version": "v4.4.44",
+ "version": "v6.3.12",
"source": {
"type": "git",
"url": "https://github.com/symfony/twig-bridge.git",
- "reference": "53e4f5ed93901d857ec07e2440cc113537c1a489"
+ "reference": "dd34e348a9237d40eb7a791ee14de6efbadd5108"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/twig-bridge/zipball/53e4f5ed93901d857ec07e2440cc113537c1a489",
- "reference": "53e4f5ed93901d857ec07e2440cc113537c1a489",
+ "url": "https://api.github.com/repos/symfony/twig-bridge/zipball/dd34e348a9237d40eb7a791ee14de6efbadd5108",
+ "reference": "dd34e348a9237d40eb7a791ee14de6efbadd5108",
"shasum": ""
},
"require": {
- "php": ">=7.1.3",
- "symfony/polyfill-php80": "^1.16",
- "symfony/translation-contracts": "^1.1|^2",
- "twig/twig": "^1.43|^2.13|^3.0.4"
+ "php": ">=8.1",
+ "symfony/translation-contracts": "^2.5|^3",
+ "twig/twig": "^2.13|^3.0.4"
},
"conflict": {
- "symfony/console": "<3.4",
- "symfony/form": "<4.4",
- "symfony/http-foundation": "<4.3",
- "symfony/translation": "<4.2",
- "symfony/workflow": "<4.3"
+ "phpdocumentor/reflection-docblock": "<3.2.2",
+ "phpdocumentor/type-resolver": "<1.4.0",
+ "symfony/console": "<5.4",
+ "symfony/form": "<6.3",
+ "symfony/http-foundation": "<5.4",
+ "symfony/http-kernel": "<6.2",
+ "symfony/mime": "<6.2",
+ "symfony/translation": "<5.4",
+ "symfony/workflow": "<5.4"
},
"require-dev": {
- "egulias/email-validator": "^2.1.10|^3",
- "symfony/asset": "^3.4|^4.0|^5.0",
- "symfony/console": "^3.4|^4.0|^5.0",
- "symfony/dependency-injection": "^3.4|^4.0|^5.0",
- "symfony/error-handler": "^4.4|^5.0",
- "symfony/expression-language": "^3.4|^4.0|^5.0",
- "symfony/finder": "^3.4|^4.0|^5.0",
- "symfony/form": "^4.4.17",
- "symfony/http-foundation": "^4.3|^5.0",
- "symfony/http-kernel": "^4.4",
- "symfony/intl": "^4.4|^5.0",
- "symfony/mime": "^4.3|^5.0",
+ "doctrine/annotations": "^1.12|^2",
+ "egulias/email-validator": "^2.1.10|^3|^4",
+ "league/html-to-markdown": "^5.0",
+ "phpdocumentor/reflection-docblock": "^3.0|^4.0|^5.0",
+ "symfony/asset": "^5.4|^6.0",
+ "symfony/asset-mapper": "^6.3",
+ "symfony/console": "^5.4|^6.0",
+ "symfony/dependency-injection": "^5.4|^6.0",
+ "symfony/expression-language": "^5.4|^6.0",
+ "symfony/finder": "^5.4|^6.0",
+ "symfony/form": "^6.3",
+ "symfony/html-sanitizer": "^6.1",
+ "symfony/http-foundation": "^5.4|^6.0",
+ "symfony/http-kernel": "^6.2",
+ "symfony/intl": "^5.4|^6.0",
+ "symfony/mime": "^6.2",
"symfony/polyfill-intl-icu": "~1.0",
- "symfony/routing": "^3.4|^4.0|^5.0",
+ "symfony/property-info": "^5.4|^6.0",
+ "symfony/routing": "^5.4|^6.0",
"symfony/security-acl": "^2.8|^3.0",
- "symfony/security-core": "^3.0|^4.0|^5.0",
- "symfony/security-csrf": "^3.4|^4.0|^5.0",
- "symfony/security-http": "^3.4|^4.0|^5.0",
- "symfony/stopwatch": "^3.4|^4.0|^5.0",
- "symfony/templating": "^3.4|^4.0|^5.0",
- "symfony/translation": "^4.2.1|^5.0",
- "symfony/web-link": "^4.4|^5.0",
- "symfony/workflow": "^4.3|^5.0",
- "symfony/yaml": "^3.4|^4.0|^5.0",
+ "symfony/security-core": "^5.4|^6.0",
+ "symfony/security-csrf": "^5.4|^6.0",
+ "symfony/security-http": "^5.4|^6.0",
+ "symfony/serializer": "~6.3.12|^6.4.3",
+ "symfony/stopwatch": "^5.4|^6.0",
+ "symfony/translation": "^6.1",
+ "symfony/web-link": "^5.4|^6.0",
+ "symfony/workflow": "^5.4|^6.0",
+ "symfony/yaml": "^5.4|^6.0",
"twig/cssinliner-extra": "^2.12|^3",
"twig/inky-extra": "^2.12|^3",
"twig/markdown-extra": "^2.12|^3"
},
- "suggest": {
- "symfony/asset": "For using the AssetExtension",
- "symfony/expression-language": "For using the ExpressionExtension",
- "symfony/finder": "",
- "symfony/form": "For using the FormExtension",
- "symfony/http-kernel": "For using the HttpKernelExtension",
- "symfony/routing": "For using the RoutingExtension",
- "symfony/security-core": "For using the SecurityExtension",
- "symfony/security-csrf": "For using the CsrfExtension",
- "symfony/security-http": "For using the LogoutUrlExtension",
- "symfony/stopwatch": "For using the StopwatchExtension",
- "symfony/templating": "For using the TwigEngine",
- "symfony/translation": "For using the TranslationExtension",
- "symfony/var-dumper": "For using the DumpExtension",
- "symfony/web-link": "For using the WebLinkExtension",
- "symfony/yaml": "For using the YamlExtension"
- },
"type": "symfony-bridge",
"autoload": {
"psr-4": {
@@ -7978,7 +8413,7 @@
"description": "Provides integration for Twig with various Symfony components",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/twig-bridge/tree/v4.4.44"
+ "source": "https://github.com/symfony/twig-bridge/tree/v6.3.12"
},
"funding": [
{
@@ -7994,51 +8429,48 @@
"type": "tidelift"
}
],
- "time": "2022-07-20T09:59:04+00:00"
+ "time": "2024-01-30T08:17:33+00:00"
},
{
"name": "symfony/twig-bundle",
- "version": "v4.4.41",
+ "version": "v6.3.12",
"source": {
"type": "git",
"url": "https://github.com/symfony/twig-bundle.git",
- "reference": "164c1edc69f2c7ee337323efc78a8a8a263f45ff"
+ "reference": "820d2a7a2b876b287215a6b93f482dace8057d9b"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/twig-bundle/zipball/164c1edc69f2c7ee337323efc78a8a8a263f45ff",
- "reference": "164c1edc69f2c7ee337323efc78a8a8a263f45ff",
+ "url": "https://api.github.com/repos/symfony/twig-bundle/zipball/820d2a7a2b876b287215a6b93f482dace8057d9b",
+ "reference": "820d2a7a2b876b287215a6b93f482dace8057d9b",
"shasum": ""
},
- "require": {
- "php": ">=7.1.3",
- "symfony/http-foundation": "^4.3|^5.0",
- "symfony/http-kernel": "^4.4",
- "symfony/polyfill-ctype": "~1.8",
- "symfony/polyfill-php80": "^1.16",
- "symfony/twig-bridge": "^4.4|^5.0",
- "twig/twig": "^1.43|^2.13|^3.0.4"
+ "require": {
+ "composer-runtime-api": ">=2.1",
+ "php": ">=8.1",
+ "symfony/config": "^6.1",
+ "symfony/dependency-injection": "^6.1",
+ "symfony/http-foundation": "^5.4|^6.0",
+ "symfony/http-kernel": "^6.2",
+ "symfony/twig-bridge": "^6.3",
+ "twig/twig": "^2.13|^3.0.4"
},
"conflict": {
- "symfony/dependency-injection": "<4.1",
- "symfony/framework-bundle": "<4.4",
- "symfony/translation": "<4.2"
+ "symfony/framework-bundle": "<5.4",
+ "symfony/translation": "<5.4"
},
"require-dev": {
- "doctrine/annotations": "^1.10.4",
- "doctrine/cache": "^1.0|^2.0",
- "symfony/asset": "^3.4|^4.0|^5.0",
- "symfony/dependency-injection": "^4.2.5|^5.0",
- "symfony/expression-language": "^3.4|^4.0|^5.0",
- "symfony/finder": "^3.4|^4.0|^5.0",
- "symfony/form": "^3.4|^4.0|^5.0",
- "symfony/framework-bundle": "^4.4|^5.0",
- "symfony/routing": "^3.4|^4.0|^5.0",
- "symfony/stopwatch": "^3.4|^4.0|^5.0",
- "symfony/templating": "^3.4|^4.0|^5.0",
- "symfony/translation": "^4.2|^5.0",
- "symfony/web-link": "^3.4|^4.0|^5.0",
- "symfony/yaml": "^3.4|^4.0|^5.0"
+ "doctrine/annotations": "^1.10.4|^2",
+ "symfony/asset": "^5.4|^6.0",
+ "symfony/expression-language": "^5.4|^6.0",
+ "symfony/finder": "^5.4|^6.0",
+ "symfony/form": "^5.4|^6.0",
+ "symfony/framework-bundle": "^5.4|^6.0",
+ "symfony/routing": "^5.4|^6.0",
+ "symfony/stopwatch": "^5.4|^6.0",
+ "symfony/translation": "^5.4|^6.0",
+ "symfony/web-link": "^5.4|^6.0",
+ "symfony/yaml": "^5.4|^6.0"
},
"type": "symfony-bundle",
"autoload": {
@@ -8066,7 +8498,7 @@
"description": "Provides a tight integration of Twig into the Symfony full-stack framework",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/twig-bundle/tree/v4.4.41"
+ "source": "https://github.com/symfony/twig-bundle/tree/v6.3.12"
},
"funding": [
{
@@ -8082,69 +8514,59 @@
"type": "tidelift"
}
],
- "time": "2022-04-12T15:19:55+00:00"
+ "time": "2024-01-23T14:35:58+00:00"
},
{
"name": "symfony/validator",
- "version": "v4.4.44",
+ "version": "v6.3.12",
"source": {
"type": "git",
"url": "https://github.com/symfony/validator.git",
- "reference": "4b566c8d15f3490b0e72b42dd33ea8d2b4857cb1"
+ "reference": "5e3ac975cc36d22db979225c587eed3d1f172bb8"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/validator/zipball/4b566c8d15f3490b0e72b42dd33ea8d2b4857cb1",
- "reference": "4b566c8d15f3490b0e72b42dd33ea8d2b4857cb1",
+ "url": "https://api.github.com/repos/symfony/validator/zipball/5e3ac975cc36d22db979225c587eed3d1f172bb8",
+ "reference": "5e3ac975cc36d22db979225c587eed3d1f172bb8",
"shasum": ""
},
"require": {
- "php": ">=7.1.3",
+ "php": ">=8.1",
+ "symfony/deprecation-contracts": "^2.5|^3",
"symfony/polyfill-ctype": "~1.8",
"symfony/polyfill-mbstring": "~1.0",
- "symfony/polyfill-php80": "^1.16",
- "symfony/translation-contracts": "^1.1|^2"
+ "symfony/polyfill-php83": "^1.27",
+ "symfony/translation-contracts": "^2.5|^3"
},
"conflict": {
+ "doctrine/annotations": "<1.13",
"doctrine/lexer": "<1.1",
- "phpunit/phpunit": "<4.8.35|<5.4.3,>=5.0",
- "symfony/dependency-injection": "<3.4",
- "symfony/http-kernel": "<4.4",
- "symfony/intl": "<4.3",
- "symfony/translation": ">=5.0",
- "symfony/yaml": "<3.4"
+ "symfony/dependency-injection": "<5.4",
+ "symfony/expression-language": "<5.4",
+ "symfony/http-kernel": "<5.4",
+ "symfony/intl": "<5.4",
+ "symfony/property-info": "<5.4",
+ "symfony/translation": "<5.4.35|>=6.0,<6.3.12|>=6.4,<6.4.3",
+ "symfony/yaml": "<5.4"
},
"require-dev": {
- "doctrine/annotations": "^1.10.4",
- "doctrine/cache": "^1.0|^2.0",
- "egulias/email-validator": "^2.1.10|^3",
- "symfony/cache": "^3.4|^4.0|^5.0",
- "symfony/config": "^3.4|^4.0|^5.0",
- "symfony/dependency-injection": "^3.4|^4.0|^5.0",
- "symfony/expression-language": "^3.4|^4.0|^5.0",
- "symfony/http-client": "^4.3|^5.0",
- "symfony/http-foundation": "^4.1|^5.0",
- "symfony/http-kernel": "^4.4",
- "symfony/intl": "^4.3|^5.0",
- "symfony/mime": "^4.4|^5.0",
- "symfony/property-access": "^3.4|^4.0|^5.0",
- "symfony/property-info": "^3.4|^4.0|^5.0",
- "symfony/translation": "^4.2",
- "symfony/yaml": "^3.4|^4.0|^5.0"
- },
- "suggest": {
- "doctrine/annotations": "For using the annotation mapping. You will also need doctrine/cache.",
- "doctrine/cache": "For using the default cached annotation reader.",
- "egulias/email-validator": "Strict (RFC compliant) email validation",
- "psr/cache-implementation": "For using the mapping cache.",
- "symfony/config": "",
- "symfony/expression-language": "For using the Expression validator",
- "symfony/http-foundation": "",
- "symfony/intl": "",
- "symfony/property-access": "For accessing properties within comparison constraints",
- "symfony/property-info": "To automatically add NotNull and Type constraints",
- "symfony/translation": "For translating validation errors.",
- "symfony/yaml": ""
+ "doctrine/annotations": "^1.13|^2",
+ "egulias/email-validator": "^2.1.10|^3|^4",
+ "symfony/cache": "^5.4|^6.0",
+ "symfony/config": "^5.4|^6.0",
+ "symfony/console": "^5.4|^6.0",
+ "symfony/dependency-injection": "^5.4|^6.0",
+ "symfony/expression-language": "^5.4|^6.0",
+ "symfony/finder": "^5.4|^6.0",
+ "symfony/http-client": "^5.4|^6.0",
+ "symfony/http-foundation": "^5.4|^6.0",
+ "symfony/http-kernel": "^5.4|^6.0",
+ "symfony/intl": "^5.4|^6.0",
+ "symfony/mime": "^5.4|^6.0",
+ "symfony/property-access": "^5.4|^6.0",
+ "symfony/property-info": "^5.4|^6.0",
+ "symfony/translation": "^5.4.35|~6.3.12|^6.4.3",
+ "symfony/yaml": "^5.4|^6.0"
},
"type": "library",
"autoload": {
@@ -8172,7 +8594,7 @@
"description": "Provides tools to validate values",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/validator/tree/v4.4.44"
+ "source": "https://github.com/symfony/validator/tree/v6.3.12"
},
"funding": [
{
@@ -8188,42 +8610,37 @@
"type": "tidelift"
}
],
- "time": "2022-07-20T09:59:04+00:00"
+ "time": "2024-01-29T14:46:07+00:00"
},
{
"name": "symfony/var-dumper",
- "version": "v4.4.44",
+ "version": "v6.3.12",
"source": {
"type": "git",
"url": "https://github.com/symfony/var-dumper.git",
- "reference": "f19951007dae942cc79b979c1fe26bfdfbeb54ed"
+ "reference": "5791cc448c78a1a7879812d8073cc6690286e488"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/var-dumper/zipball/f19951007dae942cc79b979c1fe26bfdfbeb54ed",
- "reference": "f19951007dae942cc79b979c1fe26bfdfbeb54ed",
+ "url": "https://api.github.com/repos/symfony/var-dumper/zipball/5791cc448c78a1a7879812d8073cc6690286e488",
+ "reference": "5791cc448c78a1a7879812d8073cc6690286e488",
"shasum": ""
},
"require": {
- "php": ">=7.1.3",
- "symfony/polyfill-mbstring": "~1.0",
- "symfony/polyfill-php72": "~1.5",
- "symfony/polyfill-php80": "^1.16"
+ "php": ">=8.1",
+ "symfony/deprecation-contracts": "^2.5|^3",
+ "symfony/polyfill-mbstring": "~1.0"
},
"conflict": {
- "phpunit/phpunit": "<4.8.35|<5.4.3,>=5.0",
- "symfony/console": "<3.4"
+ "symfony/console": "<5.4"
},
"require-dev": {
"ext-iconv": "*",
- "symfony/console": "^3.4|^4.0|^5.0",
- "symfony/process": "^4.4|^5.0",
- "twig/twig": "^1.43|^2.13|^3.0.4"
- },
- "suggest": {
- "ext-iconv": "To convert non-UTF-8 strings to UTF-8 (or symfony/polyfill-iconv in case ext-iconv cannot be used).",
- "ext-intl": "To show region name in time zone dump",
- "symfony/console": "To use the ServerDumpCommand and/or the bin/var-dump-server script"
+ "symfony/console": "^5.4|^6.0",
+ "symfony/http-kernel": "^5.4|^6.0",
+ "symfony/process": "^5.4|^6.0",
+ "symfony/uid": "^5.4|^6.0",
+ "twig/twig": "^2.13|^3.0.4"
},
"bin": [
"Resources/bin/var-dump-server"
@@ -8261,7 +8678,7 @@
"dump"
],
"support": {
- "source": "https://github.com/symfony/var-dumper/tree/v4.4.44"
+ "source": "https://github.com/symfony/var-dumper/tree/v6.3.12"
},
"funding": [
{
@@ -8277,28 +8694,27 @@
"type": "tidelift"
}
],
- "time": "2022-07-20T09:59:04+00:00"
+ "time": "2024-01-23T16:21:43+00:00"
},
{
"name": "symfony/var-exporter",
- "version": "v4.4.43",
+ "version": "v6.3.12",
"source": {
"type": "git",
"url": "https://github.com/symfony/var-exporter.git",
- "reference": "4a7a3a3d55c471d396e6d28011368b7b83cb518b"
+ "reference": "ea6fe0e7d188f4b34c28a00d3f9a58ee33801a4b"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/var-exporter/zipball/4a7a3a3d55c471d396e6d28011368b7b83cb518b",
- "reference": "4a7a3a3d55c471d396e6d28011368b7b83cb518b",
+ "url": "https://api.github.com/repos/symfony/var-exporter/zipball/ea6fe0e7d188f4b34c28a00d3f9a58ee33801a4b",
+ "reference": "ea6fe0e7d188f4b34c28a00d3f9a58ee33801a4b",
"shasum": ""
},
"require": {
- "php": ">=7.1.3",
- "symfony/polyfill-php80": "^1.16"
+ "php": ">=8.1"
},
"require-dev": {
- "symfony/var-dumper": "^4.4.9|^5.0.9"
+ "symfony/var-dumper": "^5.4|^6.0"
},
"type": "library",
"autoload": {
@@ -8331,10 +8747,12 @@
"export",
"hydrate",
"instantiate",
+ "lazy-loading",
+ "proxy",
"serialize"
],
"support": {
- "source": "https://github.com/symfony/var-exporter/tree/v4.4.43"
+ "source": "https://github.com/symfony/var-exporter/tree/v6.3.12"
},
"funding": [
{
@@ -8350,40 +8768,34 @@
"type": "tidelift"
}
],
- "time": "2022-05-27T11:44:32+00:00"
+ "time": "2024-01-23T14:35:58+00:00"
},
{
"name": "symfony/web-link",
- "version": "v4.4.37",
+ "version": "v6.3.12",
"source": {
"type": "git",
"url": "https://github.com/symfony/web-link.git",
- "reference": "ab13621fd0c0119ad9ebc7179be7c5a1fc6a542d"
+ "reference": "0bc29a164b8c9c683d5eb0f839762c055d01e42e"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/web-link/zipball/ab13621fd0c0119ad9ebc7179be7c5a1fc6a542d",
- "reference": "ab13621fd0c0119ad9ebc7179be7c5a1fc6a542d",
+ "url": "https://api.github.com/repos/symfony/web-link/zipball/0bc29a164b8c9c683d5eb0f839762c055d01e42e",
+ "reference": "0bc29a164b8c9c683d5eb0f839762c055d01e42e",
"shasum": ""
},
"require": {
- "php": ">=7.1.3",
- "psr/link": "^1.0",
- "symfony/polyfill-php72": "^1.5",
- "symfony/polyfill-php80": "^1.16"
+ "php": ">=8.1",
+ "psr/link": "^1.1|^2.0"
},
"conflict": {
- "symfony/http-kernel": "<4.3"
+ "symfony/http-kernel": "<5.4"
},
"provide": {
- "psr/link-implementation": "1.0"
+ "psr/link-implementation": "1.0|2.0"
},
"require-dev": {
- "symfony/http-foundation": "^4.4|^5.0",
- "symfony/http-kernel": "^4.3|^5.0"
- },
- "suggest": {
- "symfony/http-kernel": ""
+ "symfony/http-kernel": "^5.4|^6.0"
},
"type": "library",
"autoload": {
@@ -8423,7 +8835,7 @@
"push"
],
"support": {
- "source": "https://github.com/symfony/web-link/tree/v4.4.37"
+ "source": "https://github.com/symfony/web-link/tree/v6.3.12"
},
"funding": [
{
@@ -8439,35 +8851,36 @@
"type": "tidelift"
}
],
- "time": "2022-01-02T09:41:36+00:00"
+ "time": "2024-01-23T14:35:58+00:00"
},
{
"name": "symfony/yaml",
- "version": "v4.4.44",
+ "version": "v6.3.12",
"source": {
"type": "git",
"url": "https://github.com/symfony/yaml.git",
- "reference": "c2b28c10fb3b7ac67bafa7b8f952cd83f35acde2"
+ "reference": "8ab9bb61e9b862c9b481af745ff163bc5e5e6246"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/yaml/zipball/c2b28c10fb3b7ac67bafa7b8f952cd83f35acde2",
- "reference": "c2b28c10fb3b7ac67bafa7b8f952cd83f35acde2",
+ "url": "https://api.github.com/repos/symfony/yaml/zipball/8ab9bb61e9b862c9b481af745ff163bc5e5e6246",
+ "reference": "8ab9bb61e9b862c9b481af745ff163bc5e5e6246",
"shasum": ""
},
"require": {
- "php": ">=7.1.3",
- "symfony/polyfill-ctype": "~1.8"
+ "php": ">=8.1",
+ "symfony/deprecation-contracts": "^2.5|^3",
+ "symfony/polyfill-ctype": "^1.8"
},
"conflict": {
- "symfony/console": "<3.4"
+ "symfony/console": "<5.4"
},
"require-dev": {
- "symfony/console": "^3.4|^4.0|^5.0"
- },
- "suggest": {
- "symfony/console": "For validating YAML files using the lint command"
+ "symfony/console": "^5.4|^6.0"
},
+ "bin": [
+ "Resources/bin/yaml-lint"
+ ],
"type": "library",
"autoload": {
"psr-4": {
@@ -8494,7 +8907,7 @@
"description": "Loads and dumps YAML files",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/yaml/tree/v4.4.44"
+ "source": "https://github.com/symfony/yaml/tree/v6.3.12"
},
"funding": [
{
@@ -8510,7 +8923,7 @@
"type": "tidelift"
}
],
- "time": "2022-06-27T13:16:42+00:00"
+ "time": "2024-01-23T14:35:58+00:00"
},
{
"name": "tetranz/select2entity-bundle",
@@ -8571,27 +8984,27 @@
},
{
"name": "twig/extra-bundle",
- "version": "v3.4.0",
+ "version": "v3.8.0",
"source": {
"type": "git",
"url": "https://github.com/twigphp/twig-extra-bundle.git",
- "reference": "2e58256b0e9fe52f30149347c0547e4633304765"
+ "reference": "32807183753de0388c8e59f7ac2d13bb47311140"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/twigphp/twig-extra-bundle/zipball/2e58256b0e9fe52f30149347c0547e4633304765",
- "reference": "2e58256b0e9fe52f30149347c0547e4633304765",
+ "url": "https://api.github.com/repos/twigphp/twig-extra-bundle/zipball/32807183753de0388c8e59f7ac2d13bb47311140",
+ "reference": "32807183753de0388c8e59f7ac2d13bb47311140",
"shasum": ""
},
"require": {
"php": ">=7.2.5",
- "symfony/framework-bundle": "^4.4|^5.0|^6.0",
- "symfony/twig-bundle": "^4.4|^5.0|^6.0",
- "twig/twig": "^2.7|^3.0"
+ "symfony/framework-bundle": "^5.4|^6.0|^7.0",
+ "symfony/twig-bundle": "^5.4|^6.0|^7.0",
+ "twig/twig": "^3.0"
},
"require-dev": {
"league/commonmark": "^1.0|^2.0",
- "symfony/phpunit-bridge": "^4.4.9|^5.0.9|^6.0",
+ "symfony/phpunit-bridge": "^6.4|^7.0",
"twig/cache-extra": "^3.0",
"twig/cssinliner-extra": "^2.12|^3.0",
"twig/html-extra": "^2.12|^3.0",
@@ -8601,11 +9014,6 @@
"twig/string-extra": "^2.12|^3.0"
},
"type": "symfony-bundle",
- "extra": {
- "branch-alias": {
- "dev-master": "3.2-dev"
- }
- },
"autoload": {
"psr-4": {
"Twig\\Extra\\TwigExtraBundle\\": ""
@@ -8634,7 +9042,7 @@
"twig"
],
"support": {
- "source": "https://github.com/twigphp/twig-extra-bundle/tree/v3.4.0"
+ "source": "https://github.com/twigphp/twig-extra-bundle/tree/v3.8.0"
},
"funding": [
{
@@ -8646,36 +9054,31 @@
"type": "tidelift"
}
],
- "time": "2022-01-04T13:58:53+00:00"
+ "time": "2023-11-21T14:02:01+00:00"
},
{
"name": "twig/intl-extra",
- "version": "v3.4.2",
+ "version": "v3.8.0",
"source": {
"type": "git",
"url": "https://github.com/twigphp/intl-extra.git",
- "reference": "151e50fad9c7915bd56f0adf3f0cb3c47e6ed28a"
+ "reference": "7b3db67c700735f473a265a97e1adaeba3e6ca0c"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/twigphp/intl-extra/zipball/151e50fad9c7915bd56f0adf3f0cb3c47e6ed28a",
- "reference": "151e50fad9c7915bd56f0adf3f0cb3c47e6ed28a",
+ "url": "https://api.github.com/repos/twigphp/intl-extra/zipball/7b3db67c700735f473a265a97e1adaeba3e6ca0c",
+ "reference": "7b3db67c700735f473a265a97e1adaeba3e6ca0c",
"shasum": ""
},
"require": {
- "php": ">=7.1.3",
- "symfony/intl": "^4.4|^5.0|^6.0",
- "twig/twig": "^2.7|^3.0"
+ "php": ">=7.2.5",
+ "symfony/intl": "^5.4|^6.0|^7.0",
+ "twig/twig": "^3.0"
},
"require-dev": {
- "symfony/phpunit-bridge": "^4.4.9|^5.0.9|^6.0"
+ "symfony/phpunit-bridge": "^6.4|^7.0"
},
"type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "3.2-dev"
- }
- },
"autoload": {
"psr-4": {
"Twig\\Extra\\Intl\\": ""
@@ -8703,7 +9106,7 @@
"twig"
],
"support": {
- "source": "https://github.com/twigphp/intl-extra/tree/v3.4.2"
+ "source": "https://github.com/twigphp/intl-extra/tree/v3.8.0"
},
"funding": [
{
@@ -8715,37 +9118,32 @@
"type": "tidelift"
}
],
- "time": "2022-06-10T08:33:05+00:00"
+ "time": "2023-11-21T17:27:48+00:00"
},
{
"name": "twig/string-extra",
- "version": "v3.4.0",
+ "version": "v3.8.0",
"source": {
"type": "git",
"url": "https://github.com/twigphp/string-extra.git",
- "reference": "03608ae2e9c270a961e8cf1b75751e8635ad3e3c"
+ "reference": "b0c9037d96baff79abe368dc092a59b726517548"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/twigphp/string-extra/zipball/03608ae2e9c270a961e8cf1b75751e8635ad3e3c",
- "reference": "03608ae2e9c270a961e8cf1b75751e8635ad3e3c",
+ "url": "https://api.github.com/repos/twigphp/string-extra/zipball/b0c9037d96baff79abe368dc092a59b726517548",
+ "reference": "b0c9037d96baff79abe368dc092a59b726517548",
"shasum": ""
},
"require": {
"php": ">=7.2.5",
- "symfony/string": "^5.0|^6.0",
+ "symfony/string": "^5.4|^6.0|^7.0",
"symfony/translation-contracts": "^1.1|^2|^3",
- "twig/twig": "^2.7|^3.0"
+ "twig/twig": "^3.0"
},
"require-dev": {
- "symfony/phpunit-bridge": "^4.4.9|^5.0.9|^6.0"
+ "symfony/phpunit-bridge": "^6.4|^7.0"
},
"type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "3.2-dev"
- }
- },
"autoload": {
"psr-4": {
"Twig\\Extra\\String\\": ""
@@ -8775,7 +9173,7 @@
"unicode"
],
"support": {
- "source": "https://github.com/twigphp/string-extra/tree/v3.4.0"
+ "source": "https://github.com/twigphp/string-extra/tree/v3.8.0"
},
"funding": [
{
@@ -8787,38 +9185,41 @@
"type": "tidelift"
}
],
- "time": "2022-01-02T10:02:25+00:00"
+ "time": "2023-11-21T14:02:01+00:00"
},
{
"name": "twig/twig",
- "version": "v3.4.3",
+ "version": "v3.9.3",
"source": {
"type": "git",
"url": "https://github.com/twigphp/Twig.git",
- "reference": "c38fd6b0b7f370c198db91ffd02e23b517426b58"
+ "reference": "a842d75fed59cdbcbd3a3ad7fb9eb768fc350d58"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/twigphp/Twig/zipball/c38fd6b0b7f370c198db91ffd02e23b517426b58",
- "reference": "c38fd6b0b7f370c198db91ffd02e23b517426b58",
+ "url": "https://api.github.com/repos/twigphp/Twig/zipball/a842d75fed59cdbcbd3a3ad7fb9eb768fc350d58",
+ "reference": "a842d75fed59cdbcbd3a3ad7fb9eb768fc350d58",
"shasum": ""
},
"require": {
"php": ">=7.2.5",
+ "symfony/deprecation-contracts": "^2.5|^3",
"symfony/polyfill-ctype": "^1.8",
- "symfony/polyfill-mbstring": "^1.3"
+ "symfony/polyfill-mbstring": "^1.3",
+ "symfony/polyfill-php80": "^1.22"
},
"require-dev": {
- "psr/container": "^1.0",
- "symfony/phpunit-bridge": "^4.4.9|^5.0.9|^6.0"
+ "psr/container": "^1.0|^2.0",
+ "symfony/phpunit-bridge": "^5.4.9|^6.4|^7.0"
},
"type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "3.4-dev"
- }
- },
"autoload": {
+ "files": [
+ "src/Resources/core.php",
+ "src/Resources/debug.php",
+ "src/Resources/escaper.php",
+ "src/Resources/string_loader.php"
+ ],
"psr-4": {
"Twig\\": "src/"
}
@@ -8851,7 +9252,7 @@
],
"support": {
"issues": "https://github.com/twigphp/Twig/issues",
- "source": "https://github.com/twigphp/Twig/tree/v3.4.3"
+ "source": "https://github.com/twigphp/Twig/tree/v3.9.3"
},
"funding": [
{
@@ -8863,76 +9264,7 @@
"type": "tidelift"
}
],
- "time": "2022-09-28T08:42:51+00:00"
- },
- {
- "name": "ubermichael/nines",
- "version": "dev-4.x-up",
- "source": {
- "type": "git",
- "url": "https://github.com/ubermichael/nines-bundles.git",
- "reference": "7ca1e08f7e7c904e980a39f0f21226463fbba54d"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/ubermichael/nines-bundles/zipball/7ca1e08f7e7c904e980a39f0f21226463fbba54d",
- "reference": "7ca1e08f7e7c904e980a39f0f21226463fbba54d",
- "shasum": ""
- },
- "require": {
- "doctrine/cache": "^2.1",
- "doctrine/inflector": "^2.0",
- "doctrine/persistence": "^2.5",
- "egulias/email-validator": "^3.1",
- "ext-imagick": "*",
- "ext-json": "*",
- "guzzlehttp/guzzle": "^7.4",
- "knplabs/knp-menu-bundle": "^3.2",
- "knplabs/knp-paginator-bundle": "^5.8",
- "minimalcode/search": "^1.0",
- "nyholm/psr7": "^1.4",
- "php": ">=7.4.0",
- "sensio/framework-extra-bundle": "^5.1|^6.2",
- "solarium/solarium": "^6.0",
- "soundasleep/html2text": "^2.0",
- "twig/string-extra": "^3.0"
- },
- "require-dev": {
- "doctrine/doctrine-fixtures-bundle": "^3.4",
- "liip/test-fixtures-bundle": "^1.0.0",
- "symfony/browser-kit": "4.4.*",
- "symfony/css-selector": "4.4.*",
- "symfony/phpunit-bridge": "^5.0"
- },
- "type": "library",
- "autoload": {
- "psr-4": {
- "Nines\\BlogBundle\\": "BlogBundle",
- "Nines\\DublinCoreBundle\\": "DublinCoreBundle",
- "Nines\\EditorBundle\\": "EditorBundle",
- "Nines\\FeedbackBundle\\": "FeedbackBundle",
- "Nines\\MakerBundle\\": "MakerBundle",
- "Nines\\MediaBundle\\": "MediaBundle",
- "Nines\\SolrBundle\\": "SolrBundle",
- "Nines\\UserBundle\\": "UserBundle",
- "Nines\\UtilBundle\\": "UtilBundle"
- }
- },
- "license": [
- "gpl"
- ],
- "authors": [
- {
- "name": "Michael Joyce",
- "email": "ubermichael@gmail.com"
- }
- ],
- "description": "Some useful bundles.",
- "support": {
- "source": "https://github.com/ubermichael/nines-bundles/tree/4.x-up",
- "issues": "https://github.com/ubermichael/nines-bundles/issues"
- },
- "time": "2022-06-30T19:32:28+00:00"
+ "time": "2024-04-18T11:59:33+00:00"
},
{
"name": "webmozart/assert",
@@ -8996,30 +9328,30 @@
"packages-dev": [
{
"name": "composer/pcre",
- "version": "1.0.1",
+ "version": "3.1.3",
"source": {
"type": "git",
"url": "https://github.com/composer/pcre.git",
- "reference": "67a32d7d6f9f560b726ab25a061b38ff3a80c560"
+ "reference": "5b16e25a5355f1f3afdfc2f954a0a80aec4826a8"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/composer/pcre/zipball/67a32d7d6f9f560b726ab25a061b38ff3a80c560",
- "reference": "67a32d7d6f9f560b726ab25a061b38ff3a80c560",
+ "url": "https://api.github.com/repos/composer/pcre/zipball/5b16e25a5355f1f3afdfc2f954a0a80aec4826a8",
+ "reference": "5b16e25a5355f1f3afdfc2f954a0a80aec4826a8",
"shasum": ""
},
"require": {
- "php": "^5.3.2 || ^7.0 || ^8.0"
+ "php": "^7.4 || ^8.0"
},
"require-dev": {
"phpstan/phpstan": "^1.3",
"phpstan/phpstan-strict-rules": "^1.1",
- "symfony/phpunit-bridge": "^4.2 || ^5"
+ "symfony/phpunit-bridge": "^5"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "1.x-dev"
+ "dev-main": "3.x-dev"
}
},
"autoload": {
@@ -9047,7 +9379,7 @@
],
"support": {
"issues": "https://github.com/composer/pcre/issues",
- "source": "https://github.com/composer/pcre/tree/1.0.1"
+ "source": "https://github.com/composer/pcre/tree/3.1.3"
},
"funding": [
{
@@ -9063,20 +9395,20 @@
"type": "tidelift"
}
],
- "time": "2022-01-21T20:24:37+00:00"
+ "time": "2024-03-19T10:26:25+00:00"
},
{
"name": "composer/semver",
- "version": "3.3.2",
+ "version": "3.4.0",
"source": {
"type": "git",
"url": "https://github.com/composer/semver.git",
- "reference": "3953f23262f2bff1919fc82183ad9acb13ff62c9"
+ "reference": "35e8d0af4486141bc745f23a29cc2091eb624a32"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/composer/semver/zipball/3953f23262f2bff1919fc82183ad9acb13ff62c9",
- "reference": "3953f23262f2bff1919fc82183ad9acb13ff62c9",
+ "url": "https://api.github.com/repos/composer/semver/zipball/35e8d0af4486141bc745f23a29cc2091eb624a32",
+ "reference": "35e8d0af4486141bc745f23a29cc2091eb624a32",
"shasum": ""
},
"require": {
@@ -9126,9 +9458,9 @@
"versioning"
],
"support": {
- "irc": "irc://irc.freenode.org/composer",
+ "irc": "ircs://irc.libera.chat:6697/composer",
"issues": "https://github.com/composer/semver/issues",
- "source": "https://github.com/composer/semver/tree/3.3.2"
+ "source": "https://github.com/composer/semver/tree/3.4.0"
},
"funding": [
{
@@ -9144,31 +9476,31 @@
"type": "tidelift"
}
],
- "time": "2022-04-01T19:23:25+00:00"
+ "time": "2023-08-31T09:50:34+00:00"
},
{
"name": "composer/xdebug-handler",
- "version": "2.0.5",
+ "version": "3.0.5",
"source": {
"type": "git",
"url": "https://github.com/composer/xdebug-handler.git",
- "reference": "9e36aeed4616366d2b690bdce11f71e9178c579a"
+ "reference": "6c1925561632e83d60a44492e0b344cf48ab85ef"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/composer/xdebug-handler/zipball/9e36aeed4616366d2b690bdce11f71e9178c579a",
- "reference": "9e36aeed4616366d2b690bdce11f71e9178c579a",
+ "url": "https://api.github.com/repos/composer/xdebug-handler/zipball/6c1925561632e83d60a44492e0b344cf48ab85ef",
+ "reference": "6c1925561632e83d60a44492e0b344cf48ab85ef",
"shasum": ""
},
"require": {
- "composer/pcre": "^1",
- "php": "^5.3.2 || ^7.0 || ^8.0",
+ "composer/pcre": "^1 || ^2 || ^3",
+ "php": "^7.2.5 || ^8.0",
"psr/log": "^1 || ^2 || ^3"
},
"require-dev": {
"phpstan/phpstan": "^1.0",
"phpstan/phpstan-strict-rules": "^1.1",
- "symfony/phpunit-bridge": "^4.2 || ^5.0 || ^6.0"
+ "phpunit/phpunit": "^8.5 || ^9.6 || ^10.5"
},
"type": "library",
"autoload": {
@@ -9192,9 +9524,9 @@
"performance"
],
"support": {
- "irc": "irc://irc.freenode.org/composer",
+ "irc": "ircs://irc.libera.chat:6697/composer",
"issues": "https://github.com/composer/xdebug-handler/issues",
- "source": "https://github.com/composer/xdebug-handler/tree/2.0.5"
+ "source": "https://github.com/composer/xdebug-handler/tree/3.0.5"
},
"funding": [
{
@@ -9210,44 +9542,44 @@
"type": "tidelift"
}
],
- "time": "2022-02-24T20:20:32+00:00"
+ "time": "2024-05-06T16:37:16+00:00"
},
{
"name": "dama/doctrine-test-bundle",
- "version": "v6.7.5",
+ "version": "v7.3.0",
"source": {
"type": "git",
"url": "https://github.com/dmaicher/doctrine-test-bundle.git",
- "reference": "af6f8e8c56fcfdf2ae039b97607883961a14af9c"
+ "reference": "688eea6529ea894b83deada10c83662d7804f34b"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/dmaicher/doctrine-test-bundle/zipball/af6f8e8c56fcfdf2ae039b97607883961a14af9c",
- "reference": "af6f8e8c56fcfdf2ae039b97607883961a14af9c",
+ "url": "https://api.github.com/repos/dmaicher/doctrine-test-bundle/zipball/688eea6529ea894b83deada10c83662d7804f34b",
+ "reference": "688eea6529ea894b83deada10c83662d7804f34b",
"shasum": ""
},
"require": {
- "doctrine/dbal": "^2.9.3 || ^3.0",
- "doctrine/doctrine-bundle": "^1.11 || ^2.0",
+ "doctrine/dbal": "^3.3",
+ "doctrine/doctrine-bundle": "^2.2.2",
"ext-json": "*",
- "php": "^7.1 || ^8.0",
+ "php": "^7.3 || ^8.0",
"psr/cache": "^1.0 || ^2.0 || ^3.0",
- "symfony/cache": "^4.4 || ^5.3 || ^6.0",
- "symfony/framework-bundle": "^4.4 || ^5.3 || ^6.0"
+ "symfony/cache": "^5.4 || ^6.0",
+ "symfony/framework-bundle": "^5.4 || ^6.0"
},
"require-dev": {
"behat/behat": "^3.0",
"doctrine/cache": "^1.12",
"phpstan/phpstan": "^1.2",
- "phpunit/phpunit": "^7.0 || ^8.0 || ^9.0",
- "symfony/phpunit-bridge": "^5.3 || ^6.0",
- "symfony/process": "^4.4 || ^5.3 || ^6.0",
- "symfony/yaml": "^4.4 || ^5.3 || ^6.0"
+ "phpunit/phpunit": "^8.0 || ^9.0 || ^10.0",
+ "symfony/phpunit-bridge": "^6.0",
+ "symfony/process": "^5.4 || ^6.0",
+ "symfony/yaml": "^5.4 || ^6.0"
},
"type": "symfony-bundle",
"extra": {
"branch-alias": {
- "dev-master": "6.x-dev"
+ "dev-master": "7.x-dev"
}
},
"autoload": {
@@ -9275,168 +9607,46 @@
],
"support": {
"issues": "https://github.com/dmaicher/doctrine-test-bundle/issues",
- "source": "https://github.com/dmaicher/doctrine-test-bundle/tree/v6.7.5"
- },
- "time": "2022-02-08T16:00:51+00:00"
- },
- {
- "name": "deployer/deployer",
- "version": "v6.9.0",
- "source": {
- "type": "git",
- "url": "https://github.com/deployphp/deployer.git",
- "reference": "c4380effdc9f6d9c6ae549bb76f0a22bcb1d31d2"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/deployphp/deployer/zipball/c4380effdc9f6d9c6ae549bb76f0a22bcb1d31d2",
- "reference": "c4380effdc9f6d9c6ae549bb76f0a22bcb1d31d2",
- "shasum": ""
- },
- "require": {
- "deployer/phar-update": "~2.2",
- "php": "^7.2 || ^8.0",
- "pimple/pimple": "~3.0",
- "symfony/console": "~2.7|~3.0|~4.0|~5.0",
- "symfony/process": "~2.7|~3.0|~4.0|~5.0",
- "symfony/yaml": "~2.7|~3.0|~4.0|~5.0"
- },
- "require-dev": {
- "phpunit/phpunit": "^8"
- },
- "bin": [
- "bin/dep"
- ],
- "type": "library",
- "autoload": {
- "files": [
- "src/Support/helpers.php",
- "src/functions.php"
- ],
- "psr-4": {
- "Deployer\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Anton Medvedev",
- "email": "anton@medv.io"
- }
- ],
- "description": "Deployment Tool",
- "homepage": "https://deployer.org",
- "support": {
- "docs": "https://deployer.org/docs",
- "issues": "https://github.com/deployphp/deployer/issues",
- "source": "https://github.com/deployphp/deployer"
- },
- "funding": [
- {
- "url": "https://github.com/antonmedv",
- "type": "github"
- }
- ],
- "time": "2022-08-03T18:09:01+00:00"
- },
- {
- "name": "deployer/phar-update",
- "version": "v2.2.0",
- "source": {
- "type": "git",
- "url": "https://github.com/deployphp/phar-update.git",
- "reference": "9ad07422f2cd43a1382ee8e134bdcd3a374848e3"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/deployphp/phar-update/zipball/9ad07422f2cd43a1382ee8e134bdcd3a374848e3",
- "reference": "9ad07422f2cd43a1382ee8e134bdcd3a374848e3",
- "shasum": ""
- },
- "require": {
- "php": ">=5.3.3",
- "symfony/console": "~2.7|~3.0|~4.0|~5.0"
- },
- "require-dev": {
- "mikey179/vfsstream": "1.1.0",
- "phpunit/phpunit": "3.7.*",
- "symfony/process": "~2.7|~3.0|~4.0|~5.0"
- },
- "type": "library",
- "autoload": {
- "psr-4": {
- "Deployer\\Component\\PharUpdate\\": "src/",
- "Deployer\\Component\\PHPUnit\\": "src/PHPUnit/",
- "Deployer\\Component\\Version\\": "src/Version/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Kevin Herrera",
- "email": "kevin@herrera.io",
- "homepage": "http://kevin.herrera.io"
- },
- {
- "name": "Anton Medvedev",
- "email": "anton@medv.io",
- "homepage": "https://medv.io"
- }
- ],
- "description": "Integrates Phar Update to Symfony Console.",
- "homepage": "https://github.com/deployphp/phar-update",
- "keywords": [
- "console",
- "phar",
- "update"
- ],
- "support": {
- "issues": "https://github.com/deployphp/phar-update/issues",
- "source": "https://github.com/deployphp/phar-update/tree/v2.2.0"
+ "source": "https://github.com/dmaicher/doctrine-test-bundle/tree/v7.3.0"
},
- "abandoned": true,
- "time": "2019-12-12T13:45:57+00:00"
+ "time": "2023-11-27T21:29:42+00:00"
},
{
"name": "doctrine/data-fixtures",
- "version": "1.5.3",
+ "version": "1.7.0",
"source": {
"type": "git",
"url": "https://github.com/doctrine/data-fixtures.git",
- "reference": "ba37bfb776de763c5bf04a36d074cd5f5a083c42"
+ "reference": "bbcb74f2ac6dbe81a14b3c3687d7623490a0448f"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/doctrine/data-fixtures/zipball/ba37bfb776de763c5bf04a36d074cd5f5a083c42",
- "reference": "ba37bfb776de763c5bf04a36d074cd5f5a083c42",
+ "url": "https://api.github.com/repos/doctrine/data-fixtures/zipball/bbcb74f2ac6dbe81a14b3c3687d7623490a0448f",
+ "reference": "bbcb74f2ac6dbe81a14b3c3687d7623490a0448f",
"shasum": ""
},
"require": {
- "doctrine/common": "^2.13|^3.0",
- "doctrine/persistence": "^1.3.3|^2.0|^3.0",
- "php": "^7.2 || ^8.0"
+ "doctrine/deprecations": "^0.5.3 || ^1.0",
+ "doctrine/persistence": "^2.0|^3.0",
+ "php": "^7.4 || ^8.0"
},
"conflict": {
- "doctrine/dbal": "<2.13",
+ "doctrine/dbal": "<3.5 || >=5",
+ "doctrine/orm": "<2.14 || >=4",
"doctrine/phpcr-odm": "<1.3.0"
},
"require-dev": {
- "doctrine/coding-standard": "^9.0",
- "doctrine/dbal": "^2.13 || ^3.0",
+ "doctrine/annotations": "^1.12 || ^2",
+ "doctrine/coding-standard": "^12",
+ "doctrine/dbal": "^3.5 || ^4",
"doctrine/mongodb-odm": "^1.3.0 || ^2.0.0",
- "doctrine/orm": "^2.7.0",
+ "doctrine/orm": "^2.14 || ^3",
"ext-sqlite3": "*",
- "jangregor/phpstan-prophecy": "^1",
- "phpstan/phpstan": "^1.5",
- "phpunit/phpunit": "^8.5 || ^9.5",
- "symfony/cache": "^5.0 || ^6.0",
- "vimeo/psalm": "^4.10"
+ "phpstan/phpstan": "^1.10",
+ "phpunit/phpunit": "^9.6.13 || ^10.4.2",
+ "symfony/cache": "^5.4 || ^6.3 || ^7",
+ "symfony/var-exporter": "^5.4 || ^6.3 || ^7",
+ "vimeo/psalm": "^5.9"
},
"suggest": {
"alcaeus/mongo-php-adapter": "For using MongoDB ODM 1.3 with PHP 7 (deprecated)",
@@ -9447,7 +9657,7 @@
"type": "library",
"autoload": {
"psr-4": {
- "Doctrine\\Common\\DataFixtures\\": "lib/Doctrine/Common/DataFixtures"
+ "Doctrine\\Common\\DataFixtures\\": "src"
}
},
"notification-url": "https://packagist.org/downloads/",
@@ -9467,7 +9677,7 @@
],
"support": {
"issues": "https://github.com/doctrine/data-fixtures/issues",
- "source": "https://github.com/doctrine/data-fixtures/tree/1.5.3"
+ "source": "https://github.com/doctrine/data-fixtures/tree/1.7.0"
},
"funding": [
{
@@ -9483,45 +9693,49 @@
"type": "tidelift"
}
],
- "time": "2022-04-19T10:01:44+00:00"
+ "time": "2023-11-24T11:18:31+00:00"
},
{
"name": "doctrine/doctrine-fixtures-bundle",
- "version": "3.4.2",
+ "version": "3.6.0",
"source": {
"type": "git",
"url": "https://github.com/doctrine/DoctrineFixturesBundle.git",
- "reference": "601988c5b46dbd20a0f886f967210aba378a6fd5"
+ "reference": "87f5d53708a3855aa018bf0a00d0d4b0ef58a956"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/doctrine/DoctrineFixturesBundle/zipball/601988c5b46dbd20a0f886f967210aba378a6fd5",
- "reference": "601988c5b46dbd20a0f886f967210aba378a6fd5",
+ "url": "https://api.github.com/repos/doctrine/DoctrineFixturesBundle/zipball/87f5d53708a3855aa018bf0a00d0d4b0ef58a956",
+ "reference": "87f5d53708a3855aa018bf0a00d0d4b0ef58a956",
"shasum": ""
},
"require": {
"doctrine/data-fixtures": "^1.3",
- "doctrine/doctrine-bundle": "^1.11|^2.0",
- "doctrine/orm": "^2.6.0",
- "doctrine/persistence": "^1.3.7|^2.0|^3.0",
- "php": "^7.1 || ^8.0",
- "symfony/config": "^3.4|^4.3|^5.0|^6.0",
- "symfony/console": "^3.4|^4.3|^5.0|^6.0",
- "symfony/dependency-injection": "^3.4.47|^4.3|^5.0|^6.0",
- "symfony/doctrine-bridge": "^3.4|^4.1|^5.0|^6.0",
- "symfony/http-kernel": "^3.4|^4.3|^5.0|^6.0"
+ "doctrine/doctrine-bundle": "^2.2",
+ "doctrine/orm": "^2.14.0 || ^3.0",
+ "doctrine/persistence": "^2.4|^3.0",
+ "php": "^7.4 || ^8.0",
+ "symfony/config": "^5.4|^6.0|^7.0",
+ "symfony/console": "^5.4|^6.0|^7.0",
+ "symfony/dependency-injection": "^5.4|^6.0|^7.0",
+ "symfony/deprecation-contracts": "^2.1|^3",
+ "symfony/doctrine-bridge": "^5.4|^6.0|^7.0",
+ "symfony/http-kernel": "^5.4|^6.0|^7.0"
+ },
+ "conflict": {
+ "doctrine/dbal": "< 3"
},
"require-dev": {
- "doctrine/coding-standard": "^9",
- "phpstan/phpstan": "^1.4.10",
- "phpunit/phpunit": "^7.5.20 || ^8.5.26 || ^9.5.20",
- "symfony/phpunit-bridge": "^6.0.8",
- "vimeo/psalm": "^4.22"
+ "doctrine/coding-standard": "^12",
+ "phpstan/phpstan": "^1.10.39",
+ "phpunit/phpunit": "^9.6.13",
+ "symfony/phpunit-bridge": "^6.3.6",
+ "vimeo/psalm": "^5.15"
},
"type": "symfony-bundle",
"autoload": {
"psr-4": {
- "Doctrine\\Bundle\\FixturesBundle\\": ""
+ "Doctrine\\Bundle\\FixturesBundle\\": "src"
}
},
"notification-url": "https://packagist.org/downloads/",
@@ -9550,7 +9764,7 @@
],
"support": {
"issues": "https://github.com/doctrine/DoctrineFixturesBundle/issues",
- "source": "https://github.com/doctrine/DoctrineFixturesBundle/tree/3.4.2"
+ "source": "https://github.com/doctrine/DoctrineFixturesBundle/tree/3.6.0"
},
"funding": [
{
@@ -9566,56 +9780,54 @@
"type": "tidelift"
}
],
- "time": "2022-04-28T17:58:29+00:00"
+ "time": "2024-05-02T18:06:53+00:00"
},
{
"name": "friendsofphp/php-cs-fixer",
- "version": "v3.4.0",
+ "version": "v3.56.0",
"source": {
"type": "git",
- "url": "https://github.com/FriendsOfPHP/PHP-CS-Fixer.git",
- "reference": "47177af1cfb9dab5d1cc4daf91b7179c2efe7fad"
+ "url": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer.git",
+ "reference": "4429303e62a4ce583ddfe64ff5c34c76bcf74931"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/FriendsOfPHP/PHP-CS-Fixer/zipball/47177af1cfb9dab5d1cc4daf91b7179c2efe7fad",
- "reference": "47177af1cfb9dab5d1cc4daf91b7179c2efe7fad",
+ "url": "https://api.github.com/repos/PHP-CS-Fixer/PHP-CS-Fixer/zipball/4429303e62a4ce583ddfe64ff5c34c76bcf74931",
+ "reference": "4429303e62a4ce583ddfe64ff5c34c76bcf74931",
"shasum": ""
},
"require": {
- "composer/semver": "^3.2",
- "composer/xdebug-handler": "^2.0",
- "doctrine/annotations": "^1.12",
+ "composer/semver": "^3.4",
+ "composer/xdebug-handler": "^3.0.3",
+ "ext-filter": "*",
"ext-json": "*",
"ext-tokenizer": "*",
- "php": "^7.2.5 || ^8.0",
- "php-cs-fixer/diff": "^2.0",
- "symfony/console": "^4.4.20 || ^5.1.3 || ^6.0",
- "symfony/event-dispatcher": "^4.4.20 || ^5.0 || ^6.0",
- "symfony/filesystem": "^4.4.20 || ^5.0 || ^6.0",
- "symfony/finder": "^4.4.20 || ^5.0 || ^6.0",
- "symfony/options-resolver": "^4.4.20 || ^5.0 || ^6.0",
- "symfony/polyfill-mbstring": "^1.23",
- "symfony/polyfill-php80": "^1.23",
- "symfony/polyfill-php81": "^1.23",
- "symfony/process": "^4.4.20 || ^5.0 || ^6.0",
- "symfony/stopwatch": "^4.4.20 || ^5.0 || ^6.0"
+ "php": "^7.4 || ^8.0",
+ "sebastian/diff": "^4.0 || ^5.0 || ^6.0",
+ "symfony/console": "^5.4 || ^6.0 || ^7.0",
+ "symfony/event-dispatcher": "^5.4 || ^6.0 || ^7.0",
+ "symfony/filesystem": "^5.4 || ^6.0 || ^7.0",
+ "symfony/finder": "^5.4 || ^6.0 || ^7.0",
+ "symfony/options-resolver": "^5.4 || ^6.0 || ^7.0",
+ "symfony/polyfill-mbstring": "^1.28",
+ "symfony/polyfill-php80": "^1.28",
+ "symfony/polyfill-php81": "^1.28",
+ "symfony/process": "^5.4 || ^6.0 || ^7.0",
+ "symfony/stopwatch": "^5.4 || ^6.0 || ^7.0"
},
"require-dev": {
+ "facile-it/paraunit": "^1.3 || ^2.0",
+ "infection/infection": "^0.27.11",
"justinrainbow/json-schema": "^5.2",
- "keradus/cli-executor": "^1.5",
- "mikey179/vfsstream": "^1.6.8",
- "php-coveralls/php-coveralls": "^2.5.2",
+ "keradus/cli-executor": "^2.1",
+ "mikey179/vfsstream": "^1.6.11",
+ "php-coveralls/php-coveralls": "^2.7",
"php-cs-fixer/accessible-object": "^1.1",
- "php-cs-fixer/phpunit-constraint-isidenticalstring": "^1.2",
- "php-cs-fixer/phpunit-constraint-xmlmatchesxsd": "^1.2.1",
- "phpspec/prophecy": "^1.15",
- "phpspec/prophecy-phpunit": "^1.1 || ^2.0",
- "phpunit/phpunit": "^8.5.21 || ^9.5",
- "phpunitgoodpractices/polyfill": "^1.5",
- "phpunitgoodpractices/traits": "^1.9.1",
- "symfony/phpunit-bridge": "^5.2.4 || ^6.0",
- "symfony/yaml": "^4.4.20 || ^5.0 || ^6.0"
+ "php-cs-fixer/phpunit-constraint-isidenticalstring": "^1.4",
+ "php-cs-fixer/phpunit-constraint-xmlmatchesxsd": "^1.4",
+ "phpunit/phpunit": "^9.6 || ^10.5.5 || ^11.0.2",
+ "symfony/var-dumper": "^5.4 || ^6.0 || ^7.0",
+ "symfony/yaml": "^5.4 || ^6.0 || ^7.0"
},
"suggest": {
"ext-dom": "For handling output formats in XML",
@@ -9645,9 +9857,15 @@
}
],
"description": "A tool to automatically fix PHP code style",
+ "keywords": [
+ "Static code analysis",
+ "fixer",
+ "standards",
+ "static analysis"
+ ],
"support": {
- "issues": "https://github.com/FriendsOfPHP/PHP-CS-Fixer/issues",
- "source": "https://github.com/FriendsOfPHP/PHP-CS-Fixer/tree/v3.4.0"
+ "issues": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues",
+ "source": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/tree/v3.56.0"
},
"funding": [
{
@@ -9655,30 +9873,36 @@
"type": "github"
}
],
- "time": "2021-12-11T16:25:08+00:00"
+ "time": "2024-05-07T15:50:05+00:00"
},
{
"name": "friendsoftwig/twigcs",
- "version": "v5.1.0",
+ "version": "6.4.0",
"source": {
"type": "git",
"url": "https://github.com/friendsoftwig/twigcs.git",
- "reference": "c82b078e9c199bc57375e557fb888b04f53420b2"
+ "reference": "954e1af488d649cf329f35deaedf2b8fe2cf4b56"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/friendsoftwig/twigcs/zipball/c82b078e9c199bc57375e557fb888b04f53420b2",
- "reference": "c82b078e9c199bc57375e557fb888b04f53420b2",
+ "url": "https://api.github.com/repos/friendsoftwig/twigcs/zipball/954e1af488d649cf329f35deaedf2b8fe2cf4b56",
+ "reference": "954e1af488d649cf329f35deaedf2b8fe2cf4b56",
"shasum": ""
},
"require": {
- "php": "^7.2 || ^8.0",
- "symfony/console": "^3.4 || ^4.3 || ^5.0",
- "symfony/filesystem": "^3.4 || ^4.3 || ^5.0",
- "symfony/finder": "^3.4 || ^4.3 || ^5.0"
+ "ext-ctype": "*",
+ "ext-hash": "*",
+ "ext-json": "*",
+ "ext-mbstring": "*",
+ "ext-simplexml": "*",
+ "php": "~8.0.0 || ~8.1.0 || ~8.2.0 || ~8.3.0",
+ "symfony/console": "^4.4 || ^5.3 || ^6.0 || ^7.0",
+ "symfony/filesystem": "^4.4 || ^5.3 || ^6.0 || ^7.0",
+ "symfony/finder": "^4.4 || ^5.3 || ^6.0 || ^7.0"
},
"require-dev": {
- "phpunit/phpunit": "^8.0 || ^9.0"
+ "phpunit/phpunit": "^9.6.15",
+ "symfony/phpunit-bridge": "^7.0.1"
},
"bin": [
"bin/twigcs"
@@ -9702,22 +9926,22 @@
"description": "Checkstyle automation for Twig",
"support": {
"issues": "https://github.com/friendsoftwig/twigcs/issues",
- "source": "https://github.com/friendsoftwig/twigcs/tree/v5.1.0"
+ "source": "https://github.com/friendsoftwig/twigcs/tree/6.4.0"
},
- "time": "2021-09-21T21:04:19+00:00"
+ "time": "2023-12-05T07:36:35+00:00"
},
{
"name": "myclabs/deep-copy",
- "version": "1.11.0",
+ "version": "1.11.1",
"source": {
"type": "git",
"url": "https://github.com/myclabs/DeepCopy.git",
- "reference": "14daed4296fae74d9e3201d2c4925d1acb7aa614"
+ "reference": "7284c22080590fb39f2ffa3e9057f10a4ddd0e0c"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/14daed4296fae74d9e3201d2c4925d1acb7aa614",
- "reference": "14daed4296fae74d9e3201d2c4925d1acb7aa614",
+ "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/7284c22080590fb39f2ffa3e9057f10a4ddd0e0c",
+ "reference": "7284c22080590fb39f2ffa3e9057f10a4ddd0e0c",
"shasum": ""
},
"require": {
@@ -9755,7 +9979,7 @@
],
"support": {
"issues": "https://github.com/myclabs/DeepCopy/issues",
- "source": "https://github.com/myclabs/DeepCopy/tree/1.11.0"
+ "source": "https://github.com/myclabs/DeepCopy/tree/1.11.1"
},
"funding": [
{
@@ -9763,29 +9987,31 @@
"type": "tidelift"
}
],
- "time": "2022-03-03T13:19:32+00:00"
+ "time": "2023-03-08T13:26:56+00:00"
},
{
"name": "nikic/php-parser",
- "version": "v4.14.0",
+ "version": "v5.0.2",
"source": {
"type": "git",
"url": "https://github.com/nikic/PHP-Parser.git",
- "reference": "34bea19b6e03d8153165d8f30bba4c3be86184c1"
+ "reference": "139676794dc1e9231bf7bcd123cfc0c99182cb13"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/34bea19b6e03d8153165d8f30bba4c3be86184c1",
- "reference": "34bea19b6e03d8153165d8f30bba4c3be86184c1",
+ "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/139676794dc1e9231bf7bcd123cfc0c99182cb13",
+ "reference": "139676794dc1e9231bf7bcd123cfc0c99182cb13",
"shasum": ""
},
"require": {
+ "ext-ctype": "*",
+ "ext-json": "*",
"ext-tokenizer": "*",
- "php": ">=7.0"
+ "php": ">=7.4"
},
"require-dev": {
"ircmaxell/php-yacc": "^0.0.7",
- "phpunit/phpunit": "^6.5 || ^7.0 || ^8.0 || ^9.0"
+ "phpunit/phpunit": "^7.0 || ^8.0 || ^9.0"
},
"bin": [
"bin/php-parse"
@@ -9793,7 +10019,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "4.9-dev"
+ "dev-master": "5.0-dev"
}
},
"autoload": {
@@ -9817,26 +10043,27 @@
],
"support": {
"issues": "https://github.com/nikic/PHP-Parser/issues",
- "source": "https://github.com/nikic/PHP-Parser/tree/v4.14.0"
+ "source": "https://github.com/nikic/PHP-Parser/tree/v5.0.2"
},
- "time": "2022-05-31T20:59:12+00:00"
+ "time": "2024-03-05T20:51:40+00:00"
},
{
"name": "phar-io/manifest",
- "version": "2.0.3",
+ "version": "2.0.4",
"source": {
"type": "git",
"url": "https://github.com/phar-io/manifest.git",
- "reference": "97803eca37d319dfa7826cc2437fc020857acb53"
+ "reference": "54750ef60c58e43759730615a392c31c80e23176"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/phar-io/manifest/zipball/97803eca37d319dfa7826cc2437fc020857acb53",
- "reference": "97803eca37d319dfa7826cc2437fc020857acb53",
+ "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",
@@ -9874,84 +10101,35 @@
"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.3"
- },
- "time": "2021-07-20T11:28:43+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",
+ "description": "Component for reading phar.io manifest information from a PHP Archive (PHAR)",
"support": {
- "issues": "https://github.com/phar-io/version/issues",
- "source": "https://github.com/phar-io/version/tree/3.2.1"
+ "issues": "https://github.com/phar-io/manifest/issues",
+ "source": "https://github.com/phar-io/manifest/tree/2.0.4"
},
- "time": "2022-02-21T01:04:05+00:00"
+ "funding": [
+ {
+ "url": "https://github.com/theseer",
+ "type": "github"
+ }
+ ],
+ "time": "2024-03-03T12:33:53+00:00"
},
{
- "name": "php-cs-fixer/diff",
- "version": "v2.0.2",
+ "name": "phar-io/version",
+ "version": "3.2.1",
"source": {
"type": "git",
- "url": "https://github.com/PHP-CS-Fixer/diff.git",
- "reference": "29dc0d507e838c4580d018bd8b5cb412474f7ec3"
+ "url": "https://github.com/phar-io/version.git",
+ "reference": "4f7fd7836c6f332bb2933569e566a0d6c4cbed74"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/PHP-CS-Fixer/diff/zipball/29dc0d507e838c4580d018bd8b5cb412474f7ec3",
- "reference": "29dc0d507e838c4580d018bd8b5cb412474f7ec3",
+ "url": "https://api.github.com/repos/phar-io/version/zipball/4f7fd7836c6f332bb2933569e566a0d6c4cbed74",
+ "reference": "4f7fd7836c6f332bb2933569e566a0d6c4cbed74",
"shasum": ""
},
"require": {
- "php": "^5.6 || ^7.0 || ^8.0"
- },
- "require-dev": {
- "phpunit/phpunit": "^5.7.23 || ^6.4.3 || ^7.0",
- "symfony/process": "^3.3"
+ "php": "^7.2 || ^8.0"
},
"type": "library",
"autoload": {
@@ -9965,104 +10143,40 @@
],
"authors": [
{
- "name": "Sebastian Bergmann",
- "email": "sebastian@phpunit.de"
+ "name": "Arne Blankerts",
+ "email": "arne@blankerts.de",
+ "role": "Developer"
},
{
- "name": "Kore Nordmann",
- "email": "mail@kore-nordmann.de"
- }
- ],
- "description": "sebastian/diff v3 backport support for PHP 5.6+",
- "homepage": "https://github.com/PHP-CS-Fixer",
- "keywords": [
- "diff"
- ],
- "support": {
- "issues": "https://github.com/PHP-CS-Fixer/diff/issues",
- "source": "https://github.com/PHP-CS-Fixer/diff/tree/v2.0.2"
- },
- "time": "2020-10-14T08:32:19+00:00"
- },
- {
- "name": "phpspec/prophecy",
- "version": "v1.15.0",
- "source": {
- "type": "git",
- "url": "https://github.com/phpspec/prophecy.git",
- "reference": "bbcd7380b0ebf3961ee21409db7b38bc31d69a13"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/phpspec/prophecy/zipball/bbcd7380b0ebf3961ee21409db7b38bc31d69a13",
- "reference": "bbcd7380b0ebf3961ee21409db7b38bc31d69a13",
- "shasum": ""
- },
- "require": {
- "doctrine/instantiator": "^1.2",
- "php": "^7.2 || ~8.0, <8.2",
- "phpdocumentor/reflection-docblock": "^5.2",
- "sebastian/comparator": "^3.0 || ^4.0",
- "sebastian/recursion-context": "^3.0 || ^4.0"
- },
- "require-dev": {
- "phpspec/phpspec": "^6.0 || ^7.0",
- "phpunit/phpunit": "^8.0 || ^9.0"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.x-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "Prophecy\\": "src/Prophecy"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Konstantin Kudryashov",
- "email": "ever.zet@gmail.com",
- "homepage": "http://everzet.com"
+ "name": "Sebastian Heuer",
+ "email": "sebastian@phpeople.de",
+ "role": "Developer"
},
{
- "name": "Marcello Duarte",
- "email": "marcello.duarte@gmail.com"
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "Developer"
}
],
- "description": "Highly opinionated mocking framework for PHP 5.3+",
- "homepage": "https://github.com/phpspec/prophecy",
- "keywords": [
- "Double",
- "Dummy",
- "fake",
- "mock",
- "spy",
- "stub"
- ],
+ "description": "Library for handling version information and constraints",
"support": {
- "issues": "https://github.com/phpspec/prophecy/issues",
- "source": "https://github.com/phpspec/prophecy/tree/v1.15.0"
+ "issues": "https://github.com/phar-io/version/issues",
+ "source": "https://github.com/phar-io/version/tree/3.2.1"
},
- "time": "2021-12-08T12:19:24+00:00"
+ "time": "2022-02-21T01:04:05+00:00"
},
{
"name": "phpstan/phpstan",
- "version": "1.8.2",
+ "version": "1.10.67",
"source": {
"type": "git",
"url": "https://github.com/phpstan/phpstan.git",
- "reference": "c53312ecc575caf07b0e90dee43883fdf90ca67c"
+ "reference": "16ddbe776f10da6a95ebd25de7c1dbed397dc493"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/phpstan/phpstan/zipball/c53312ecc575caf07b0e90dee43883fdf90ca67c",
- "reference": "c53312ecc575caf07b0e90dee43883fdf90ca67c",
+ "url": "https://api.github.com/repos/phpstan/phpstan/zipball/16ddbe776f10da6a95ebd25de7c1dbed397dc493",
+ "reference": "16ddbe776f10da6a95ebd25de7c1dbed397dc493",
"shasum": ""
},
"require": {
@@ -10086,9 +10200,16 @@
"MIT"
],
"description": "PHPStan - PHP Static Analysis Tool",
+ "keywords": [
+ "dev",
+ "static analysis"
+ ],
"support": {
+ "docs": "https://phpstan.org/user-guide/getting-started",
+ "forum": "https://github.com/phpstan/phpstan/discussions",
"issues": "https://github.com/phpstan/phpstan/issues",
- "source": "https://github.com/phpstan/phpstan/tree/1.8.2"
+ "security": "https://github.com/phpstan/phpstan/security/policy",
+ "source": "https://github.com/phpstan/phpstan-src"
},
"funding": [
{
@@ -10098,35 +10219,27 @@
{
"url": "https://github.com/phpstan",
"type": "github"
- },
- {
- "url": "https://www.patreon.com/phpstan",
- "type": "patreon"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/phpstan/phpstan",
- "type": "tidelift"
}
],
- "time": "2022-07-20T09:57:31+00:00"
+ "time": "2024-04-16T07:22:02+00:00"
},
{
"name": "phpstan/phpstan-doctrine",
- "version": "1.3.12",
+ "version": "1.3.69",
"source": {
"type": "git",
"url": "https://github.com/phpstan/phpstan-doctrine.git",
- "reference": "c5ec462889f3bcee32be57ff26f775295836c173"
+ "reference": "ac567407e750b94e2133dace33b19082ad9ed751"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/phpstan/phpstan-doctrine/zipball/c5ec462889f3bcee32be57ff26f775295836c173",
- "reference": "c5ec462889f3bcee32be57ff26f775295836c173",
+ "url": "https://api.github.com/repos/phpstan/phpstan-doctrine/zipball/ac567407e750b94e2133dace33b19082ad9ed751",
+ "reference": "ac567407e750b94e2133dace33b19082ad9ed751",
"shasum": ""
},
"require": {
"php": "^7.2 || ^8.0",
- "phpstan/phpstan": "^1.8.0"
+ "phpstan/phpstan": "^1.10.64"
},
"conflict": {
"doctrine/collections": "<1.0",
@@ -10136,22 +10249,26 @@
"doctrine/persistence": "<1.3"
},
"require-dev": {
- "doctrine/annotations": "^1.11.0",
- "doctrine/collections": "^1.6",
+ "cache/array-adapter": "^1.1",
+ "composer/semver": "^3.3.2",
+ "cweagans/composer-patches": "^1.7.3",
+ "doctrine/annotations": "^1.11 || ^2.0",
+ "doctrine/collections": "^1.6 || ^2.1",
"doctrine/common": "^2.7 || ^3.0",
"doctrine/dbal": "^2.13.8 || ^3.3.3",
- "doctrine/lexer": "^1.2.1",
- "doctrine/mongodb-odm": "^1.3 || ^2.1",
- "doctrine/orm": "^2.11.0",
- "doctrine/persistence": "^1.3.8 || ^2.2.1",
+ "doctrine/lexer": "^2.0 || ^3.0",
+ "doctrine/mongodb-odm": "^1.3 || ^2.4.3",
+ "doctrine/orm": "^2.16.0",
+ "doctrine/persistence": "^2.2.1 || ^3.2",
+ "gedmo/doctrine-extensions": "^3.8",
"nesbot/carbon": "^2.49",
"nikic/php-parser": "^4.13.2",
"php-parallel-lint/php-parallel-lint": "^1.2",
- "phpstan/phpstan-phpunit": "^1.0",
- "phpstan/phpstan-strict-rules": "^1.0",
- "phpunit/phpunit": "^9.5.10",
- "ramsey/uuid-doctrine": "^1.5.0",
- "symfony/cache": "^4.4.35"
+ "phpstan/phpstan-phpunit": "^1.3.13",
+ "phpstan/phpstan-strict-rules": "^1.5.1",
+ "phpunit/phpunit": "^9.6.16",
+ "ramsey/uuid": "^4.2",
+ "symfony/cache": "^5.4"
},
"type": "phpstan-extension",
"extra": {
@@ -10174,28 +10291,28 @@
"description": "Doctrine extensions for PHPStan",
"support": {
"issues": "https://github.com/phpstan/phpstan-doctrine/issues",
- "source": "https://github.com/phpstan/phpstan-doctrine/tree/1.3.12"
+ "source": "https://github.com/phpstan/phpstan-doctrine/tree/1.3.69"
},
- "time": "2022-08-08T18:06:58+00:00"
+ "time": "2024-04-18T12:56:14+00:00"
},
{
"name": "phpstan/phpstan-symfony",
- "version": "1.2.9",
+ "version": "1.3.12",
"source": {
"type": "git",
"url": "https://github.com/phpstan/phpstan-symfony.git",
- "reference": "f4cb3b8915d3656e780f305f01c86b70ff933272"
+ "reference": "f4b9407fa3203aebafd422ae8f0eb1ef94659a80"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/phpstan/phpstan-symfony/zipball/f4cb3b8915d3656e780f305f01c86b70ff933272",
- "reference": "f4cb3b8915d3656e780f305f01c86b70ff933272",
+ "url": "https://api.github.com/repos/phpstan/phpstan-symfony/zipball/f4b9407fa3203aebafd422ae8f0eb1ef94659a80",
+ "reference": "f4b9407fa3203aebafd422ae8f0eb1ef94659a80",
"shasum": ""
},
"require": {
"ext-simplexml": "*",
"php": "^7.2 || ^8.0",
- "phpstan/phpstan": "^1.8.2"
+ "phpstan/phpstan": "^1.10.62"
},
"conflict": {
"symfony/framework-bundle": "<3.0"
@@ -10203,19 +10320,20 @@
"require-dev": {
"nikic/php-parser": "^4.13.0",
"php-parallel-lint/php-parallel-lint": "^1.2",
- "phpstan/phpstan-phpunit": "^1.0",
- "phpstan/phpstan-strict-rules": "^1.0",
- "phpunit/phpunit": "^9.5",
+ "phpstan/phpstan-phpunit": "^1.3.11",
+ "phpstan/phpstan-strict-rules": "^1.5.1",
+ "phpunit/phpunit": "^8.5.29 || ^9.5",
"psr/container": "1.0 || 1.1.1",
- "symfony/config": "^4.2 || ^5.0",
- "symfony/console": "^4.0 || ^5.0",
- "symfony/dependency-injection": "^4.0 || ^5.0",
- "symfony/form": "^4.0 || ^5.0",
- "symfony/framework-bundle": "^4.4 || ^5.0",
- "symfony/http-foundation": "^5.1",
- "symfony/messenger": "^4.2 || ^5.0",
+ "symfony/config": "^5.4 || ^6.1",
+ "symfony/console": "^5.4 || ^6.1",
+ "symfony/dependency-injection": "^5.4 || ^6.1",
+ "symfony/form": "^5.4 || ^6.1",
+ "symfony/framework-bundle": "^5.4 || ^6.1",
+ "symfony/http-foundation": "^5.4 || ^6.1",
+ "symfony/messenger": "^5.4",
"symfony/polyfill-php80": "^1.24",
- "symfony/serializer": "^4.0 || ^5.0"
+ "symfony/serializer": "^5.4",
+ "symfony/service-contracts": "^2.2.0"
},
"type": "phpstan-extension",
"extra": {
@@ -10245,29 +10363,29 @@
"description": "Symfony Framework extensions and rules for PHPStan",
"support": {
"issues": "https://github.com/phpstan/phpstan-symfony/issues",
- "source": "https://github.com/phpstan/phpstan-symfony/tree/1.2.9"
+ "source": "https://github.com/phpstan/phpstan-symfony/tree/1.3.12"
},
- "time": "2022-08-05T20:13:38+00:00"
+ "time": "2024-04-14T13:30:23+00:00"
},
{
"name": "phpunit/php-code-coverage",
- "version": "9.2.15",
+ "version": "9.2.31",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/php-code-coverage.git",
- "reference": "2e9da11878c4202f97915c1cb4bb1ca318a63f5f"
+ "reference": "48c34b5d8d983006bd2adc2d0de92963b9155965"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/2e9da11878c4202f97915c1cb4bb1ca318a63f5f",
- "reference": "2e9da11878c4202f97915c1cb4bb1ca318a63f5f",
+ "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/48c34b5d8d983006bd2adc2d0de92963b9155965",
+ "reference": "48c34b5d8d983006bd2adc2d0de92963b9155965",
"shasum": ""
},
"require": {
"ext-dom": "*",
"ext-libxml": "*",
"ext-xmlwriter": "*",
- "nikic/php-parser": "^4.13.0",
+ "nikic/php-parser": "^4.18 || ^5.0",
"php": ">=7.3",
"phpunit/php-file-iterator": "^3.0.3",
"phpunit/php-text-template": "^2.0.2",
@@ -10282,8 +10400,8 @@
"phpunit/phpunit": "^9.3"
},
"suggest": {
- "ext-pcov": "*",
- "ext-xdebug": "*"
+ "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": {
@@ -10316,7 +10434,8 @@
],
"support": {
"issues": "https://github.com/sebastianbergmann/php-code-coverage/issues",
- "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.15"
+ "security": "https://github.com/sebastianbergmann/php-code-coverage/security/policy",
+ "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.31"
},
"funding": [
{
@@ -10324,7 +10443,7 @@
"type": "github"
}
],
- "time": "2022-03-07T09:28:20+00:00"
+ "time": "2024-03-02T06:37:42+00:00"
},
{
"name": "phpunit/php-file-iterator",
@@ -10569,20 +10688,20 @@
},
{
"name": "phpunit/phpunit",
- "version": "9.5.21",
+ "version": "9.6.19",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/phpunit.git",
- "reference": "0e32b76be457de00e83213528f6bb37e2a38fcb1"
+ "reference": "a1a54a473501ef4cdeaae4e06891674114d79db8"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/0e32b76be457de00e83213528f6bb37e2a38fcb1",
- "reference": "0e32b76be457de00e83213528f6bb37e2a38fcb1",
+ "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/a1a54a473501ef4cdeaae4e06891674114d79db8",
+ "reference": "a1a54a473501ef4cdeaae4e06891674114d79db8",
"shasum": ""
},
"require": {
- "doctrine/instantiator": "^1.3.1",
+ "doctrine/instantiator": "^1.3.1 || ^2",
"ext-dom": "*",
"ext-json": "*",
"ext-libxml": "*",
@@ -10593,30 +10712,26 @@
"phar-io/manifest": "^2.0.3",
"phar-io/version": "^3.0.2",
"php": ">=7.3",
- "phpspec/prophecy": "^1.12.1",
- "phpunit/php-code-coverage": "^9.2.13",
+ "phpunit/php-code-coverage": "^9.2.28",
"phpunit/php-file-iterator": "^3.0.5",
"phpunit/php-invoker": "^3.1.1",
"phpunit/php-text-template": "^2.0.3",
"phpunit/php-timer": "^5.0.2",
"sebastian/cli-parser": "^1.0.1",
"sebastian/code-unit": "^1.0.6",
- "sebastian/comparator": "^4.0.5",
+ "sebastian/comparator": "^4.0.8",
"sebastian/diff": "^4.0.3",
"sebastian/environment": "^5.1.3",
- "sebastian/exporter": "^4.0.3",
+ "sebastian/exporter": "^4.0.5",
"sebastian/global-state": "^5.0.1",
"sebastian/object-enumerator": "^4.0.3",
"sebastian/resource-operations": "^3.0.3",
- "sebastian/type": "^3.0",
+ "sebastian/type": "^3.2",
"sebastian/version": "^3.0.2"
},
- "require-dev": {
- "phpspec/prophecy-phpunit": "^2.0.1"
- },
"suggest": {
- "ext-soap": "*",
- "ext-xdebug": "*"
+ "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"
@@ -10624,7 +10739,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "9.5-dev"
+ "dev-master": "9.6-dev"
}
},
"autoload": {
@@ -10655,7 +10770,8 @@
],
"support": {
"issues": "https://github.com/sebastianbergmann/phpunit/issues",
- "source": "https://github.com/sebastianbergmann/phpunit/tree/9.5.21"
+ "security": "https://github.com/sebastianbergmann/phpunit/security/policy",
+ "source": "https://github.com/sebastianbergmann/phpunit/tree/9.6.19"
},
"funding": [
{
@@ -10665,75 +10781,26 @@
{
"url": "https://github.com/sebastianbergmann",
"type": "github"
- }
- ],
- "time": "2022-06-19T12:14:25+00:00"
- },
- {
- "name": "pimple/pimple",
- "version": "v3.5.0",
- "source": {
- "type": "git",
- "url": "https://github.com/silexphp/Pimple.git",
- "reference": "a94b3a4db7fb774b3d78dad2315ddc07629e1bed"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/silexphp/Pimple/zipball/a94b3a4db7fb774b3d78dad2315ddc07629e1bed",
- "reference": "a94b3a4db7fb774b3d78dad2315ddc07629e1bed",
- "shasum": ""
- },
- "require": {
- "php": ">=7.2.5",
- "psr/container": "^1.1 || ^2.0"
- },
- "require-dev": {
- "symfony/phpunit-bridge": "^5.4@dev"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "3.4.x-dev"
- }
- },
- "autoload": {
- "psr-0": {
- "Pimple": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
+ },
{
- "name": "Fabien Potencier",
- "email": "fabien@symfony.com"
+ "url": "https://tidelift.com/funding/github/packagist/phpunit/phpunit",
+ "type": "tidelift"
}
],
- "description": "Pimple, a simple Dependency Injection Container",
- "homepage": "https://pimple.symfony.com",
- "keywords": [
- "container",
- "dependency injection"
- ],
- "support": {
- "source": "https://github.com/silexphp/Pimple/tree/v3.5.0"
- },
- "time": "2021-10-28T11:13:42+00:00"
+ "time": "2024-04-05T04:35:58+00:00"
},
{
"name": "sebastian/cli-parser",
- "version": "1.0.1",
+ "version": "1.0.2",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/cli-parser.git",
- "reference": "442e7c7e687e42adc03470c7b668bc4b2402c0b2"
+ "reference": "2b56bea83a09de3ac06bb18b92f068e60cc6f50b"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/cli-parser/zipball/442e7c7e687e42adc03470c7b668bc4b2402c0b2",
- "reference": "442e7c7e687e42adc03470c7b668bc4b2402c0b2",
+ "url": "https://api.github.com/repos/sebastianbergmann/cli-parser/zipball/2b56bea83a09de3ac06bb18b92f068e60cc6f50b",
+ "reference": "2b56bea83a09de3ac06bb18b92f068e60cc6f50b",
"shasum": ""
},
"require": {
@@ -10768,7 +10835,7 @@
"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.1"
+ "source": "https://github.com/sebastianbergmann/cli-parser/tree/1.0.2"
},
"funding": [
{
@@ -10776,7 +10843,7 @@
"type": "github"
}
],
- "time": "2020-09-28T06:08:49+00:00"
+ "time": "2024-03-02T06:27:43+00:00"
},
{
"name": "sebastian/code-unit",
@@ -10891,16 +10958,16 @@
},
{
"name": "sebastian/comparator",
- "version": "4.0.6",
+ "version": "4.0.8",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/comparator.git",
- "reference": "55f4261989e546dc112258c7a75935a81a7ce382"
+ "reference": "fa0f136dd2334583309d32b62544682ee972b51a"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/55f4261989e546dc112258c7a75935a81a7ce382",
- "reference": "55f4261989e546dc112258c7a75935a81a7ce382",
+ "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/fa0f136dd2334583309d32b62544682ee972b51a",
+ "reference": "fa0f136dd2334583309d32b62544682ee972b51a",
"shasum": ""
},
"require": {
@@ -10953,7 +11020,7 @@
],
"support": {
"issues": "https://github.com/sebastianbergmann/comparator/issues",
- "source": "https://github.com/sebastianbergmann/comparator/tree/4.0.6"
+ "source": "https://github.com/sebastianbergmann/comparator/tree/4.0.8"
},
"funding": [
{
@@ -10961,24 +11028,24 @@
"type": "github"
}
],
- "time": "2020-10-26T15:49:45+00:00"
+ "time": "2022-09-14T12:41:17+00:00"
},
{
"name": "sebastian/complexity",
- "version": "2.0.2",
+ "version": "2.0.3",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/complexity.git",
- "reference": "739b35e53379900cc9ac327b2147867b8b6efd88"
+ "reference": "25f207c40d62b8b7aa32f5ab026c53561964053a"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/complexity/zipball/739b35e53379900cc9ac327b2147867b8b6efd88",
- "reference": "739b35e53379900cc9ac327b2147867b8b6efd88",
+ "url": "https://api.github.com/repos/sebastianbergmann/complexity/zipball/25f207c40d62b8b7aa32f5ab026c53561964053a",
+ "reference": "25f207c40d62b8b7aa32f5ab026c53561964053a",
"shasum": ""
},
"require": {
- "nikic/php-parser": "^4.7",
+ "nikic/php-parser": "^4.18 || ^5.0",
"php": ">=7.3"
},
"require-dev": {
@@ -11010,7 +11077,7 @@
"homepage": "https://github.com/sebastianbergmann/complexity",
"support": {
"issues": "https://github.com/sebastianbergmann/complexity/issues",
- "source": "https://github.com/sebastianbergmann/complexity/tree/2.0.2"
+ "source": "https://github.com/sebastianbergmann/complexity/tree/2.0.3"
},
"funding": [
{
@@ -11018,20 +11085,20 @@
"type": "github"
}
],
- "time": "2020-10-26T15:52:27+00:00"
+ "time": "2023-12-22T06:19:30+00:00"
},
{
"name": "sebastian/diff",
- "version": "4.0.4",
+ "version": "4.0.6",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/diff.git",
- "reference": "3461e3fccc7cfdfc2720be910d3bd73c69be590d"
+ "reference": "ba01945089c3a293b01ba9badc29ad55b106b0bc"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/3461e3fccc7cfdfc2720be910d3bd73c69be590d",
- "reference": "3461e3fccc7cfdfc2720be910d3bd73c69be590d",
+ "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/ba01945089c3a293b01ba9badc29ad55b106b0bc",
+ "reference": "ba01945089c3a293b01ba9badc29ad55b106b0bc",
"shasum": ""
},
"require": {
@@ -11076,7 +11143,7 @@
],
"support": {
"issues": "https://github.com/sebastianbergmann/diff/issues",
- "source": "https://github.com/sebastianbergmann/diff/tree/4.0.4"
+ "source": "https://github.com/sebastianbergmann/diff/tree/4.0.6"
},
"funding": [
{
@@ -11084,20 +11151,20 @@
"type": "github"
}
],
- "time": "2020-10-26T13:10:38+00:00"
+ "time": "2024-03-02T06:30:58+00:00"
},
{
"name": "sebastian/environment",
- "version": "5.1.4",
+ "version": "5.1.5",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/environment.git",
- "reference": "1b5dff7bb151a4db11d49d90e5408e4e938270f7"
+ "reference": "830c43a844f1f8d5b7a1f6d6076b784454d8b7ed"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/1b5dff7bb151a4db11d49d90e5408e4e938270f7",
- "reference": "1b5dff7bb151a4db11d49d90e5408e4e938270f7",
+ "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/830c43a844f1f8d5b7a1f6d6076b784454d8b7ed",
+ "reference": "830c43a844f1f8d5b7a1f6d6076b784454d8b7ed",
"shasum": ""
},
"require": {
@@ -11139,7 +11206,7 @@
],
"support": {
"issues": "https://github.com/sebastianbergmann/environment/issues",
- "source": "https://github.com/sebastianbergmann/environment/tree/5.1.4"
+ "source": "https://github.com/sebastianbergmann/environment/tree/5.1.5"
},
"funding": [
{
@@ -11147,20 +11214,20 @@
"type": "github"
}
],
- "time": "2022-04-03T09:37:03+00:00"
+ "time": "2023-02-03T06:03:51+00:00"
},
{
"name": "sebastian/exporter",
- "version": "4.0.4",
+ "version": "4.0.6",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/exporter.git",
- "reference": "65e8b7db476c5dd267e65eea9cab77584d3cfff9"
+ "reference": "78c00df8f170e02473b682df15bfcdacc3d32d72"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/65e8b7db476c5dd267e65eea9cab77584d3cfff9",
- "reference": "65e8b7db476c5dd267e65eea9cab77584d3cfff9",
+ "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/78c00df8f170e02473b682df15bfcdacc3d32d72",
+ "reference": "78c00df8f170e02473b682df15bfcdacc3d32d72",
"shasum": ""
},
"require": {
@@ -11216,7 +11283,7 @@
],
"support": {
"issues": "https://github.com/sebastianbergmann/exporter/issues",
- "source": "https://github.com/sebastianbergmann/exporter/tree/4.0.4"
+ "source": "https://github.com/sebastianbergmann/exporter/tree/4.0.6"
},
"funding": [
{
@@ -11224,20 +11291,20 @@
"type": "github"
}
],
- "time": "2021-11-11T14:18:36+00:00"
+ "time": "2024-03-02T06:33:00+00:00"
},
{
"name": "sebastian/global-state",
- "version": "5.0.5",
+ "version": "5.0.7",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/global-state.git",
- "reference": "0ca8db5a5fc9c8646244e629625ac486fa286bf2"
+ "reference": "bca7df1f32ee6fe93b4d4a9abbf69e13a4ada2c9"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/0ca8db5a5fc9c8646244e629625ac486fa286bf2",
- "reference": "0ca8db5a5fc9c8646244e629625ac486fa286bf2",
+ "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/bca7df1f32ee6fe93b4d4a9abbf69e13a4ada2c9",
+ "reference": "bca7df1f32ee6fe93b4d4a9abbf69e13a4ada2c9",
"shasum": ""
},
"require": {
@@ -11280,7 +11347,7 @@
],
"support": {
"issues": "https://github.com/sebastianbergmann/global-state/issues",
- "source": "https://github.com/sebastianbergmann/global-state/tree/5.0.5"
+ "source": "https://github.com/sebastianbergmann/global-state/tree/5.0.7"
},
"funding": [
{
@@ -11288,24 +11355,24 @@
"type": "github"
}
],
- "time": "2022-02-14T08:28:10+00:00"
+ "time": "2024-03-02T06:35:11+00:00"
},
{
"name": "sebastian/lines-of-code",
- "version": "1.0.3",
+ "version": "1.0.4",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/lines-of-code.git",
- "reference": "c1c2e997aa3146983ed888ad08b15470a2e22ecc"
+ "reference": "e1e4a170560925c26d424b6a03aed157e7dcc5c5"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/lines-of-code/zipball/c1c2e997aa3146983ed888ad08b15470a2e22ecc",
- "reference": "c1c2e997aa3146983ed888ad08b15470a2e22ecc",
+ "url": "https://api.github.com/repos/sebastianbergmann/lines-of-code/zipball/e1e4a170560925c26d424b6a03aed157e7dcc5c5",
+ "reference": "e1e4a170560925c26d424b6a03aed157e7dcc5c5",
"shasum": ""
},
"require": {
- "nikic/php-parser": "^4.6",
+ "nikic/php-parser": "^4.18 || ^5.0",
"php": ">=7.3"
},
"require-dev": {
@@ -11337,7 +11404,7 @@
"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.3"
+ "source": "https://github.com/sebastianbergmann/lines-of-code/tree/1.0.4"
},
"funding": [
{
@@ -11345,7 +11412,7 @@
"type": "github"
}
],
- "time": "2020-11-28T06:42:11+00:00"
+ "time": "2023-12-22T06:20:34+00:00"
},
{
"name": "sebastian/object-enumerator",
@@ -11461,16 +11528,16 @@
},
{
"name": "sebastian/recursion-context",
- "version": "4.0.4",
+ "version": "4.0.5",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/recursion-context.git",
- "reference": "cd9d8cf3c5804de4341c283ed787f099f5506172"
+ "reference": "e75bd0f07204fec2a0af9b0f3cfe97d05f92efc1"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/cd9d8cf3c5804de4341c283ed787f099f5506172",
- "reference": "cd9d8cf3c5804de4341c283ed787f099f5506172",
+ "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/e75bd0f07204fec2a0af9b0f3cfe97d05f92efc1",
+ "reference": "e75bd0f07204fec2a0af9b0f3cfe97d05f92efc1",
"shasum": ""
},
"require": {
@@ -11509,10 +11576,10 @@
}
],
"description": "Provides functionality to recursively process PHP variables",
- "homepage": "http://www.github.com/sebastianbergmann/recursion-context",
+ "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.4"
+ "source": "https://github.com/sebastianbergmann/recursion-context/tree/4.0.5"
},
"funding": [
{
@@ -11520,20 +11587,20 @@
"type": "github"
}
],
- "time": "2020-10-26T13:17:30+00:00"
+ "time": "2023-02-03T06:07:39+00:00"
},
{
"name": "sebastian/resource-operations",
- "version": "3.0.3",
+ "version": "3.0.4",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/resource-operations.git",
- "reference": "0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8"
+ "reference": "05d5692a7993ecccd56a03e40cd7e5b09b1d404e"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8",
- "reference": "0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8",
+ "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/05d5692a7993ecccd56a03e40cd7e5b09b1d404e",
+ "reference": "05d5692a7993ecccd56a03e40cd7e5b09b1d404e",
"shasum": ""
},
"require": {
@@ -11545,7 +11612,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "3.0-dev"
+ "dev-main": "3.0-dev"
}
},
"autoload": {
@@ -11566,8 +11633,7 @@
"description": "Provides a list of PHP built-in functions that operate on resources",
"homepage": "https://www.github.com/sebastianbergmann/resource-operations",
"support": {
- "issues": "https://github.com/sebastianbergmann/resource-operations/issues",
- "source": "https://github.com/sebastianbergmann/resource-operations/tree/3.0.3"
+ "source": "https://github.com/sebastianbergmann/resource-operations/tree/3.0.4"
},
"funding": [
{
@@ -11575,20 +11641,20 @@
"type": "github"
}
],
- "time": "2020-09-28T06:45:17+00:00"
+ "time": "2024-03-14T16:00:52+00:00"
},
{
"name": "sebastian/type",
- "version": "3.0.0",
+ "version": "3.2.1",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/type.git",
- "reference": "b233b84bc4465aff7b57cf1c4bc75c86d00d6dad"
+ "reference": "75e2c2a32f5e0b3aef905b9ed0b179b953b3d7c7"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/b233b84bc4465aff7b57cf1c4bc75c86d00d6dad",
- "reference": "b233b84bc4465aff7b57cf1c4bc75c86d00d6dad",
+ "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/75e2c2a32f5e0b3aef905b9ed0b179b953b3d7c7",
+ "reference": "75e2c2a32f5e0b3aef905b9ed0b179b953b3d7c7",
"shasum": ""
},
"require": {
@@ -11600,7 +11666,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "3.0-dev"
+ "dev-master": "3.2-dev"
}
},
"autoload": {
@@ -11623,7 +11689,7 @@
"homepage": "https://github.com/sebastianbergmann/type",
"support": {
"issues": "https://github.com/sebastianbergmann/type/issues",
- "source": "https://github.com/sebastianbergmann/type/tree/3.0.0"
+ "source": "https://github.com/sebastianbergmann/type/tree/3.2.1"
},
"funding": [
{
@@ -11631,7 +11697,7 @@
"type": "github"
}
],
- "time": "2022-03-15T09:54:48+00:00"
+ "time": "2023-02-03T06:13:03+00:00"
},
{
"name": "sebastian/version",
@@ -11688,31 +11754,27 @@
},
{
"name": "symfony/browser-kit",
- "version": "v4.4.44",
+ "version": "v6.3.12",
"source": {
"type": "git",
"url": "https://github.com/symfony/browser-kit.git",
- "reference": "2a1ff40723ef6b29c8229a860a9c8f815ad7dbbb"
+ "reference": "867868fca3a0939236ab89600f9480eee74843ce"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/browser-kit/zipball/2a1ff40723ef6b29c8229a860a9c8f815ad7dbbb",
- "reference": "2a1ff40723ef6b29c8229a860a9c8f815ad7dbbb",
+ "url": "https://api.github.com/repos/symfony/browser-kit/zipball/867868fca3a0939236ab89600f9480eee74843ce",
+ "reference": "867868fca3a0939236ab89600f9480eee74843ce",
"shasum": ""
},
"require": {
- "php": ">=7.1.3",
- "symfony/dom-crawler": "^3.4|^4.0|^5.0",
- "symfony/polyfill-php80": "^1.16"
+ "php": ">=8.1",
+ "symfony/dom-crawler": "^5.4|^6.0"
},
"require-dev": {
- "symfony/css-selector": "^3.4|^4.0|^5.0",
- "symfony/http-client": "^4.3|^5.0",
- "symfony/mime": "^4.3|^5.0",
- "symfony/process": "^3.4|^4.0|^5.0"
- },
- "suggest": {
- "symfony/process": ""
+ "symfony/css-selector": "^5.4|^6.0",
+ "symfony/http-client": "^5.4|^6.0",
+ "symfony/mime": "^5.4|^6.0",
+ "symfony/process": "^5.4|^6.0"
},
"type": "library",
"autoload": {
@@ -11740,7 +11802,7 @@
"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/v4.4.44"
+ "source": "https://github.com/symfony/browser-kit/tree/v6.3.12"
},
"funding": [
{
@@ -11756,25 +11818,24 @@
"type": "tidelift"
}
],
- "time": "2022-07-25T12:56:14+00:00"
+ "time": "2024-01-23T14:35:58+00:00"
},
{
"name": "symfony/css-selector",
- "version": "v4.4.44",
+ "version": "v6.3.12",
"source": {
"type": "git",
"url": "https://github.com/symfony/css-selector.git",
- "reference": "bd0a6737e48de45b4b0b7b6fc98c78404ddceaed"
+ "reference": "7bb2f446287397cc41ebd9acfa0755b16db05fbc"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/css-selector/zipball/bd0a6737e48de45b4b0b7b6fc98c78404ddceaed",
- "reference": "bd0a6737e48de45b4b0b7b6fc98c78404ddceaed",
+ "url": "https://api.github.com/repos/symfony/css-selector/zipball/7bb2f446287397cc41ebd9acfa0755b16db05fbc",
+ "reference": "7bb2f446287397cc41ebd9acfa0755b16db05fbc",
"shasum": ""
},
"require": {
- "php": ">=7.1.3",
- "symfony/polyfill-php80": "^1.16"
+ "php": ">=8.1"
},
"type": "library",
"autoload": {
@@ -11806,7 +11867,7 @@
"description": "Converts CSS selectors to XPath expressions",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/css-selector/tree/v4.4.44"
+ "source": "https://github.com/symfony/css-selector/tree/v6.3.12"
},
"funding": [
{
@@ -11822,42 +11883,37 @@
"type": "tidelift"
}
],
- "time": "2022-06-27T13:16:42+00:00"
+ "time": "2024-01-23T14:35:58+00:00"
},
{
"name": "symfony/debug-bundle",
- "version": "v4.4.37",
+ "version": "v6.3.12",
"source": {
"type": "git",
"url": "https://github.com/symfony/debug-bundle.git",
- "reference": "f21cce588be146c9111cb9041f0784a6534fd648"
+ "reference": "a7c57aecdb226c5293675e51c2fd6a7ed9a8a9a4"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/debug-bundle/zipball/f21cce588be146c9111cb9041f0784a6534fd648",
- "reference": "f21cce588be146c9111cb9041f0784a6534fd648",
+ "url": "https://api.github.com/repos/symfony/debug-bundle/zipball/a7c57aecdb226c5293675e51c2fd6a7ed9a8a9a4",
+ "reference": "a7c57aecdb226c5293675e51c2fd6a7ed9a8a9a4",
"shasum": ""
},
"require": {
"ext-xml": "*",
- "php": ">=7.1.3",
- "symfony/http-kernel": "^3.4|^4.0|^5.0",
- "symfony/polyfill-php80": "^1.16",
- "symfony/twig-bridge": "^3.4|^4.0|^5.0",
- "symfony/var-dumper": "^4.1.1|^5.0"
+ "php": ">=8.1",
+ "symfony/dependency-injection": "^5.4|^6.0",
+ "symfony/http-kernel": "^5.4|^6.0",
+ "symfony/twig-bridge": "^5.4|^6.0",
+ "symfony/var-dumper": "^5.4|^6.0"
},
"conflict": {
- "symfony/config": "<4.2",
- "symfony/dependency-injection": "<3.4"
+ "symfony/config": "<5.4",
+ "symfony/dependency-injection": "<5.4"
},
"require-dev": {
- "symfony/config": "^4.2|^5.0",
- "symfony/dependency-injection": "^3.4|^4.0|^5.0",
- "symfony/web-profiler-bundle": "^3.4|^4.0|^5.0"
- },
- "suggest": {
- "symfony/config": "For service container configuration",
- "symfony/dependency-injection": "For using as a service from the container"
+ "symfony/config": "^5.4|^6.0",
+ "symfony/web-profiler-bundle": "^5.4|^6.0"
},
"type": "symfony-bundle",
"autoload": {
@@ -11885,7 +11941,7 @@
"description": "Provides a tight integration of the Symfony VarDumper component and the ServerLogCommand from MonologBridge into the Symfony full-stack framework",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/debug-bundle/tree/v4.4.37"
+ "source": "https://github.com/symfony/debug-bundle/tree/v6.3.12"
},
"funding": [
{
@@ -11901,37 +11957,30 @@
"type": "tidelift"
}
],
- "time": "2022-01-02T09:41:36+00:00"
+ "time": "2024-01-23T14:35:58+00:00"
},
{
"name": "symfony/dom-crawler",
- "version": "v4.4.44",
+ "version": "v6.3.12",
"source": {
"type": "git",
"url": "https://github.com/symfony/dom-crawler.git",
- "reference": "53cee1108a9748682b1268bc1a76a3d6a665ede2"
+ "reference": "e412abb0a443dc2c29decb96cac476aed7b8234b"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/dom-crawler/zipball/53cee1108a9748682b1268bc1a76a3d6a665ede2",
- "reference": "53cee1108a9748682b1268bc1a76a3d6a665ede2",
+ "url": "https://api.github.com/repos/symfony/dom-crawler/zipball/e412abb0a443dc2c29decb96cac476aed7b8234b",
+ "reference": "e412abb0a443dc2c29decb96cac476aed7b8234b",
"shasum": ""
},
"require": {
- "php": ">=7.1.3",
+ "masterminds/html5": "^2.6",
+ "php": ">=8.1",
"symfony/polyfill-ctype": "~1.8",
- "symfony/polyfill-mbstring": "~1.0",
- "symfony/polyfill-php80": "^1.16"
- },
- "conflict": {
- "masterminds/html5": "<2.6"
+ "symfony/polyfill-mbstring": "~1.0"
},
"require-dev": {
- "masterminds/html5": "^2.6",
- "symfony/css-selector": "^3.4|^4.0|^5.0"
- },
- "suggest": {
- "symfony/css-selector": ""
+ "symfony/css-selector": "^5.4|^6.0"
},
"type": "library",
"autoload": {
@@ -11959,7 +12008,7 @@
"description": "Eases DOM navigation for HTML and XML documents",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/dom-crawler/tree/v4.4.44"
+ "source": "https://github.com/symfony/dom-crawler/tree/v6.3.12"
},
"funding": [
{
@@ -11975,51 +12024,54 @@
"type": "tidelift"
}
],
- "time": "2022-06-27T13:16:42+00:00"
+ "time": "2024-01-23T14:35:58+00:00"
},
{
"name": "symfony/maker-bundle",
- "version": "v1.39.0",
+ "version": "v1.53.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/maker-bundle.git",
- "reference": "f2b99ba44e22a44fcf724affa53b5539b25fde90"
+ "reference": "8d2f3f96704766837548d177fe3ae39ae94822d9"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/maker-bundle/zipball/f2b99ba44e22a44fcf724affa53b5539b25fde90",
- "reference": "f2b99ba44e22a44fcf724affa53b5539b25fde90",
+ "url": "https://api.github.com/repos/symfony/maker-bundle/zipball/8d2f3f96704766837548d177fe3ae39ae94822d9",
+ "reference": "8d2f3f96704766837548d177fe3ae39ae94822d9",
"shasum": ""
},
"require": {
- "doctrine/inflector": "^1.2|^2.0",
- "nikic/php-parser": "^4.11",
- "php": ">=7.1.3",
- "symfony/config": "^4.4|^5.0|^6.0",
- "symfony/console": "^4.4|^5.0|^6.0",
- "symfony/dependency-injection": "^4.4|^5.0|^6.0",
+ "doctrine/inflector": "^2.0",
+ "nikic/php-parser": "^4.18|^5.0",
+ "php": ">=8.1",
+ "symfony/config": "^6.3|^7.0",
+ "symfony/console": "^6.3|^7.0",
+ "symfony/dependency-injection": "^6.3|^7.0",
"symfony/deprecation-contracts": "^2.2|^3",
- "symfony/filesystem": "^4.4|^5.0|^6.0",
- "symfony/finder": "^4.4|^5.0|^6.0",
- "symfony/framework-bundle": "^4.4|^5.0|^6.0",
- "symfony/http-kernel": "^4.4|^5.0|^6.0"
+ "symfony/filesystem": "^6.3|^7.0",
+ "symfony/finder": "^6.3|^7.0",
+ "symfony/framework-bundle": "^6.3|^7.0",
+ "symfony/http-kernel": "^6.3|^7.0",
+ "symfony/process": "^6.3|^7.0"
+ },
+ "conflict": {
+ "doctrine/doctrine-bundle": "<2.4",
+ "doctrine/orm": "<2.10"
},
"require-dev": {
"composer/semver": "^3.0",
- "doctrine/doctrine-bundle": "^1.12.3|^2.0",
- "doctrine/orm": "^2.3",
- "symfony/http-client": "^4.4|^5.0|^6.0",
- "symfony/phpunit-bridge": "^4.4|^5.0|^6.0",
- "symfony/polyfill-php80": "^1.16.0",
- "symfony/process": "^4.4|^5.0|^6.0",
- "symfony/security-core": "^4.4|^5.0|^6.0",
- "symfony/yaml": "^4.4|^5.0|^6.0",
- "twig/twig": "^2.0|^3.0"
+ "doctrine/doctrine-bundle": "^2.5.0",
+ "doctrine/orm": "^2.10.0",
+ "symfony/http-client": "^6.3|^7.0",
+ "symfony/phpunit-bridge": "^6.3|^7.0",
+ "symfony/security-core": "^6.3|^7.0",
+ "symfony/yaml": "^6.3|^7.0",
+ "twig/twig": "^3.0|^4.x-dev"
},
"type": "symfony-bundle",
"extra": {
"branch-alias": {
- "dev-main": "1.0-dev"
+ "dev-main": "1.x-dev"
}
},
"autoload": {
@@ -12041,13 +12093,14 @@
"homepage": "https://symfony.com/doc/current/bundles/SymfonyMakerBundle/index.html",
"keywords": [
"code generator",
+ "dev",
"generator",
"scaffold",
"scaffolding"
],
"support": {
"issues": "https://github.com/symfony/maker-bundle/issues",
- "source": "https://github.com/symfony/maker-bundle/tree/v1.39.0"
+ "source": "https://github.com/symfony/maker-bundle/tree/v1.53.0"
},
"funding": [
{
@@ -12063,20 +12116,20 @@
"type": "tidelift"
}
],
- "time": "2022-04-21T18:16:11+00:00"
+ "time": "2024-02-01T10:05:38+00:00"
},
{
"name": "symfony/phpunit-bridge",
- "version": "v6.1.3",
+ "version": "v6.4.7",
"source": {
"type": "git",
"url": "https://github.com/symfony/phpunit-bridge.git",
- "reference": "75c2fa71d049c1f48e39d208c0cefba97e66335a"
+ "reference": "a33ca737283c76617c4089a8425c7785b344e283"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/phpunit-bridge/zipball/75c2fa71d049c1f48e39d208c0cefba97e66335a",
- "reference": "75c2fa71d049c1f48e39d208c0cefba97e66335a",
+ "url": "https://api.github.com/repos/symfony/phpunit-bridge/zipball/a33ca737283c76617c4089a8425c7785b344e283",
+ "reference": "a33ca737283c76617c4089a8425c7785b344e283",
"shasum": ""
},
"require": {
@@ -12086,11 +12139,9 @@
"phpunit/phpunit": "<7.5|9.1.2"
},
"require-dev": {
- "symfony/deprecation-contracts": "^2.1|^3.0",
- "symfony/error-handler": "^5.4|^6.0"
- },
- "suggest": {
- "symfony/error-handler": "For tracking deprecated interfaces usages at runtime with DebugClassLoader"
+ "symfony/deprecation-contracts": "^2.5|^3.0",
+ "symfony/error-handler": "^5.4|^6.0|^7.0",
+ "symfony/polyfill-php81": "^1.27"
},
"bin": [
"bin/simple-phpunit"
@@ -12130,7 +12181,83 @@
"description": "Provides utilities for PHPUnit, especially user deprecation notices management",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/phpunit-bridge/tree/v6.1.3"
+ "source": "https://github.com/symfony/phpunit-bridge/tree/v6.4.7"
+ },
+ "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-04-18T09:22:46+00:00"
+ },
+ {
+ "name": "symfony/polyfill-php81",
+ "version": "v1.29.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/polyfill-php81.git",
+ "reference": "c565ad1e63f30e7477fc40738343c62b40bc672d"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/polyfill-php81/zipball/c565ad1e63f30e7477fc40738343c62b40bc672d",
+ "reference": "c565ad1e63f30e7477fc40738343c62b40bc672d",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.1"
+ },
+ "type": "library",
+ "extra": {
+ "thanks": {
+ "name": "symfony/polyfill",
+ "url": "https://github.com/symfony/polyfill"
+ }
+ },
+ "autoload": {
+ "files": [
+ "bootstrap.php"
+ ],
+ "psr-4": {
+ "Symfony\\Polyfill\\Php81\\": ""
+ },
+ "classmap": [
+ "Resources/stubs"
+ ]
+ },
+ "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": "Symfony polyfill backporting some PHP 8.1+ features to lower PHP versions",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "compatibility",
+ "polyfill",
+ "portable",
+ "shim"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/polyfill-php81/tree/v1.29.0"
},
"funding": [
{
@@ -12146,42 +12273,41 @@
"type": "tidelift"
}
],
- "time": "2022-07-28T13:40:41+00:00"
+ "time": "2024-01-29T20:11:03+00:00"
},
{
"name": "symfony/web-profiler-bundle",
- "version": "v4.4.44",
+ "version": "v6.3.12",
"source": {
"type": "git",
"url": "https://github.com/symfony/web-profiler-bundle.git",
- "reference": "346128217ae50ac62d32b2d42257b90598dc9fc2"
+ "reference": "920efdd0f53f088b44963cf89368038ee39719b9"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/web-profiler-bundle/zipball/346128217ae50ac62d32b2d42257b90598dc9fc2",
- "reference": "346128217ae50ac62d32b2d42257b90598dc9fc2",
+ "url": "https://api.github.com/repos/symfony/web-profiler-bundle/zipball/920efdd0f53f088b44963cf89368038ee39719b9",
+ "reference": "920efdd0f53f088b44963cf89368038ee39719b9",
"shasum": ""
},
"require": {
- "php": ">=7.1.3",
- "symfony/config": "^4.2|^5.0",
- "symfony/framework-bundle": "^4.4|^5.0",
- "symfony/http-kernel": "^4.4",
- "symfony/polyfill-php80": "^1.16",
- "symfony/routing": "^4.3|^5.0",
- "symfony/twig-bundle": "^4.2|^5.0",
- "twig/twig": "^1.43|^2.13|^3.0.4"
+ "php": ">=8.1",
+ "symfony/config": "^5.4|^6.0",
+ "symfony/framework-bundle": "^5.4|^6.0,<6.4",
+ "symfony/http-kernel": "^6.3",
+ "symfony/routing": "^5.4|^6.0",
+ "symfony/twig-bundle": "^5.4|^6.0",
+ "twig/twig": "^2.13|^3.0.4"
},
"conflict": {
- "symfony/form": "<4.3",
- "symfony/messenger": "<4.2"
+ "symfony/form": "<5.4",
+ "symfony/mailer": "<5.4",
+ "symfony/messenger": "<5.4"
},
"require-dev": {
- "symfony/browser-kit": "^4.3|^5.0",
- "symfony/console": "^4.3|^5.0",
- "symfony/css-selector": "^3.4|^4.0|^5.0",
- "symfony/dependency-injection": "^3.4|^4.0|^5.0",
- "symfony/stopwatch": "^3.4|^4.0|^5.0"
+ "symfony/browser-kit": "^5.4|^6.0",
+ "symfony/console": "^5.4|^6.0",
+ "symfony/css-selector": "^5.4|^6.0",
+ "symfony/stopwatch": "^5.4|^6.0"
},
"type": "symfony-bundle",
"autoload": {
@@ -12208,8 +12334,11 @@
],
"description": "Provides a development tool that gives detailed information about the execution of any request",
"homepage": "https://symfony.com",
+ "keywords": [
+ "dev"
+ ],
"support": {
- "source": "https://github.com/symfony/web-profiler-bundle/tree/v4.4.44"
+ "source": "https://github.com/symfony/web-profiler-bundle/tree/v6.3.12"
},
"funding": [
{
@@ -12225,20 +12354,20 @@
"type": "tidelift"
}
],
- "time": "2022-07-20T09:59:04+00:00"
+ "time": "2024-01-23T16:21:43+00:00"
},
{
"name": "theseer/tokenizer",
- "version": "1.2.1",
+ "version": "1.2.3",
"source": {
"type": "git",
"url": "https://github.com/theseer/tokenizer.git",
- "reference": "34a41e998c2183e22995f158c581e7b5e755ab9e"
+ "reference": "737eda637ed5e28c3413cb1ebe8bb52cbf1ca7a2"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/theseer/tokenizer/zipball/34a41e998c2183e22995f158c581e7b5e755ab9e",
- "reference": "34a41e998c2183e22995f158c581e7b5e755ab9e",
+ "url": "https://api.github.com/repos/theseer/tokenizer/zipball/737eda637ed5e28c3413cb1ebe8bb52cbf1ca7a2",
+ "reference": "737eda637ed5e28c3413cb1ebe8bb52cbf1ca7a2",
"shasum": ""
},
"require": {
@@ -12267,7 +12396,7 @@
"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.1"
+ "source": "https://github.com/theseer/tokenizer/tree/1.2.3"
},
"funding": [
{
@@ -12275,23 +12404,21 @@
"type": "github"
}
],
- "time": "2021-07-28T10:34:58+00:00"
+ "time": "2024-03-03T12:36:25+00:00"
}
],
"aliases": [],
"minimum-stability": "stable",
- "stability-flags": {
- "ubermichael/nines": 20
- },
+ "stability-flags": [],
"prefer-stable": false,
"prefer-lowest": false,
"platform": {
- "php": ">=7.4",
+ "php": "^8.2",
"ext-ctype": "*",
"ext-iconv": "*",
"ext-imagick": "*",
"ext-json": "*"
},
"platform-dev": [],
- "plugin-api-version": "2.3.0"
+ "plugin-api-version": "2.6.0"
}
diff --git a/config/bootstrap.php b/config/bootstrap.php
deleted file mode 100644
index 55560fb..0000000
--- a/config/bootstrap.php
+++ /dev/null
@@ -1,23 +0,0 @@
-=1.2)
-if (is_array($env = @include dirname(__DIR__).'/.env.local.php') && (!isset($env['APP_ENV']) || ($_SERVER['APP_ENV'] ?? $_ENV['APP_ENV'] ?? $env['APP_ENV']) === $env['APP_ENV'])) {
- (new Dotenv(false))->populate($env);
-} else {
- // load all the .env files
- (new Dotenv(false))->loadEnv(dirname(__DIR__).'/.env');
-}
-
-$_SERVER += $_ENV;
-$_SERVER['APP_ENV'] = $_ENV['APP_ENV'] = ($_SERVER['APP_ENV'] ?? $_ENV['APP_ENV'] ?? null) ?: 'dev';
-$_SERVER['APP_DEBUG'] = $_SERVER['APP_DEBUG'] ?? $_ENV['APP_DEBUG'] ?? 'prod' !== $_SERVER['APP_ENV'];
-$_SERVER['APP_DEBUG'] = $_ENV['APP_DEBUG'] = (int) $_SERVER['APP_DEBUG'] || filter_var($_SERVER['APP_DEBUG'], FILTER_VALIDATE_BOOLEAN) ? '1' : '0';
diff --git a/config/bundles.php b/config/bundles.php
index 6bc322d..71e1476 100644
--- a/config/bundles.php
+++ b/config/bundles.php
@@ -17,10 +17,8 @@
Tetranz\Select2EntityBundle\TetranzSelect2EntityBundle::class => ['all' => true],
Doctrine\Bundle\FixturesBundle\DoctrineFixturesBundle::class => ['dev' => true, 'test' => true],
DAMA\DoctrineTestBundle\DAMADoctrineTestBundle::class => ['test' => true],
-
Nines\BlogBundle\NinesBlogBundle::class => ['all' => true],
Nines\EditorBundle\NinesEditorBundle::class => ['all' => true],
- Nines\MakerBundle\NinesMakerBundle::class => ['dev' => true],
Nines\MediaBundle\NinesMediaBundle::class => ['all' => true],
Nines\UserBundle\NinesUserBundle::class => ['all' => true],
Nines\UtilBundle\NinesUtilBundle::class => ['all' => true],
diff --git a/config/deploy.yaml.dist b/config/deploy.yaml.dist
deleted file mode 100644
index 44551e7..0000000
--- a/config/deploy.yaml.dist
+++ /dev/null
@@ -1,29 +0,0 @@
-
-# define the hosts
-dhil.lib.sfu.ca:
- stage: dhil
- become: ~
- deploy_path: ~
- user: ~
- ssh_multiplexing: false
-
-# The settings key must start with a dot(.) to prevent it being treated as
-# a host in the inventory.
-.settings:
- application: bep
- repository: ~
- branch: main
- shared_files:
- - .env.local
- shared_dirs:
- - var/log
- - var/sessions
- - public/images
- writable_dirs:
- - var/log
- - var/sessions
- - var/cache
- - public/images
- context: system_u:object_r:httpd_sys_rw_content_t:s0
- composer_options: 'install --no-progress --optimize-autoloader --no-interaction'
- site_path: /mvm
diff --git a/config/packages/dama_doctrine_test_bundle.yaml b/config/packages/dama_doctrine_test_bundle.yaml
new file mode 100644
index 0000000..3482cba
--- /dev/null
+++ b/config/packages/dama_doctrine_test_bundle.yaml
@@ -0,0 +1,5 @@
+when@test:
+ dama_doctrine_test:
+ enable_static_connection: true
+ enable_static_meta_data_cache: true
+ enable_static_query_cache: true
diff --git a/config/packages/debug.yaml b/config/packages/debug.yaml
new file mode 100644
index 0000000..ad874af
--- /dev/null
+++ b/config/packages/debug.yaml
@@ -0,0 +1,5 @@
+when@dev:
+ debug:
+ # Forwards VarDumper Data clones to a centralized server allowing to inspect dumps on CLI or in your browser.
+ # See the "server:dump" command to start a new server.
+ dump_destination: "tcp://%env(VAR_DUMPER_SERVER)%"
diff --git a/config/packages/dev/debug.yaml b/config/packages/dev/debug.yaml
deleted file mode 100644
index 26d4e53..0000000
--- a/config/packages/dev/debug.yaml
+++ /dev/null
@@ -1,4 +0,0 @@
-debug:
- # Forwards VarDumper Data clones to a centralized server allowing to inspect dumps on CLI or in your browser.
- # See the "server:dump" command to start a new server.
- dump_destination: "tcp://%env(VAR_DUMPER_SERVER)%"
diff --git a/config/packages/dev/monolog.yaml b/config/packages/dev/monolog.yaml
deleted file mode 100644
index d66ee7b..0000000
--- a/config/packages/dev/monolog.yaml
+++ /dev/null
@@ -1,8 +0,0 @@
-monolog:
- handlers:
- main:
- type: rotating_file
- path: "%kernel.logs_dir%/%kernel.environment%.log"
- level: warning
- channels: ["!event", "!doctrine", "!console", "!translation"]
- max_files: 1
diff --git a/config/packages/dev/web_profiler.yaml b/config/packages/dev/web_profiler.yaml
deleted file mode 100644
index e92166a..0000000
--- a/config/packages/dev/web_profiler.yaml
+++ /dev/null
@@ -1,6 +0,0 @@
-web_profiler:
- toolbar: true
- intercept_redirects: false
-
-framework:
- profiler: { only_exceptions: false }
diff --git a/config/packages/doctrine.yaml b/config/packages/doctrine.yaml
index e8abe58..d13b097 100644
--- a/config/packages/doctrine.yaml
+++ b/config/packages/doctrine.yaml
@@ -13,7 +13,36 @@ doctrine:
mappings:
App:
is_bundle: false
- type: annotation
+ type: attribute
dir: '%kernel.project_dir%/src/Entity'
prefix: 'App\Entity'
alias: App
+
+when@test:
+ doctrine:
+ dbal:
+ url: '%env(resolve:DATABASE_URL)%'
+ # "TEST_TOKEN" is typically set by ParaTest
+ dbname_suffix: '_test%env(default::TEST_TOKEN)%'
+
+when@prod:
+ doctrine:
+ orm:
+ auto_generate_proxy_classes: false
+ metadata_cache_driver:
+ type: pool
+ pool: doctrine.system_cache_pool
+ query_cache_driver:
+ type: pool
+ pool: doctrine.system_cache_pool
+ result_cache_driver:
+ type: pool
+ pool: doctrine.result_cache_pool
+
+ framework:
+ cache:
+ pools:
+ doctrine.result_cache_pool:
+ adapter: cache.app
+ doctrine.system_cache_pool:
+ adapter: cache.system
diff --git a/config/packages/framework.yaml b/config/packages/framework.yaml
index 6efd824..f6d022e 100644
--- a/config/packages/framework.yaml
+++ b/config/packages/framework.yaml
@@ -3,13 +3,16 @@ framework:
csrf_protection: true
http_method_override: true
+ trusted_proxies: '%env(TRUSTED_PROXIES)%'
+ trusted_headers: ['x-forwarded-for', 'x-forwarded-host', 'x-forwarded-proto', 'x-forwarded-port', 'x-forwarded-prefix']
+
# Enables session support. Note that the session will ONLY be started if you read or write from it.
# Remove or comment this section to explicitly disable session support.
session:
handler_id: null
cookie_secure: auto
cookie_samesite: lax
- name: PHP_SESSION_bep
+ name: PHP_SESSION_BEP
cookie_path: '%router.request_context.base_url%'
cookie_domain: '%router.request_context.host%'
@@ -19,3 +22,9 @@ framework:
log: true
error_controller: Nines\UtilBundle\Controller\ErrorController::show
+
+when@test:
+ framework:
+ test: true
+ session:
+ storage_factory_id: session.storage.factory.mock_file
\ No newline at end of file
diff --git a/config/packages/knp_menu.yaml b/config/packages/knp_menu.yaml
new file mode 100644
index 0000000..03edd82
--- /dev/null
+++ b/config/packages/knp_menu.yaml
@@ -0,0 +1,3 @@
+knp_menu:
+ twig:
+ template: '@KnpMenu/menu.html.twig'
diff --git a/config/packages/knp_paginator.yaml b/config/packages/knp_paginator.yaml
index f0a195a..346daba 100644
--- a/config/packages/knp_paginator.yaml
+++ b/config/packages/knp_paginator.yaml
@@ -6,5 +6,5 @@ knp_paginator:
sort_direction_name: direction # sort direction query parameter name
distinct: true # ensure distinct results, useful when ORM queries are using GROUP BY statements
template:
- pagination: "@KnpPaginator/Pagination/twitter_bootstrap_v3_pagination.html.twig" # sliding pagination controls template
- sortable: "@KnpPaginator/Pagination/sortable_link.html.twig" # sort link template
\ No newline at end of file
+ pagination: "@NinesUtil/pagination/bootstrap_v5_pagination.html.twig"
+ sortable: "@KnpPaginator/Pagination/sortable_link.html.twig"
\ No newline at end of file
diff --git a/config/packages/monolog.yaml b/config/packages/monolog.yaml
new file mode 100644
index 0000000..e98f89c
--- /dev/null
+++ b/config/packages/monolog.yaml
@@ -0,0 +1,39 @@
+monolog:
+ channels:
+ - deprecation # Deprecations are logged in the dedicated "deprecation" channel when it exists
+
+when@dev:
+ monolog:
+ handlers:
+ main:
+ type: rotating_file
+ path: "%kernel.logs_dir%/%kernel.environment%.log"
+ # level: debug
+ # level: warning
+ level: notice
+ channels: ["!event", "!doctrine", "!console", "!translation"]
+ max_files: 1
+
+when@test:
+ monolog:
+ handlers:
+ main:
+ type: rotating_file
+ max_files: 1
+ path: "%kernel.logs_dir%/%kernel.environment%.log"
+ # level: debug
+ level: warning
+ channels: ['!event', '!doctrine', '!console', '!translation']
+ console:
+ type: console
+ channels: ['!event', '!doctrine', '!console', '!translation']
+
+when@prod:
+ monolog:
+ handlers:
+ main:
+ type: rotating_file
+ path: "%kernel.logs_dir%/%kernel.environment%.log"
+ level: notice
+ channels: ["!event", "!doctrine", "!console", "!translation"]
+ max_files: 30
diff --git a/config/packages/nines_editor.yaml b/config/packages/nines_editor.yaml
deleted file mode 100644
index ba6ee21..0000000
--- a/config/packages/nines_editor.yaml
+++ /dev/null
@@ -1,2 +0,0 @@
-nines_editor:
- upload_dir: public/uploads/tinymce
diff --git a/config/packages/nines_user.yaml b/config/packages/nines_user.yaml
index 021cdd1..29c33bd 100644
--- a/config/packages/nines_user.yaml
+++ b/config/packages/nines_user.yaml
@@ -3,8 +3,6 @@ nines_user:
- ROLE_ADMIN
- ROLE_BLOG_ADMIN
- ROLE_CONTENT_ADMIN
- - ROLE_DC_ADMIN
- - ROLE_FEEDBACK_ADMIN
- ROLE_MEDIA_ADMIN
- ROLE_USER_ADMIN
after_login_route: homepage
diff --git a/config/packages/prod/deprecations.yaml b/config/packages/prod/deprecations.yaml
deleted file mode 100644
index 920a061..0000000
--- a/config/packages/prod/deprecations.yaml
+++ /dev/null
@@ -1,8 +0,0 @@
-# As of Symfony 5.1, deprecations are logged in the dedicated "deprecation" channel when it exists
-#monolog:
-# channels: [deprecation]
-# handlers:
-# deprecation:
-# type: stream
-# channels: [deprecation]
-# path: "%kernel.logs_dir%/%kernel.environment%.deprecations.log"
diff --git a/config/packages/prod/doctrine.yaml b/config/packages/prod/doctrine.yaml
deleted file mode 100644
index 084f59a..0000000
--- a/config/packages/prod/doctrine.yaml
+++ /dev/null
@@ -1,20 +0,0 @@
-doctrine:
- orm:
- auto_generate_proxy_classes: false
- metadata_cache_driver:
- type: pool
- pool: doctrine.system_cache_pool
- query_cache_driver:
- type: pool
- pool: doctrine.system_cache_pool
- result_cache_driver:
- type: pool
- pool: doctrine.result_cache_pool
-
-framework:
- cache:
- pools:
- doctrine.result_cache_pool:
- adapter: cache.app
- doctrine.system_cache_pool:
- adapter: cache.system
diff --git a/config/packages/prod/monolog.yaml b/config/packages/prod/monolog.yaml
deleted file mode 100644
index d9faa74..0000000
--- a/config/packages/prod/monolog.yaml
+++ /dev/null
@@ -1,8 +0,0 @@
-monolog:
- handlers:
- main:
- type: rotating_file
- path: "%kernel.logs_dir%/%kernel.environment%.log"
- level: warning
- channels: ["!event", "!doctrine", "!console", "!translation"]
- max_files: 30
diff --git a/config/packages/prod/routing.yaml b/config/packages/prod/routing.yaml
deleted file mode 100644
index b3e6a0a..0000000
--- a/config/packages/prod/routing.yaml
+++ /dev/null
@@ -1,3 +0,0 @@
-framework:
- router:
- strict_requirements: null
diff --git a/config/packages/routing.yaml b/config/packages/routing.yaml
index 7e97762..a97fce7 100644
--- a/config/packages/routing.yaml
+++ b/config/packages/routing.yaml
@@ -1,3 +1,13 @@
framework:
router:
utf8: true
+
+ # Configure how to generate URLs in non-HTTP contexts, such as CLI commands.
+ # See https://symfony.com/doc/current/routing.html#generating-urls-in-commands
+ #default_uri: http://localhost
+ default_uri: '%router.request_context.scheme%://%router.request_context.host%%router.request_context.base_url%'
+
+when@prod:
+ framework:
+ router:
+ strict_requirements: null
\ No newline at end of file
diff --git a/config/packages/security.yaml b/config/packages/security.yaml
index 9aec245..1650d40 100644
--- a/config/packages/security.yaml
+++ b/config/packages/security.yaml
@@ -1,29 +1,30 @@
security:
- encoders:
- Nines\UserBundle\Entity\User:
- algorithm: auto
-
- # https://symfony.com/doc/current/security.html#where-do-users-come-from-user-providers
+ password_hashers:
+ Symfony\Component\Security\Core\User\PasswordAuthenticatedUserInterface: 'auto'
providers:
- # used to reload user from session & other features (e.g. switch_user)
app_user_provider:
entity:
class: Nines\UserBundle\Entity\User
property: email
firewalls:
dev:
- pattern: ^/(_(profiler|wdt)|css|images|js)/
+ pattern: ^/(_(profiler|wdt|error)|css|images|js)/
security: false
main:
- anonymous: lazy
- guard:
- authenticators:
- - Nines\UserBundle\Security\LoginFormAuthenticator
+ lazy: true
+ provider: app_user_provider
+ form_login:
+ login_path: nines_user_security_login
+ check_path: nines_user_security_login
+ post_only: true
+ form_only: true
+ enable_csrf: true
+ username_parameter: email
+ password_parameter: password
user_checker: Nines\UserBundle\Security\UserChecker
logout:
path: nines_user_security_logout
target: homepage
-
remember_me:
secret: '%kernel.secret%'
lifetime: 604800 # 1 week
@@ -37,31 +38,36 @@ security:
ROLE_ADMIN:
- ROLE_BLOG_ADMIN
- ROLE_CONTENT_ADMIN
- - ROLE_DC_ADMIN
- - ROLE_FEEDBACK_ADMIN
- ROLE_MEDIA_ADMIN
- ROLE_USER_ADMIN
- ROLE_USER
ROLE_BLOG_ADMIN: ROLE_USER
- ROLE_COMMENT_ADMIN: ROLE_USER
ROLE_CONTENT_ADMIN: ROLE_USER
# Easy way to control access for large sections of your site
# Note: Only the *first* access control that matches will be used
access_control:
# Default controller stuff - open to the public
- - { path: ^/$, roles: IS_AUTHENTICATED_ANONYMOUSLY }
- - { path: ^/privacy$, roles: IS_AUTHENTICATED_ANONYMOUSLY }
+ - { path: ^%router.request_context.base_url%/$, roles: PUBLIC_ACCESS }
+ - { path: ^%router.request_context.base_url%/privacy$, roles: PUBLIC_ACCESS }
# user controller stuff - open to the public
- - { path: ^/request$, roles: IS_AUTHENTICATED_ANONYMOUSLY }
- - { path: ^/reset, roles: IS_AUTHENTICATED_ANONYMOUSLY }
- - { path: ^/login$, roles: IS_AUTHENTICATED_ANONYMOUSLY }
-
- # Other controllers that should never be public
- - { path: ^/dublin_core/element, roles: ROLE_USER }
- - { path: ^/feedback/comment_note, roles: ROLE_USER }
- - { path: ^/feedback/comment_status, roles: ROLE_USER }
+ - { path: ^%router.request_context.base_url%/request$, roles: PUBLIC_ACCESS }
+ - { path: ^%router.request_context.base_url%/reset, roles: PUBLIC_ACCESS }
+ - { path: ^%router.request_context.base_url%/login$, roles: PUBLIC_ACCESS }
# Temporary to keep the rest of the site private.
- - { path: ^/, roles: ROLE_USER }
+ - { path: ^%router.request_context.base_url%/, roles: ROLE_USER }
+
+when@test:
+ security:
+ password_hashers:
+ # By default, password hashers are resource intensive and take time. This is
+ # important to generate secure password hashes. In tests however, secure hashes
+ # are not important, waste resources and increase test times. The following
+ # reduces the work factor to the lowest possible values.
+ Symfony\Component\Security\Core\User\PasswordAuthenticatedUserInterface:
+ algorithm: auto
+ cost: 4 # Lowest possible value for bcrypt
+ time_cost: 3 # Lowest possible value for argon
+ memory_cost: 10 # Lowest possible value for argon
diff --git a/config/packages/test/dama_doctrine_test_bundle.yaml b/config/packages/test/dama_doctrine_test_bundle.yaml
deleted file mode 100644
index 80b0091..0000000
--- a/config/packages/test/dama_doctrine_test_bundle.yaml
+++ /dev/null
@@ -1,4 +0,0 @@
-dama_doctrine_test:
- enable_static_connection: true
- enable_static_meta_data_cache: true
- enable_static_query_cache: true
diff --git a/config/packages/test/debug.yaml b/config/packages/test/debug.yaml
deleted file mode 100644
index 26d4e53..0000000
--- a/config/packages/test/debug.yaml
+++ /dev/null
@@ -1,4 +0,0 @@
-debug:
- # Forwards VarDumper Data clones to a centralized server allowing to inspect dumps on CLI or in your browser.
- # See the "server:dump" command to start a new server.
- dump_destination: "tcp://%env(VAR_DUMPER_SERVER)%"
diff --git a/config/packages/test/doctrine.yaml b/config/packages/test/doctrine.yaml
deleted file mode 100644
index 94dfb93..0000000
--- a/config/packages/test/doctrine.yaml
+++ /dev/null
@@ -1,5 +0,0 @@
-doctrine:
- dbal:
- url: '%env(resolve:DATABASE_URL)%'
-# # "TEST_TOKEN" is typically set by ParaTest
-# dbname_suffix: '_test%env(default::TEST_TOKEN)%'
diff --git a/config/packages/test/framework.yaml b/config/packages/test/framework.yaml
deleted file mode 100644
index d051c84..0000000
--- a/config/packages/test/framework.yaml
+++ /dev/null
@@ -1,4 +0,0 @@
-framework:
- test: true
- session:
- storage_id: session.storage.mock_file
diff --git a/config/packages/test/monolog.yaml b/config/packages/test/monolog.yaml
deleted file mode 100644
index 0f950f5..0000000
--- a/config/packages/test/monolog.yaml
+++ /dev/null
@@ -1,12 +0,0 @@
-monolog:
- use_microseconds: false
- handlers:
- main:
- type: rotating_file
- max_files: 1
- path: "%kernel.logs_dir%/%kernel.environment%.log"
- level: warning
- channels: ['!event', '!doctrine', '!console', '!translation']
- console:
- type: console
- channels: ['!event', '!doctrine', '!console', '!translation']
diff --git a/config/packages/test/twig.yaml b/config/packages/test/twig.yaml
deleted file mode 100644
index 8c6e0b4..0000000
--- a/config/packages/test/twig.yaml
+++ /dev/null
@@ -1,2 +0,0 @@
-twig:
- strict_variables: true
diff --git a/config/packages/test/validator.yaml b/config/packages/test/validator.yaml
deleted file mode 100644
index 1e5ab78..0000000
--- a/config/packages/test/validator.yaml
+++ /dev/null
@@ -1,3 +0,0 @@
-framework:
- validation:
- not_compromised_password: false
diff --git a/config/packages/test/web_profiler.yaml b/config/packages/test/web_profiler.yaml
deleted file mode 100644
index 03752de..0000000
--- a/config/packages/test/web_profiler.yaml
+++ /dev/null
@@ -1,6 +0,0 @@
-web_profiler:
- toolbar: false
- intercept_redirects: false
-
-framework:
- profiler: { collect: false }
diff --git a/config/packages/tetranzselect2entity.yaml b/config/packages/tetranzselect2entity.yaml
new file mode 100644
index 0000000..9d7d80d
--- /dev/null
+++ b/config/packages/tetranzselect2entity.yaml
@@ -0,0 +1,3 @@
+tetranz_select2_entity:
+ theme: 'bootstrap-5'
+ width: 100%
\ No newline at end of file
diff --git a/config/packages/twig.yaml b/config/packages/twig.yaml
index bcd1b94..d7221d0 100644
--- a/config/packages/twig.yaml
+++ b/config/packages/twig.yaml
@@ -7,11 +7,12 @@ twig:
format: Y-m-d g:i:s A
interval_format: '%%d days'
form_themes:
- - 'bootstrap_3_horizontal_layout.html.twig'
- - "@NinesUtil/form/fields.html.twig"
+ - '@NinesUtil/form/bootstrap_5_horizontal_layout.html.twig'
- '@TetranzSelect2Entity/Form/fields.html.twig'
- 'jquery.collection.html.twig'
globals:
+ asset_prefix: '%env(default::string:ROUTE_BASE)%'
+ nines_editor_config: js/editor-config.js
text_service: '@Nines\UtilBundle\Services\Text'
image_manager: '@Nines\MediaBundle\Service\ImageManager'
linker: '@Nines\UtilBundle\Services\EntityLinker'
@@ -19,5 +20,13 @@ twig:
piwik_url: '%dhil.piwik_url%'
piwik_siteid: '%dhil.piwik_siteid%'
piwik_domain: '%dhil.piwik_domain%'
- nines_editor_config: js/editor-config.js
date_format: Y-m-d
+ git_repo: '%env(default::string:GIT_REPO)%'
+ git_commit: '%env(default::string:GIT_COMMIT)%'
+ git_commit_short: '%env(default::string:GIT_COMMIT_SHORT)%'
+ git_branch: '%env(default::string:GIT_BRANCH)%'
+ git_tag: '%env(default::string:GIT_TAG)%'
+
+when@test:
+ twig:
+ strict_variables: true
\ No newline at end of file
diff --git a/config/packages/validator.yaml b/config/packages/validator.yaml
index 350786a..0201281 100644
--- a/config/packages/validator.yaml
+++ b/config/packages/validator.yaml
@@ -6,3 +6,8 @@ framework:
# For instance, basic validation constraints will be inferred from Doctrine's metadata.
#auto_mapping:
# App\Entity\: []
+
+when@test:
+ framework:
+ validation:
+ not_compromised_password: false
diff --git a/config/packages/web_profiler.yaml b/config/packages/web_profiler.yaml
new file mode 100644
index 0000000..b946111
--- /dev/null
+++ b/config/packages/web_profiler.yaml
@@ -0,0 +1,17 @@
+when@dev:
+ web_profiler:
+ toolbar: true
+ intercept_redirects: false
+
+ framework:
+ profiler:
+ only_exceptions: false
+ collect_serializer_data: true
+
+when@test:
+ web_profiler:
+ toolbar: false
+ intercept_redirects: false
+
+ framework:
+ profiler: { collect: false }
diff --git a/config/preload.php b/config/preload.php
index 064bdcd..5ebcdb2 100644
--- a/config/preload.php
+++ b/config/preload.php
@@ -1,9 +1,5 @@
- * This source file is subject to the GPL v2, bundled
- * with this source code in the file LICENSE.
- */
-
namespace DoctrineMigrations;
use Doctrine\DBAL\Schema\Schema;
diff --git a/migrations/2022/06/Version20220629191415.php b/migrations/2022/06/Version20220629191415.php
index a59c715..54ad8ab 100644
--- a/migrations/2022/06/Version20220629191415.php
+++ b/migrations/2022/06/Version20220629191415.php
@@ -2,12 +2,6 @@
declare(strict_types=1);
-/*
- * (c) 2022 Michael Joyce
- * This source file is subject to the GPL v2, bundled
- * with this source code in the file LICENSE.
- */
-
namespace DoctrineMigrations;
use Doctrine\DBAL\Schema\Schema;
diff --git a/migrations/2022/07/Version20220705213739.php b/migrations/2022/07/Version20220705213739.php
index 83757f5..f3014e7 100644
--- a/migrations/2022/07/Version20220705213739.php
+++ b/migrations/2022/07/Version20220705213739.php
@@ -2,12 +2,6 @@
declare(strict_types=1);
-/*
- * (c) 2022 Michael Joyce
- * This source file is subject to the GPL v2, bundled
- * with this source code in the file LICENSE.
- */
-
namespace DoctrineMigrations;
use Doctrine\DBAL\Schema\Schema;
diff --git a/migrations/2024/05/Version20240509214529.php b/migrations/2024/05/Version20240509214529.php
new file mode 100644
index 0000000..2048df9
--- /dev/null
+++ b/migrations/2024/05/Version20240509214529.php
@@ -0,0 +1,63 @@
+addSql('ALTER TABLE nines_blog_page DROP FOREIGN KEY FK_F4DA3AB0A76ED395');
+ $this->addSql('ALTER TABLE nines_blog_page ADD CONSTRAINT FK_23FD24C7A76ED395 FOREIGN KEY (user_id) REFERENCES nines_user (id) ON DELETE CASCADE');
+ $this->addSql('ALTER TABLE nines_blog_post DROP FOREIGN KEY FK_BA5AE01D6BF700BD');
+ $this->addSql('ALTER TABLE nines_blog_post DROP FOREIGN KEY FK_BA5AE01DA76ED395');
+ $this->addSql('ALTER TABLE nines_blog_post DROP FOREIGN KEY FK_BA5AE01D12469DE2');
+ $this->addSql('ALTER TABLE nines_blog_post ADD CONSTRAINT FK_6D7DFE6A12469DE2 FOREIGN KEY (category_id) REFERENCES nines_blog_post_category (id) ON DELETE CASCADE');
+ $this->addSql('ALTER TABLE nines_blog_post ADD CONSTRAINT FK_6D7DFE6A6BF700BD FOREIGN KEY (status_id) REFERENCES nines_blog_post_status (id) ON DELETE CASCADE');
+ $this->addSql('ALTER TABLE nines_blog_post ADD CONSTRAINT FK_6D7DFE6AA76ED395 FOREIGN KEY (user_id) REFERENCES nines_user (id) ON DELETE CASCADE');
+ $this->addSql('ALTER TABLE nines_media_audio ADD checksum VARCHAR(32) DEFAULT NULL, ADD source_url LONGTEXT DEFAULT NULL, DROP public');
+ $this->addSql('CREATE INDEX IDX_9D15F751DE6FDF9A ON nines_media_audio (checksum)');
+ $this->addSql('CREATE FULLTEXT INDEX IDX_9D15F751A58240EF ON nines_media_audio (source_url)');
+ $this->addSql('ALTER TABLE nines_media_image ADD checksum VARCHAR(32) DEFAULT NULL, ADD source_url LONGTEXT DEFAULT NULL, DROP public');
+ $this->addSql('CREATE INDEX IDX_4055C59BDE6FDF9A ON nines_media_image (checksum)');
+ $this->addSql('CREATE FULLTEXT INDEX IDX_4055C59BA58240EF ON nines_media_image (source_url)');
+ $this->addSql('ALTER TABLE nines_media_pdf ADD checksum VARCHAR(32) DEFAULT NULL, ADD source_url LONGTEXT DEFAULT NULL, DROP public');
+ $this->addSql('CREATE INDEX IDX_9286B706DE6FDF9A ON nines_media_pdf (checksum)');
+ $this->addSql('CREATE FULLTEXT INDEX IDX_9286B706A58240EF ON nines_media_pdf (source_url)');
+ $this->addSql('ALTER TABLE transaction_transaction_category DROP FOREIGN KEY FK_7F5D163D2FC0CB0F');
+ $this->addSql('ALTER TABLE transaction_transaction_category ADD CONSTRAINT FK_7F5D163D2FC0CB0F FOREIGN KEY (transaction_id) REFERENCES transact (id)');
+ }
+
+ public function down(Schema $schema) : void {
+ // this down() migration is auto-generated, please modify it to your needs
+ $this->addSql('DROP INDEX IDX_4055C59BDE6FDF9A ON nines_media_image');
+ $this->addSql('DROP INDEX IDX_4055C59BA58240EF ON nines_media_image');
+ $this->addSql('ALTER TABLE nines_media_image ADD public TINYINT(1) NOT NULL, DROP checksum, DROP source_url');
+ $this->addSql('ALTER TABLE nines_blog_post DROP FOREIGN KEY FK_6D7DFE6A12469DE2');
+ $this->addSql('ALTER TABLE nines_blog_post DROP FOREIGN KEY FK_6D7DFE6A6BF700BD');
+ $this->addSql('ALTER TABLE nines_blog_post DROP FOREIGN KEY FK_6D7DFE6AA76ED395');
+ $this->addSql('ALTER TABLE nines_blog_post ADD CONSTRAINT FK_BA5AE01D6BF700BD FOREIGN KEY (status_id) REFERENCES nines_blog_post_status (id)');
+ $this->addSql('ALTER TABLE nines_blog_post ADD CONSTRAINT FK_BA5AE01DA76ED395 FOREIGN KEY (user_id) REFERENCES nines_user (id)');
+ $this->addSql('ALTER TABLE nines_blog_post ADD CONSTRAINT FK_BA5AE01D12469DE2 FOREIGN KEY (category_id) REFERENCES nines_blog_post_category (id)');
+ $this->addSql('DROP INDEX IDX_9D15F751DE6FDF9A ON nines_media_audio');
+ $this->addSql('DROP INDEX IDX_9D15F751A58240EF ON nines_media_audio');
+ $this->addSql('ALTER TABLE nines_media_audio ADD public TINYINT(1) NOT NULL, DROP checksum, DROP source_url');
+ $this->addSql('ALTER TABLE transaction_transaction_category DROP FOREIGN KEY FK_7F5D163D2FC0CB0F');
+ $this->addSql('ALTER TABLE transaction_transaction_category ADD CONSTRAINT FK_7F5D163D2FC0CB0F FOREIGN KEY (transaction_id) REFERENCES transact (id) ON DELETE CASCADE');
+ $this->addSql('DROP INDEX IDX_9286B706DE6FDF9A ON nines_media_pdf');
+ $this->addSql('DROP INDEX IDX_9286B706A58240EF ON nines_media_pdf');
+ $this->addSql('ALTER TABLE nines_media_pdf ADD public TINYINT(1) NOT NULL, DROP checksum, DROP source_url');
+ $this->addSql('ALTER TABLE nines_blog_page DROP FOREIGN KEY FK_23FD24C7A76ED395');
+ $this->addSql('ALTER TABLE nines_blog_page ADD CONSTRAINT FK_F4DA3AB0A76ED395 FOREIGN KEY (user_id) REFERENCES nines_user (id)');
+ }
+}
diff --git a/migrations/2024/05/Version20240510223025.php b/migrations/2024/05/Version20240510223025.php
new file mode 100644
index 0000000..8ff5d95
--- /dev/null
+++ b/migrations/2024/05/Version20240510223025.php
@@ -0,0 +1,129 @@
+addSql('ALTER TABLE archdeaconry DROP FOREIGN KEY FK_36CE5E07B600009');
+ $this->addSql('ALTER TABLE archdeaconry ADD CONSTRAINT FK_36CE5E07B600009 FOREIGN KEY (diocese_id) REFERENCES diocese (id) ON DELETE CASCADE');
+ $this->addSql('ALTER TABLE book DROP FOREIGN KEY FK_CBE5A33153033E82');
+ $this->addSql('ALTER TABLE book ADD CONSTRAINT FK_CBE5A33153033E82 FOREIGN KEY (monarch_id) REFERENCES monarch (id) ON DELETE SET NULL');
+ $this->addSql('ALTER TABLE county DROP FOREIGN KEY FK_58E2FF25AE3899');
+ $this->addSql('ALTER TABLE county ADD CONSTRAINT FK_58E2FF25AE3899 FOREIGN KEY (nation_id) REFERENCES nation (id) ON DELETE CASCADE');
+ $this->addSql('ALTER TABLE diocese DROP FOREIGN KEY FK_8849E742E946114A');
+ $this->addSql('ALTER TABLE diocese ADD CONSTRAINT FK_8849E742E946114A FOREIGN KEY (province_id) REFERENCES province (id) ON DELETE CASCADE');
+ $this->addSql('ALTER TABLE holding DROP FOREIGN KEY FK_5BBFD8168707B11F');
+ $this->addSql('ALTER TABLE holding ADD CONSTRAINT FK_5BBFD8168707B11F FOREIGN KEY (parish_id) REFERENCES parish (id) ON DELETE CASCADE');
+ $this->addSql('ALTER TABLE injunction DROP FOREIGN KEY FK_A2FAC1E153033E82');
+ $this->addSql('ALTER TABLE injunction DROP FOREIGN KEY FK_A2FAC1E1E946114A');
+ $this->addSql('ALTER TABLE injunction DROP FOREIGN KEY FK_A2FAC1E1AE3899');
+ $this->addSql('ALTER TABLE injunction DROP FOREIGN KEY FK_A2FAC1E13BEA4CEE');
+ $this->addSql('ALTER TABLE injunction DROP FOREIGN KEY FK_A2FAC1E1B600009');
+ $this->addSql('ALTER TABLE injunction ADD CONSTRAINT FK_A2FAC1E153033E82 FOREIGN KEY (monarch_id) REFERENCES monarch (id) ON DELETE SET NULL');
+ $this->addSql('ALTER TABLE injunction ADD CONSTRAINT FK_A2FAC1E1E946114A FOREIGN KEY (province_id) REFERENCES province (id) ON DELETE SET NULL');
+ $this->addSql('ALTER TABLE injunction ADD CONSTRAINT FK_A2FAC1E1AE3899 FOREIGN KEY (nation_id) REFERENCES nation (id) ON DELETE SET NULL');
+ $this->addSql('ALTER TABLE injunction ADD CONSTRAINT FK_A2FAC1E13BEA4CEE FOREIGN KEY (archdeaconry_id) REFERENCES archdeaconry (id) ON DELETE SET NULL');
+ $this->addSql('ALTER TABLE injunction ADD CONSTRAINT FK_A2FAC1E1B600009 FOREIGN KEY (diocese_id) REFERENCES diocese (id) ON DELETE SET NULL');
+ $this->addSql('ALTER TABLE inventory DROP FOREIGN KEY FK_B12D4A3653033E82');
+ $this->addSql('ALTER TABLE inventory DROP FOREIGN KEY FK_B12D4A36320375DF');
+ $this->addSql('ALTER TABLE inventory DROP FOREIGN KEY FK_B12D4A368707B11F');
+ $this->addSql('ALTER TABLE inventory DROP FOREIGN KEY FK_B12D4A36E75A3578');
+ $this->addSql('ALTER TABLE inventory ADD CONSTRAINT FK_B12D4A3653033E82 FOREIGN KEY (monarch_id) REFERENCES monarch (id) ON DELETE SET NULL');
+ $this->addSql('ALTER TABLE inventory ADD CONSTRAINT FK_B12D4A36320375DF FOREIGN KEY (manuscript_source_id) REFERENCES manuscript_source (id) ON DELETE SET NULL');
+ $this->addSql('ALTER TABLE inventory ADD CONSTRAINT FK_B12D4A368707B11F FOREIGN KEY (parish_id) REFERENCES parish (id) ON DELETE CASCADE');
+ $this->addSql('ALTER TABLE inventory ADD CONSTRAINT FK_B12D4A36E75A3578 FOREIGN KEY (print_source_id) REFERENCES print_source (id) ON DELETE SET NULL');
+ $this->addSql('ALTER TABLE manuscript_source DROP FOREIGN KEY FK_5F8A7F732956195F');
+ $this->addSql('ALTER TABLE manuscript_source DROP FOREIGN KEY FK_5F8A7F732E39CD42');
+ $this->addSql('ALTER TABLE manuscript_source ADD CONSTRAINT FK_CE3EE8022E39CD42 FOREIGN KEY (source_category_id) REFERENCES source_category (id) ON DELETE CASCADE');
+ $this->addSql('ALTER TABLE manuscript_source ADD CONSTRAINT FK_CE3EE8022956195F FOREIGN KEY (archive_id) REFERENCES archive (id) ON DELETE CASCADE');
+ $this->addSql('ALTER TABLE parish DROP FOREIGN KEY FK_DFF9A9783BEA4CEE');
+ $this->addSql('ALTER TABLE parish DROP FOREIGN KEY FK_DFF9A97875E23604');
+ $this->addSql('ALTER TABLE parish ADD CONSTRAINT FK_DFF9A9783BEA4CEE FOREIGN KEY (archdeaconry_id) REFERENCES archdeaconry (id) ON DELETE CASCADE');
+ $this->addSql('ALTER TABLE parish ADD CONSTRAINT FK_DFF9A97875E23604 FOREIGN KEY (town_id) REFERENCES town (id) ON DELETE SET NULL');
+ $this->addSql('ALTER TABLE print_source DROP FOREIGN KEY FK_534D01C12E39CD42');
+ $this->addSql('ALTER TABLE print_source ADD CONSTRAINT FK_534D01C12E39CD42 FOREIGN KEY (source_category_id) REFERENCES source_category (id) ON DELETE CASCADE');
+ $this->addSql('ALTER TABLE province DROP FOREIGN KEY FK_4ADAD40BAE3899');
+ $this->addSql('ALTER TABLE province ADD CONSTRAINT FK_4ADAD40BAE3899 FOREIGN KEY (nation_id) REFERENCES nation (id) ON DELETE CASCADE');
+ $this->addSql('ALTER TABLE town DROP FOREIGN KEY FK_4CE6C7A485E73F45');
+ $this->addSql('ALTER TABLE town ADD CONSTRAINT FK_4CE6C7A485E73F45 FOREIGN KEY (county_id) REFERENCES county (id) ON DELETE CASCADE');
+ $this->addSql('ALTER TABLE transact DROP FOREIGN KEY FK_FA42B7F653033E82');
+ $this->addSql('ALTER TABLE transact DROP FOREIGN KEY FK_FA42B7F6320375DF');
+ $this->addSql('ALTER TABLE transact DROP FOREIGN KEY FK_FA42B7F68707B11F');
+ $this->addSql('ALTER TABLE transact DROP FOREIGN KEY FK_FA42B7F6E75A3578');
+ $this->addSql('ALTER TABLE transact ADD CONSTRAINT FK_FA42B7F653033E82 FOREIGN KEY (monarch_id) REFERENCES monarch (id) ON DELETE SET NULL');
+ $this->addSql('ALTER TABLE transact ADD CONSTRAINT FK_FA42B7F6320375DF FOREIGN KEY (manuscript_source_id) REFERENCES manuscript_source (id) ON DELETE SET NULL');
+ $this->addSql('ALTER TABLE transact ADD CONSTRAINT FK_FA42B7F68707B11F FOREIGN KEY (parish_id) REFERENCES parish (id) ON DELETE CASCADE');
+ $this->addSql('ALTER TABLE transact ADD CONSTRAINT FK_FA42B7F6E75A3578 FOREIGN KEY (print_source_id) REFERENCES print_source (id) ON DELETE SET NULL');
+ $this->addSql('ALTER TABLE transaction_transaction_category DROP FOREIGN KEY FK_7F5D163D2FC0CB0F');
+ $this->addSql('ALTER TABLE transaction_transaction_category ADD CONSTRAINT FK_7F5D163D2FC0CB0F FOREIGN KEY (transaction_id) REFERENCES transact (id) ON DELETE CASCADE');
+ }
+
+ public function down(Schema $schema) : void {
+ // this down() migration is auto-generated, please modify it to your needs
+ $this->addSql('ALTER TABLE archdeaconry DROP FOREIGN KEY FK_36CE5E07B600009');
+ $this->addSql('ALTER TABLE archdeaconry ADD CONSTRAINT FK_36CE5E07B600009 FOREIGN KEY (diocese_id) REFERENCES diocese (id)');
+ $this->addSql('ALTER TABLE holding DROP FOREIGN KEY FK_5BBFD8168707B11F');
+ $this->addSql('ALTER TABLE holding ADD CONSTRAINT FK_5BBFD8168707B11F FOREIGN KEY (parish_id) REFERENCES parish (id)');
+ $this->addSql('ALTER TABLE transaction_transaction_category DROP FOREIGN KEY FK_7F5D163D2FC0CB0F');
+ $this->addSql('ALTER TABLE transaction_transaction_category ADD CONSTRAINT FK_7F5D163D2FC0CB0F FOREIGN KEY (transaction_id) REFERENCES transact (id)');
+ $this->addSql('ALTER TABLE injunction DROP FOREIGN KEY FK_A2FAC1E1AE3899');
+ $this->addSql('ALTER TABLE injunction DROP FOREIGN KEY FK_A2FAC1E1B600009');
+ $this->addSql('ALTER TABLE injunction DROP FOREIGN KEY FK_A2FAC1E1E946114A');
+ $this->addSql('ALTER TABLE injunction DROP FOREIGN KEY FK_A2FAC1E13BEA4CEE');
+ $this->addSql('ALTER TABLE injunction DROP FOREIGN KEY FK_A2FAC1E153033E82');
+ $this->addSql('ALTER TABLE injunction ADD CONSTRAINT FK_A2FAC1E1AE3899 FOREIGN KEY (nation_id) REFERENCES nation (id)');
+ $this->addSql('ALTER TABLE injunction ADD CONSTRAINT FK_A2FAC1E1B600009 FOREIGN KEY (diocese_id) REFERENCES diocese (id)');
+ $this->addSql('ALTER TABLE injunction ADD CONSTRAINT FK_A2FAC1E1E946114A FOREIGN KEY (province_id) REFERENCES province (id)');
+ $this->addSql('ALTER TABLE injunction ADD CONSTRAINT FK_A2FAC1E13BEA4CEE FOREIGN KEY (archdeaconry_id) REFERENCES archdeaconry (id)');
+ $this->addSql('ALTER TABLE injunction ADD CONSTRAINT FK_A2FAC1E153033E82 FOREIGN KEY (monarch_id) REFERENCES monarch (id)');
+ $this->addSql('ALTER TABLE transact DROP FOREIGN KEY FK_FA42B7F68707B11F');
+ $this->addSql('ALTER TABLE transact DROP FOREIGN KEY FK_FA42B7F6320375DF');
+ $this->addSql('ALTER TABLE transact DROP FOREIGN KEY FK_FA42B7F6E75A3578');
+ $this->addSql('ALTER TABLE transact DROP FOREIGN KEY FK_FA42B7F653033E82');
+ $this->addSql('ALTER TABLE transact ADD CONSTRAINT FK_FA42B7F68707B11F FOREIGN KEY (parish_id) REFERENCES parish (id)');
+ $this->addSql('ALTER TABLE transact ADD CONSTRAINT FK_FA42B7F6320375DF FOREIGN KEY (manuscript_source_id) REFERENCES manuscript_source (id)');
+ $this->addSql('ALTER TABLE transact ADD CONSTRAINT FK_FA42B7F6E75A3578 FOREIGN KEY (print_source_id) REFERENCES print_source (id)');
+ $this->addSql('ALTER TABLE transact ADD CONSTRAINT FK_FA42B7F653033E82 FOREIGN KEY (monarch_id) REFERENCES monarch (id)');
+ $this->addSql('ALTER TABLE parish DROP FOREIGN KEY FK_DFF9A9783BEA4CEE');
+ $this->addSql('ALTER TABLE parish DROP FOREIGN KEY FK_DFF9A97875E23604');
+ $this->addSql('ALTER TABLE parish ADD CONSTRAINT FK_DFF9A9783BEA4CEE FOREIGN KEY (archdeaconry_id) REFERENCES archdeaconry (id)');
+ $this->addSql('ALTER TABLE parish ADD CONSTRAINT FK_DFF9A97875E23604 FOREIGN KEY (town_id) REFERENCES town (id)');
+ $this->addSql('ALTER TABLE county DROP FOREIGN KEY FK_58E2FF25AE3899');
+ $this->addSql('ALTER TABLE county ADD CONSTRAINT FK_58E2FF25AE3899 FOREIGN KEY (nation_id) REFERENCES nation (id)');
+ $this->addSql('ALTER TABLE province DROP FOREIGN KEY FK_4ADAD40BAE3899');
+ $this->addSql('ALTER TABLE province ADD CONSTRAINT FK_4ADAD40BAE3899 FOREIGN KEY (nation_id) REFERENCES nation (id)');
+ $this->addSql('ALTER TABLE print_source DROP FOREIGN KEY FK_534D01C12E39CD42');
+ $this->addSql('ALTER TABLE print_source ADD CONSTRAINT FK_534D01C12E39CD42 FOREIGN KEY (source_category_id) REFERENCES source_category (id)');
+ $this->addSql('ALTER TABLE diocese DROP FOREIGN KEY FK_8849E742E946114A');
+ $this->addSql('ALTER TABLE diocese ADD CONSTRAINT FK_8849E742E946114A FOREIGN KEY (province_id) REFERENCES province (id)');
+ $this->addSql('ALTER TABLE town DROP FOREIGN KEY FK_4CE6C7A485E73F45');
+ $this->addSql('ALTER TABLE town ADD CONSTRAINT FK_4CE6C7A485E73F45 FOREIGN KEY (county_id) REFERENCES county (id)');
+ $this->addSql('ALTER TABLE inventory DROP FOREIGN KEY FK_B12D4A36320375DF');
+ $this->addSql('ALTER TABLE inventory DROP FOREIGN KEY FK_B12D4A36E75A3578');
+ $this->addSql('ALTER TABLE inventory DROP FOREIGN KEY FK_B12D4A368707B11F');
+ $this->addSql('ALTER TABLE inventory DROP FOREIGN KEY FK_B12D4A3653033E82');
+ $this->addSql('ALTER TABLE inventory ADD CONSTRAINT FK_B12D4A36320375DF FOREIGN KEY (manuscript_source_id) REFERENCES manuscript_source (id)');
+ $this->addSql('ALTER TABLE inventory ADD CONSTRAINT FK_B12D4A36E75A3578 FOREIGN KEY (print_source_id) REFERENCES print_source (id)');
+ $this->addSql('ALTER TABLE inventory ADD CONSTRAINT FK_B12D4A368707B11F FOREIGN KEY (parish_id) REFERENCES parish (id)');
+ $this->addSql('ALTER TABLE inventory ADD CONSTRAINT FK_B12D4A3653033E82 FOREIGN KEY (monarch_id) REFERENCES monarch (id)');
+ $this->addSql('ALTER TABLE book DROP FOREIGN KEY FK_CBE5A33153033E82');
+ $this->addSql('ALTER TABLE book ADD CONSTRAINT FK_CBE5A33153033E82 FOREIGN KEY (monarch_id) REFERENCES monarch (id)');
+ $this->addSql('ALTER TABLE manuscript_source DROP FOREIGN KEY FK_CE3EE8022E39CD42');
+ $this->addSql('ALTER TABLE manuscript_source DROP FOREIGN KEY FK_CE3EE8022956195F');
+ $this->addSql('ALTER TABLE manuscript_source ADD CONSTRAINT FK_5F8A7F732956195F FOREIGN KEY (archive_id) REFERENCES archive (id)');
+ $this->addSql('ALTER TABLE manuscript_source ADD CONSTRAINT FK_5F8A7F732E39CD42 FOREIGN KEY (source_category_id) REFERENCES source_category (id)');
+ }
+}
diff --git a/phpstan-baseline.neon b/phpstan-baseline.neon
deleted file mode 100644
index d1be8dd..0000000
--- a/phpstan-baseline.neon
+++ /dev/null
@@ -1,22 +0,0 @@
-parameters:
- ignoreErrors:
- -
- message: "#^Cannot call method upload\\(\\) on array\\\\|Symfony\\\\Component\\\\DomCrawler\\\\Field\\\\FormField\\>\\|Symfony\\\\Component\\\\DomCrawler\\\\Field\\\\FormField\\.$#"
- count: 2
- path: tests/Controller/HoldingTest.php
-
- -
- message: "#^Cannot call method upload\\(\\) on array\\\\|Symfony\\\\Component\\\\DomCrawler\\\\Field\\\\FormField\\>\\|Symfony\\\\Component\\\\DomCrawler\\\\Field\\\\FormField\\.$#"
- count: 2
- path: tests/Controller/InventoryTest.php
-
- -
- message: "#^Unreachable statement \\- code above always terminates\\.$#"
- count: 1
- path: tests/Controller/InventoryTest.php
-
- -
- message: "#^Unreachable statement \\- code above always terminates\\.$#"
- count: 2
- path: tests/Controller/SourceTest.php
-
diff --git a/phpstan.neon b/phpstan.neon
deleted file mode 100644
index 61ce122..0000000
--- a/phpstan.neon
+++ /dev/null
@@ -1,5 +0,0 @@
-includes:
- - phpstan.neon.dist
-
-parameters:
- editorUrl: 'phpstorm://open?file=%%file%%&line=%%line%%'
diff --git a/phpstan.neon.dist b/phpstan.neon.dist
deleted file mode 100644
index e32e3b9..0000000
--- a/phpstan.neon.dist
+++ /dev/null
@@ -1,38 +0,0 @@
-includes:
- - phpstan-baseline.neon
- - vendor/phpstan/phpstan-symfony/extension.neon
- - vendor/phpstan/phpstan-doctrine/extension.neon
-
-parameters:
- tmpDir: var/cache/phpstan
- level: 6
- paths:
- - src
- - tests
- - migrations
- excludePaths:
- - src/Kernel.php
- - tests/*/data/*
- - tests/bootstrap.php
- treatPhpDocTypesAsCertain: false
- checkUninitializedProperties: true
- checkMissingIterableValueType: false
- checkGenericClassInNonGenericObjectType: false
- checkMissingCallableSignature: true
- dynamicConstantNames:
- - App\Tests\Controller\ArchdeaconryTest::ANON_RESPONSE_CODE
- - App\Tests\Controller\ArchiveTest::ANON_RESPONSE_CODE
- - App\Tests\Controller\BookTest::ANON_RESPONSE_CODE
- - App\Tests\Controller\CountyTest::ANON_RESPONSE_CODE
- - App\Tests\Controller\DioceseTest::ANON_RESPONSE_CODE
- - App\Tests\Controller\FormatTest::ANON_RESPONSE_CODE
- - App\Tests\Controller\HoldingTest::ANON_RESPONSE_CODE
- - App\Tests\Controller\InjunctionTest::ANON_RESPONSE_CODE
- - App\Tests\Controller\MonarchTest::ANON_RESPONSE_CODE
- - App\Tests\Controller\NationTest::ANON_RESPONSE_CODE
- - App\Tests\Controller\ParishTest::ANON_RESPONSE_CODE
- - App\Tests\Controller\ProvinceTest::ANON_RESPONSE_CODE
- - App\Tests\Controller\SourceCategoryTest::ANON_RESPONSE_CODE
- - App\Tests\Controller\TownTest::ANON_RESPONSE_CODE
- - App\Tests\Controller\TransactionCategoryTest::ANON_RESPONSE_CODE
- - App\Tests\Controller\TransactionTest::ANON_RESPONSE_CODE
diff --git a/phpunit.coverage.xml b/phpunit.coverage.xml
deleted file mode 100644
index 29cf2b5..0000000
--- a/phpunit.coverage.xml
+++ /dev/null
@@ -1,56 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- src
-
-
- src/DataFixtures
- src/Kernel.php
- src/.preload.php
-
-
-
-
-
-
-
-
- tests
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/phpunit.xml.dist b/phpunit.xml.dist
index 415f7d7..35f8cf5 100644
--- a/phpunit.xml.dist
+++ b/phpunit.xml.dist
@@ -1,15 +1,13 @@
-
+ cacheResultFile=".phpunit.cache/test-results"
+ convertDeprecationsToExceptions="false"
+ colors="true"
+ verbose="true">
-
+
@@ -21,16 +19,28 @@
-
+
tests
+
+
+ src
+
+
+ src/DataFixtures
+ src/Kernel.php
+ src/.preload.php
+
+
+
-
+
-
+
\ No newline at end of file
diff --git a/public/.htaccess b/public/.htaccess
deleted file mode 100644
index f58882d..0000000
--- a/public/.htaccess
+++ /dev/null
@@ -1,29 +0,0 @@
-DirectoryIndex index.php
-
-Options FollowSymlinks
-
-
- Options -MultiViews
-
-
-
- RewriteEngine On
- RewriteCond %{REQUEST_URI}::$0 ^(/.+)/(.*)::\2$
- RewriteRule .* - [E=BASE:%1]
-
- # Sets the HTTP_AUTHORIZATION header removed by Apache
- RewriteCond %{HTTP:Authorization} .+
- RewriteRule ^ - [E=HTTP_AUTHORIZATION:%0]
-
- RewriteCond %{ENV:REDIRECT_STATUS} =""
- RewriteRule ^index\.php(?:/(.*)|$) %{ENV:BASE}/$1 [R=301,L]
-
- RewriteCond %{REQUEST_FILENAME} !-f
- RewriteRule ^ %{ENV:BASE}/index.php [L]
-
-
-
-
- RedirectMatch 307 ^/$ /index.php/
-
-
diff --git a/public/css/bep.css b/public/css/bep.css
new file mode 100644
index 0000000..42c3715
--- /dev/null
+++ b/public/css/bep.css
@@ -0,0 +1,109 @@
+/* Sticky footer styles
+-------------------------------------------------- */
+html {
+ position: relative;
+ min-height: 100%;
+}
+body {
+ /* Margin bottom by footer height */
+ margin-bottom: 90px;
+ margin-top: 70px;
+}
+.footer {
+ position: absolute;
+ bottom: 0;
+ width: 100%;
+ /* Set the fixed height of the footer here */
+ height: 60px;
+ background-color: #f5f5f5;
+}
+
+.navbar-nav .nav-link {
+ padding: 1em 0;
+}
+
+.navbar-nav .nav-link.show {
+ background-image:-webkit-linear-gradient(top,#dbdbdb 0,#e2e2e2 100%);
+ background-image:-o-linear-gradient(top,#dbdbdb 0,#e2e2e2 100%);
+}
+
+/* Custom app styles */
+label.required::after, legend.required::after {
+ content: ' *';
+ color: red;
+ font-weight: bold;
+}
+
+a[href ^= 'mailto:']::after {
+ content: "\f32c";
+ display: inline-block;
+ font-family: bootstrap-icons !important;
+ font-style: normal;
+ font-weight: normal !important;
+ font-variant: normal;
+ text-transform: none;
+ line-height: 1;
+ vertical-align: -.125em;
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
+ padding-left: 0.5ex;
+}
+
+a[href ^= 'http://']::after,
+a[href ^= 'https://']::after {
+ content: "\F1C5";
+ display: inline-block;
+ font-family: bootstrap-icons !important;
+ font-style: normal;
+ font-weight: normal !important;
+ font-variant: normal;
+ text-transform: none;
+ line-height: 1;
+ vertical-align: -.125em;
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
+ padding-left: 0.5ex;
+}
+
+.breadcrumb .breadcrumb-item {
+ max-width: 250px;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+}
+
+.card {
+ margin-bottom: 20px;
+}
+
+.popover .popover-body {
+ padding: 0px;
+}
+
+div.collection span[class*="-collection-actions"] {
+ width: inherit !important;
+}
+
+div.collection-complex > div:not(:last-child) {
+ padding-top: 15px;
+ border: 1px solid rgba(128, 128, 128, 0.31);
+}
+
+/* Image gallery styles. */
+
+.modal {
+ top: 50px;
+ margin-bottom: 15px;
+}
+
+#modalImage {
+ max-width: 100%;
+ display: block;
+ margin: 0 auto 0 auto;
+}
+
+.modal-dialog {
+ width: auto;
+ max-width: 75vw;
+ max-height: 75vh;
+}
diff --git a/public/health.php b/public/health.php
new file mode 100644
index 0000000..a4abe2d
--- /dev/null
+++ b/public/health.php
@@ -0,0 +1,2 @@
+handle($request);
-$response->send();
-$kernel->terminate($request, $response);
+return fn(array $context) => new Kernel($context['APP_ENV'], (bool) $context['APP_DEBUG']);
diff --git a/public/js/editor-config.js b/public/js/editor-config.js
index 9188c9e..9e7378e 100644
--- a/public/js/editor-config.js
+++ b/public/js/editor-config.js
@@ -3,7 +3,7 @@ function getTinyMceConfig(editorUploadPath) {
return {
branding: false,
selector: '.tinymce',
- plugins: 'advlist anchor charmap code help hr image imagetools link ' +
+ plugins: 'advlist anchor charmap code help hr link ' +
'lists paste preview searchreplace table wordcount',
relative_urls: false,
convert_urls: false,
@@ -22,43 +22,13 @@ function getTinyMceConfig(editorUploadPath) {
[0xdf, 'latin letter sharp s'],
],
- image_caption: true,
- images_upload_url: editorUploadPath,
- images_upload_credentials: true,
- image_advtab: true,
- image_title: true,
-
resize: true,
- paste_as_text: true,
+ paste_as_text: false,
paste_block_drop: true,
+ paste_enable_default_filters: false,
+ paste_word_valid_elements: 'a,b,strong,i,em,h1,h2',
style_formats_merge: true,
- style_formats: [{
- title: 'Image Left',
- selector: 'img, figure',
- styles: {
- 'float': 'left',
- 'margin': '0 10px 0 10px',
- },
- },
- {
- title: 'Image Center',
- selector: 'img, figure',
- styles: {
- position: 'relative',
- transform: 'translateX(-50%)',
- left: '50%',
- },
- },
- {
- title: 'Image Right',
- selector: 'img, figure',
- styles: {
- 'float': 'right',
- 'margin': '0 10px 0 10px',
- },
- },
- ],
};
}
diff --git a/public/js/form.js b/public/js/form.js
new file mode 100644
index 0000000..5bde8fc
--- /dev/null
+++ b/public/js/form.js
@@ -0,0 +1,192 @@
+(function ($, window, document) {
+
+ const hostname = window.location.hostname.replace('www.', '');
+
+ function confirm() {
+ const $this = $(this);
+ $this.click(function () {
+ return window.confirm($this.data('confirm'));
+ });
+ }
+
+ function link() {
+ if(this.hostname.replace('www.', '') === hostname) {
+ return;
+ }
+ $(this).attr('target', '_blank');
+ }
+
+ function windowBeforeUnload(e) {
+ let clean = true;
+ $('form').each(function () {
+ const $form = $(this);
+ if ($form.data('dirty')) {
+ clean = false;
+ }
+ });
+ if (!clean) {
+ let message = 'You have unsaved changes.';
+ e.returnValue = message;
+ return message;
+ }
+ }
+
+ function formDirty() {
+ const $form = $(this);
+ $form.data('dirty', false);
+ $form.on('change', function () {
+ $form.data('dirty', true);
+ });
+ $form.on('submit', function () {
+ $(window).unbind('beforeunload');
+ });
+ }
+
+ function simpleCollection() {
+ if ( $('.collection-simple').length == 0 ) {
+ return
+ }
+ $('.collection-simple').collection({
+ init_with_n_elements: 1,
+ allow_up: false,
+ allow_down: false,
+ preserve_names: true,
+ max: 400,
+ add: ' Add',
+ remove: ' Remove',
+ });
+ }
+
+ function complexCollection() {
+ if ( $('.collection-complex').length == 0 ) {
+ return
+ }
+ $('.collection-complex').each( (_, collectionEl) => {
+ const label = $(collectionEl).data('collection-label');
+ const prompt = label ? `Add New ${label}` : `Add New Item`;
+ $(collectionEl).collection({
+ init_with_n_elements: 0,
+ allow_up: false,
+ allow_down: false,
+ max: 400,
+ position_field_selector: '.position-id',
+ add_at_the_end: true,
+ add: ` ${prompt}`,
+ remove: ' Remove',
+ after_add: function(_, element){
+ $(element).find('.select2entity').select2entity();
+ $(element).find('.select2-simple').select2({
+ width: '100%',
+ });
+ if (tinymce && $(element).find('.tinymce').length > 0 ) {
+ $(element).find('.tinymce').each(function (_, textarea) {
+ tinymce.execCommand("mceAddEditor", false, textarea.id);
+ });
+ }
+ return true;
+ },
+ })
+ });
+ }
+
+ function imageModals() {
+ $('#imgModal').on('show.bs.modal', function (event) {
+ const $button = $(event.relatedTarget);
+ // Button that triggered the modal
+ const $modal = $(this);
+
+ $modal.find('#modalTitle').text($button.data('title'));
+ $modal.find('figcaption').html($button.parent().parent().find('.caption').clone());
+ $modal.find("#modalImage").attr('src', $button.data('img'));
+ });
+ }
+
+ function menuTabs() {
+ const localStorageId = `tab-${location.href}-target`
+ const lastShownTab = localStorage.getItem(localStorageId)
+
+ const tabToggleList = document.querySelectorAll('[data-bs-toggle="tab"]')
+ tabToggleList.forEach(function (tabToggle) {
+ tabToggle.addEventListener('shown.bs.tab', () => {
+ localStorage.setItem(localStorageId, tabToggle.id)
+ })
+ if (lastShownTab === tabToggle.id) {
+ new bootstrap.Tab(tabToggle).show()
+ }
+ });
+ }
+
+ $(document).ready(function () {
+ $(window).bind('beforeunload', windowBeforeUnload);
+ $('form').each(formDirty);
+ $("a").each(link);
+ $("*[data-confirm]").each(confirm);
+ let popoverTriggerList = [].slice.call(document.querySelectorAll('[data-bs-toggle="popover"]'))
+ popoverTriggerList.map(function (popoverTriggerEl) {
+ return new bootstrap.Popover(popoverTriggerEl, {
+ html: true,
+ trigger: 'focus',
+ })
+ }) // add this line to enable bootstrap popover
+ let alertList = document.querySelectorAll('.alert')
+ alertList.forEach(function (alert) {
+ new bootstrap.Alert(alert);
+ }); // add alert dismissal
+ if (typeof $().collection === 'function') {
+ simpleCollection();
+ complexCollection();
+ }
+ imageModals();
+ menuTabs();
+ $('.select2-simple').select2({
+ width: '100%',
+ });
+
+ const select2entityModal = document.getElementById('select2entity_modal')
+ if (select2entityModal) {
+ select2entityModal.addEventListener('show.bs.modal', event => {
+ const button = event.relatedTarget
+ const contentRoute = button.getAttribute('data-modal-content-route');
+ const resultTarget = button.getAttribute('data-modal-result-target');
+ $(select2entityModal).find('.modal-content').load(contentRoute, () => {
+ // form submission
+ $(select2entityModal).find('form').submit((formSubmitEvent) => {
+ formSubmitEvent.preventDefault();
+ $.post(
+ $(select2entityModal).find('form').attr("action"),
+ $(select2entityModal).find('form').serialize(),
+ (result) => {
+ if (result.success) {
+ if (resultTarget && result.data) {
+ const { id, text } = result.data;
+ const newOption = new Option(text, id, true, true);
+ $(resultTarget).append(newOption).val(id).trigger('change');
+ }
+ $(select2entityModal).modal('hide');
+ } else {
+ alert(`There was a problem saving the form: \n${result.errors.join('\n')}`);
+ }
+ },
+ );
+ });
+ // initialize select2entity, select2 simple, and tinymce for modal content
+ $(select2entityModal).find('.select2entity').select2entity();
+ $(select2entityModal).find('.select2-simple').select2({
+ width: '100%',
+ });
+ if (tinymce && $(select2entityModal).find('.tinymce').length > 0 ) {
+ $(select2entityModal).find('.tinymce').each(function (index, textarea) {
+ tinymce.execCommand('mceRemoveEditor', false, textarea.id);
+ tinymce.execCommand("mceAddEditor", false, textarea.id);
+ });
+ }
+ });
+ });
+ select2entityModal.addEventListener('hidden.bs.modal', () => {
+ // remove current modal content on hide
+ $(select2entityModal).find('.modal-content').html('');
+ });
+ }
+ });
+
+})(jQuery, window, document);
diff --git a/package.json b/public/package.json
similarity index 69%
rename from package.json
rename to public/package.json
index f691c93..5643387 100644
--- a/package.json
+++ b/public/package.json
@@ -6,11 +6,12 @@
"license": "GPL-2.0-or-later",
"private": true,
"dependencies": {
- "bootstrap3": "^3.3.5",
+ "bootstrap": "^5.2.3",
+ "bootstrap-icons": "^1.10.5",
"jquery": "^3.4.1",
"select2": "^4.0.12",
- "select2-bootstrap-css": "^1.4.6",
+ "select2-bootstrap-5-theme": "^1.3.0",
"symfony-collection": "^2.1.30",
- "tinymce": "^5.10.7"
+ "tinymce": "^5.10.9"
}
}
diff --git a/public/yarn.lock b/public/yarn.lock
new file mode 100644
index 0000000..4bb8689
--- /dev/null
+++ b/public/yarn.lock
@@ -0,0 +1,50 @@
+# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
+# yarn lockfile v1
+
+
+bootstrap-icons@^1.10.5:
+ version "1.11.3"
+ resolved "https://registry.yarnpkg.com/bootstrap-icons/-/bootstrap-icons-1.11.3.tgz#03f9cb754ec005c52f9ee616e2e84a82cab3084b"
+ integrity sha512-+3lpHrCw/it2/7lBL15VR0HEumaBss0+f/Lb6ZvHISn1mlK83jjFpooTLsMWbIjJMDjDjOExMsTxnXSIT4k4ww==
+
+bootstrap@^5.1.3, bootstrap@^5.2.3:
+ version "5.3.3"
+ resolved "https://registry.yarnpkg.com/bootstrap/-/bootstrap-5.3.3.tgz#de35e1a765c897ac940021900fcbb831602bac38"
+ integrity sha512-8HLCdWgyoMguSO9o+aH+iuZ+aht+mzW0u3HIMzVu7Srrpv7EBBxTnrFlSCskwdY1+EOFQSm7uMJhNQHkdPcmjg==
+
+jquery-ui@>=1.0:
+ version "1.13.3"
+ resolved "https://registry.yarnpkg.com/jquery-ui/-/jquery-ui-1.13.3.tgz#d9f5292b2857fa1f2fdbbe8f2e66081664eb9bc5"
+ integrity sha512-D2YJfswSJRh/B8M/zCowDpNFfwsDmtfnMPwjJTyvl+CBqzpYwQ+gFYIbUUlzijy/Qvoy30H1YhoSui4MNYpRwA==
+ dependencies:
+ jquery ">=1.8.0 <4.0.0"
+
+jquery@>=1.7, "jquery@>=1.8.0 <4.0.0", jquery@^3.4.1:
+ version "3.7.1"
+ resolved "https://registry.yarnpkg.com/jquery/-/jquery-3.7.1.tgz#083ef98927c9a6a74d05a6af02806566d16274de"
+ integrity sha512-m4avr8yL8kmFN8psrbFFFmB/If14iN5o9nw/NgnnM+kybDJpRsAynV2BsfpTYrTRysYUdADVD7CkUUizgkpLfg==
+
+select2-bootstrap-5-theme@^1.3.0:
+ version "1.3.0"
+ resolved "https://registry.yarnpkg.com/select2-bootstrap-5-theme/-/select2-bootstrap-5-theme-1.3.0.tgz#b7126b01c4e2cfb5ee683b219820d49da31b4810"
+ integrity sha512-uEJDruP4tmwyKcs3V0oP7CIsyC45PGF5ddo8unwTp8OucJ1PSuTOBr+xbWaHTQPGnvp7N96psVQ5UBMQvFCcHA==
+ dependencies:
+ bootstrap "^5.1.3"
+
+select2@^4.0.12:
+ version "4.0.13"
+ resolved "https://registry.yarnpkg.com/select2/-/select2-4.0.13.tgz#0dbe377df3f96167c4c1626033e924372d8ef44d"
+ integrity sha512-1JeB87s6oN/TDxQQYCvS5EFoQyvV6eYMZZ0AeA4tdFDYWN3BAGZ8npr17UBFddU0lgAt3H0yjX3X6/ekOj1yjw==
+
+symfony-collection@^2.1.30:
+ version "2.1.30"
+ resolved "https://registry.yarnpkg.com/symfony-collection/-/symfony-collection-2.1.30.tgz#c9b50abec1a080a6694973d91975d1acf14efb31"
+ integrity sha512-IkTiqKbfDkR6kZD1Fg6JkZFErMSx8wyu/PQt87UPGkcjeDrVxMmuGviLZys0FSdCReYc6oa94uuIOZS10OBzDw==
+ dependencies:
+ jquery ">=1.7"
+ jquery-ui ">=1.0"
+
+tinymce@^5.10.9:
+ version "5.10.9"
+ resolved "https://registry.yarnpkg.com/tinymce/-/tinymce-5.10.9.tgz#1dfacb3231c71a688d90ff44a0b3f2e91b3b9edf"
+ integrity sha512-5bkrors87X9LhYX2xq8GgPHrIgJYHl87YNs+kBcjQ5I3CiUgzo/vFcGvT3MZQ9QHsEeYMhYO6a5CLGGffR8hMg==
diff --git a/src/Controller/ArchdeaconryController.php b/src/Controller/ArchdeaconryController.php
index 813d232..5537296 100644
--- a/src/Controller/ArchdeaconryController.php
+++ b/src/Controller/ArchdeaconryController.php
@@ -2,17 +2,12 @@
declare(strict_types=1);
-/*
- * (c) 2022 Michael Joyce
- * This source file is subject to the GPL v2, bundled
- * with this source code in the file LICENSE.
- */
-
namespace App\Controller;
use App\Entity\Archdeaconry;
use App\Form\ArchdeaconryType;
use App\Repository\ArchdeaconryRepository;
+use Doctrine\ORM\EntityManagerInterface;
use Knp\Bundle\PaginatorBundle\Definition\PaginatorAwareInterface;
use Nines\UtilBundle\Controller\PaginatorTrait;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\IsGranted;
@@ -23,55 +18,24 @@
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\Routing\Annotation\Route;
-/**
- * @Route("/archdeaconry")
- */
+#[Route(path: '/archdeaconry')]
class ArchdeaconryController extends AbstractController implements PaginatorAwareInterface {
use PaginatorTrait;
- /**
- * @Route("/", name="archdeaconry_index", methods={"GET"})
- *
- * @Template
- */
+ #[Route(path: '/', name: 'archdeaconry_index', methods: ['GET'])]
+ #[Template]
public function index(Request $request, ArchdeaconryRepository $archdeaconryRepository) : array {
- $query = $archdeaconryRepository->indexQuery();
- $pageSize = $this->getParameter('page_size');
- $page = $request->query->getint('page', 1);
-
- return [
- 'archdeaconries' => $this->paginator->paginate($query, $page, $pageSize),
- ];
- }
-
- /**
- * @Route("/search", name="archdeaconry_search", methods={"GET"})
- *
- * @Template
- *
- * @return array
- */
- public function search(Request $request, ArchdeaconryRepository $archdeaconryRepository) {
$q = $request->query->get('q');
- if ($q) {
- $query = $archdeaconryRepository->searchQuery($q);
- $archdeaconries = $this->paginator->paginate($query, $request->query->getInt('page', 1), $this->getParameter('page_size'), ['wrap-queries' => true]);
- } else {
- $archdeaconries = [];
- }
+ $query = $q ? $archdeaconryRepository->searchQuery($q) : $archdeaconryRepository->indexQuery();
return [
- 'archdeaconries' => $archdeaconries,
+ 'archdeaconries' => $this->paginator->paginate($query, $request->query->getInt('page', 1), $this->getParameter('page_size')),
'q' => $q,
];
}
- /**
- * @Route("/typeahead", name="archdeaconry_typeahead", methods={"GET"})
- *
- * @return JsonResponse
- */
- public function typeahead(Request $request, ArchdeaconryRepository $archdeaconryRepository) {
+ #[Route(path: '/typeahead', name: 'archdeaconry_typeahead', methods: ['GET'])]
+ public function typeahead(Request $request, ArchdeaconryRepository $archdeaconryRepository) : JsonResponse {
$q = $request->query->get('q');
if ( ! $q) {
return new JsonResponse([]);
@@ -88,20 +52,15 @@ public function typeahead(Request $request, ArchdeaconryRepository $archdeaconry
return new JsonResponse($data);
}
- /**
- * @Route("/new", name="archdeaconry_new", methods={"GET", "POST"})
- * @Template
- * @IsGranted("ROLE_CONTENT_ADMIN")
- *
- * @return array|RedirectResponse
- */
- public function new(Request $request) {
+ #[Route(path: '/new', name: 'archdeaconry_new', methods: ['GET', 'POST'])]
+ #[Template]
+ #[IsGranted('ROLE_CONTENT_ADMIN')]
+ public function new(EntityManagerInterface $entityManager, Request $request) : array|RedirectResponse {
$archdeaconry = new Archdeaconry();
$form = $this->createForm(ArchdeaconryType::class, $archdeaconry);
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
- $entityManager = $this->getDoctrine()->getManager();
$entityManager->persist($archdeaconry);
$entityManager->flush();
@@ -116,43 +75,23 @@ public function new(Request $request) {
];
}
- /**
- * @Route("/new_popup", name="archdeaconry_new_popup", methods={"GET", "POST"})
- * @Template
- * @IsGranted("ROLE_CONTENT_ADMIN")
- *
- * @return array|RedirectResponse
- */
- public function new_popup(Request $request) {
- return $this->new($request);
- }
-
- /**
- * @Route("/{id}", name="archdeaconry_show", methods={"GET"})
- * @Template
- *
- * @return array
- */
- public function show(Archdeaconry $archdeaconry) {
+ #[Route(path: '/{id}', name: 'archdeaconry_show', methods: ['GET'])]
+ #[Template]
+ public function show(Archdeaconry $archdeaconry) : array {
return [
'archdeaconry' => $archdeaconry,
];
}
- /**
- * @IsGranted("ROLE_CONTENT_ADMIN")
- * @Route("/{id}/edit", name="archdeaconry_edit", methods={"GET", "POST"})
- *
- * @Template
- *
- * @return array|RedirectResponse
- */
- public function edit(Request $request, Archdeaconry $archdeaconry) {
+ #[IsGranted('ROLE_CONTENT_ADMIN')]
+ #[Route(path: '/{id}/edit', name: 'archdeaconry_edit', methods: ['GET', 'POST'])]
+ #[Template]
+ public function edit(EntityManagerInterface $entityManager, Request $request, Archdeaconry $archdeaconry) : array|RedirectResponse {
$form = $this->createForm(ArchdeaconryType::class, $archdeaconry);
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
- $this->getDoctrine()->getManager()->flush();
+ $entityManager->flush();
$this->addFlash('success', 'The updated archdeaconry has been saved.');
return $this->redirectToRoute('archdeaconry_show', ['id' => $archdeaconry->getId()]);
@@ -164,15 +103,10 @@ public function edit(Request $request, Archdeaconry $archdeaconry) {
];
}
- /**
- * @IsGranted("ROLE_CONTENT_ADMIN")
- * @Route("/{id}", name="archdeaconry_delete", methods={"DELETE"})
- *
- * @return RedirectResponse
- */
- public function delete(Request $request, Archdeaconry $archdeaconry) {
+ #[IsGranted('ROLE_CONTENT_ADMIN')]
+ #[Route(path: '/{id}', name: 'archdeaconry_delete', methods: ['DELETE'])]
+ public function delete(EntityManagerInterface $entityManager, Request $request, Archdeaconry $archdeaconry) : RedirectResponse {
if ($this->isCsrfTokenValid('delete' . $archdeaconry->getId(), $request->request->get('_token'))) {
- $entityManager = $this->getDoctrine()->getManager();
$entityManager->remove($archdeaconry);
$entityManager->flush();
$this->addFlash('success', 'The archdeaconry has been deleted.');
diff --git a/src/Controller/ArchiveController.php b/src/Controller/ArchiveController.php
index f5f9f88..f9045c4 100644
--- a/src/Controller/ArchiveController.php
+++ b/src/Controller/ArchiveController.php
@@ -2,17 +2,12 @@
declare(strict_types=1);
-/*
- * (c) 2022 Michael Joyce
- * This source file is subject to the GPL v2, bundled
- * with this source code in the file LICENSE.
- */
-
namespace App\Controller;
use App\Entity\Archive;
use App\Form\ArchiveType;
use App\Repository\ArchiveRepository;
+use Doctrine\ORM\EntityManagerInterface;
use Knp\Bundle\PaginatorBundle\Definition\PaginatorAwareInterface;
use Nines\UtilBundle\Controller\PaginatorTrait;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\IsGranted;
@@ -23,55 +18,24 @@
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\Routing\Annotation\Route;
-/**
- * @Route("/archive")
- */
+#[Route(path: '/archive')]
class ArchiveController extends AbstractController implements PaginatorAwareInterface {
use PaginatorTrait;
- /**
- * @Route("/", name="archive_index", methods={"GET"})
- *
- * @Template
- */
+ #[Route(path: '/', name: 'archive_index', methods: ['GET'])]
+ #[Template]
public function index(Request $request, ArchiveRepository $archiveRepository) : array {
- $query = $archiveRepository->indexQuery();
- $pageSize = (int) $this->getParameter('page_size');
- $page = $request->query->getint('page', 1);
-
- return [
- 'archives' => $this->paginator->paginate($query, $page, $pageSize),
- ];
- }
-
- /**
- * @Route("/search", name="archive_search", methods={"GET"})
- *
- * @Template
- *
- * @return array
- */
- public function search(Request $request, ArchiveRepository $archiveRepository) {
$q = $request->query->get('q');
- if ($q) {
- $query = $archiveRepository->searchQuery($q);
- $archives = $this->paginator->paginate($query, $request->query->getInt('page', 1), $this->getParameter('page_size'), ['wrap-queries' => true]);
- } else {
- $archives = [];
- }
+ $query = $q ? $archiveRepository->searchQuery($q) : $archiveRepository->indexQuery();
return [
- 'archives' => $archives,
+ 'archives' => $this->paginator->paginate($query, $request->query->getInt('page', 1), $this->getParameter('page_size'), ['wrap-queries' => true]),
'q' => $q,
];
}
- /**
- * @Route("/typeahead", name="archive_typeahead", methods={"GET"})
- *
- * @return JsonResponse
- */
- public function typeahead(Request $request, ArchiveRepository $archiveRepository) {
+ #[Route(path: '/typeahead', name: 'archive_typeahead', methods: ['GET'])]
+ public function typeahead(Request $request, ArchiveRepository $archiveRepository) : JsonResponse {
$q = $request->query->get('q');
if ( ! $q) {
return new JsonResponse([]);
@@ -88,20 +52,15 @@ public function typeahead(Request $request, ArchiveRepository $archiveRepository
return new JsonResponse($data);
}
- /**
- * @Route("/new", name="archive_new", methods={"GET", "POST"})
- * @Template
- * @IsGranted("ROLE_CONTENT_ADMIN")
- *
- * @return array|RedirectResponse
- */
- public function new(Request $request) {
+ #[Route(path: '/new', name: 'archive_new', methods: ['GET', 'POST'])]
+ #[Template]
+ #[IsGranted('ROLE_CONTENT_ADMIN')]
+ public function new(EntityManagerInterface $entityManager, Request $request) : array|RedirectResponse {
$archive = new Archive();
$form = $this->createForm(ArchiveType::class, $archive);
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
- $entityManager = $this->getDoctrine()->getManager();
$entityManager->persist($archive);
$entityManager->flush();
@@ -116,43 +75,23 @@ public function new(Request $request) {
];
}
- /**
- * @Route("/new_popup", name="archive_new_popup", methods={"GET", "POST"})
- * @Template
- * @IsGranted("ROLE_CONTENT_ADMIN")
- *
- * @return array|RedirectResponse
- */
- public function new_popup(Request $request) {
- return $this->new($request);
- }
-
- /**
- * @Route("/{id}", name="archive_show", methods={"GET"})
- * @Template
- *
- * @return array
- */
- public function show(Archive $archive) {
+ #[Route(path: '/{id}', name: 'archive_show', methods: ['GET'])]
+ #[Template]
+ public function show(Archive $archive) : array {
return [
'archive' => $archive,
];
}
- /**
- * @IsGranted("ROLE_CONTENT_ADMIN")
- * @Route("/{id}/edit", name="archive_edit", methods={"GET", "POST"})
- *
- * @Template
- *
- * @return array|RedirectResponse
- */
- public function edit(Request $request, Archive $archive) {
+ #[IsGranted('ROLE_CONTENT_ADMIN')]
+ #[Route(path: '/{id}/edit', name: 'archive_edit', methods: ['GET', 'POST'])]
+ #[Template]
+ public function edit(EntityManagerInterface $entityManager, Request $request, Archive $archive) : array|RedirectResponse {
$form = $this->createForm(ArchiveType::class, $archive);
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
- $this->getDoctrine()->getManager()->flush();
+ $entityManager->flush();
$this->addFlash('success', 'The updated archive has been saved.');
return $this->redirectToRoute('archive_show', ['id' => $archive->getId()]);
@@ -164,15 +103,10 @@ public function edit(Request $request, Archive $archive) {
];
}
- /**
- * @IsGranted("ROLE_CONTENT_ADMIN")
- * @Route("/{id}", name="archive_delete", methods={"DELETE"})
- *
- * @return RedirectResponse
- */
- public function delete(Request $request, Archive $archive) {
+ #[IsGranted('ROLE_CONTENT_ADMIN')]
+ #[Route(path: '/{id}', name: 'archive_delete', methods: ['DELETE'])]
+ public function delete(EntityManagerInterface $entityManager, Request $request, Archive $archive) : RedirectResponse {
if ($this->isCsrfTokenValid('delete' . $archive->getId(), $request->request->get('_token'))) {
- $entityManager = $this->getDoctrine()->getManager();
$entityManager->remove($archive);
$entityManager->flush();
$this->addFlash('success', 'The archive has been deleted.');
diff --git a/src/Controller/BookController.php b/src/Controller/BookController.php
index b16f676..be365de 100644
--- a/src/Controller/BookController.php
+++ b/src/Controller/BookController.php
@@ -2,17 +2,12 @@
declare(strict_types=1);
-/*
- * (c) 2022 Michael Joyce
- * This source file is subject to the GPL v2, bundled
- * with this source code in the file LICENSE.
- */
-
namespace App\Controller;
use App\Entity\Book;
use App\Form\BookType;
use App\Repository\BookRepository;
+use Doctrine\ORM\EntityManagerInterface;
use Knp\Bundle\PaginatorBundle\Definition\PaginatorAwareInterface;
use Nines\UtilBundle\Controller\PaginatorTrait;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\IsGranted;
@@ -23,55 +18,24 @@
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\Routing\Annotation\Route;
-/**
- * @Route("/book")
- */
+#[Route(path: '/book')]
class BookController extends AbstractController implements PaginatorAwareInterface {
use PaginatorTrait;
- /**
- * @Route("/", name="book_index", methods={"GET"})
- *
- * @Template
- */
+ #[Route(path: '/', name: 'book_index', methods: ['GET'])]
+ #[Template]
public function index(Request $request, BookRepository $bookRepository) : array {
- $query = $bookRepository->indexQuery();
- $pageSize = (int) $this->getParameter('page_size');
- $page = $request->query->getint('page', 1);
-
- return [
- 'books' => $this->paginator->paginate($query, $page, $pageSize),
- ];
- }
-
- /**
- * @Route("/search", name="book_search", methods={"GET"})
- *
- * @Template
- *
- * @return array
- */
- public function search(Request $request, BookRepository $bookRepository) {
$q = $request->query->get('q');
- if ($q) {
- $query = $bookRepository->searchQuery($q);
- $books = $this->paginator->paginate($query, $request->query->getInt('page', 1), $this->getParameter('page_size'), ['wrap-queries' => true]);
- } else {
- $books = [];
- }
+ $query = $q ? $bookRepository->searchQuery($q) : $bookRepository->indexQuery();
return [
- 'books' => $books,
+ 'books' => $this->paginator->paginate($query, $request->query->getInt('page', 1), $this->getParameter('page_size'), ['wrap-queries' => true]),
'q' => $q,
];
}
- /**
- * @Route("/typeahead", name="book_typeahead", methods={"GET"})
- *
- * @return JsonResponse
- */
- public function typeahead(Request $request, BookRepository $bookRepository) {
+ #[Route(path: '/typeahead', name: 'book_typeahead', methods: ['GET'])]
+ public function typeahead(Request $request, BookRepository $bookRepository) : JsonResponse {
$q = $request->query->get('q');
if (( ! $q) || (mb_strlen($q) < 4)) {
return new JsonResponse([]);
@@ -88,20 +52,15 @@ public function typeahead(Request $request, BookRepository $bookRepository) {
return new JsonResponse($data);
}
- /**
- * @Route("/new", name="book_new", methods={"GET", "POST"})
- * @Template
- * @IsGranted("ROLE_CONTENT_ADMIN")
- *
- * @return array|RedirectResponse
- */
- public function new(Request $request) {
+ #[Route(path: '/new', name: 'book_new', methods: ['GET', 'POST'])]
+ #[Template]
+ #[IsGranted('ROLE_CONTENT_ADMIN')]
+ public function new(EntityManagerInterface $entityManager, Request $request) : array|RedirectResponse {
$book = new Book();
$form = $this->createForm(BookType::class, $book);
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
- $entityManager = $this->getDoctrine()->getManager();
$entityManager->persist($book);
$entityManager->flush();
@@ -116,43 +75,23 @@ public function new(Request $request) {
];
}
- /**
- * @Route("/new_popup", name="book_new_popup", methods={"GET", "POST"})
- * @Template
- * @IsGranted("ROLE_CONTENT_ADMIN")
- *
- * @return array|RedirectResponse
- */
- public function new_popup(Request $request) {
- return $this->new($request);
- }
-
- /**
- * @Route("/{id}", name="book_show", methods={"GET"})
- * @Template
- *
- * @return array
- */
- public function show(Book $book) {
+ #[Route(path: '/{id}', name: 'book_show', methods: ['GET'])]
+ #[Template]
+ public function show(Book $book) : array {
return [
'book' => $book,
];
}
- /**
- * @IsGranted("ROLE_CONTENT_ADMIN")
- * @Route("/{id}/edit", name="book_edit", methods={"GET", "POST"})
- *
- * @Template
- *
- * @return array|RedirectResponse
- */
- public function edit(Request $request, Book $book) {
+ #[IsGranted('ROLE_CONTENT_ADMIN')]
+ #[Route(path: '/{id}/edit', name: 'book_edit', methods: ['GET', 'POST'])]
+ #[Template]
+ public function edit(EntityManagerInterface $entityManager, Request $request, Book $book) : array|RedirectResponse {
$form = $this->createForm(BookType::class, $book);
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
- $this->getDoctrine()->getManager()->flush();
+ $entityManager->flush();
$this->addFlash('success', 'The updated book has been saved.');
return $this->redirectToRoute('book_show', ['id' => $book->getId()]);
@@ -164,15 +103,10 @@ public function edit(Request $request, Book $book) {
];
}
- /**
- * @IsGranted("ROLE_CONTENT_ADMIN")
- * @Route("/{id}", name="book_delete", methods={"DELETE"})
- *
- * @return RedirectResponse
- */
- public function delete(Request $request, Book $book) {
+ #[IsGranted('ROLE_CONTENT_ADMIN')]
+ #[Route(path: '/{id}', name: 'book_delete', methods: ['DELETE'])]
+ public function delete(EntityManagerInterface $entityManager, Request $request, Book $book) : RedirectResponse {
if ($this->isCsrfTokenValid('delete' . $book->getId(), $request->request->get('_token'))) {
- $entityManager = $this->getDoctrine()->getManager();
$entityManager->remove($book);
$entityManager->flush();
$this->addFlash('success', 'The book has been deleted.');
diff --git a/src/Controller/CountyController.php b/src/Controller/CountyController.php
index 79ba155..43f84e1 100644
--- a/src/Controller/CountyController.php
+++ b/src/Controller/CountyController.php
@@ -2,17 +2,12 @@
declare(strict_types=1);
-/*
- * (c) 2022 Michael Joyce
- * This source file is subject to the GPL v2, bundled
- * with this source code in the file LICENSE.
- */
-
namespace App\Controller;
use App\Entity\County;
use App\Form\CountyType;
use App\Repository\CountyRepository;
+use Doctrine\ORM\EntityManagerInterface;
use Knp\Bundle\PaginatorBundle\Definition\PaginatorAwareInterface;
use Nines\UtilBundle\Controller\PaginatorTrait;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\IsGranted;
@@ -23,55 +18,24 @@
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\Routing\Annotation\Route;
-/**
- * @Route("/county")
- */
+#[Route(path: '/county')]
class CountyController extends AbstractController implements PaginatorAwareInterface {
use PaginatorTrait;
- /**
- * @Route("/", name="county_index", methods={"GET"})
- *
- * @Template
- */
+ #[Route(path: '/', name: 'county_index', methods: ['GET'])]
+ #[Template]
public function index(Request $request, CountyRepository $countyRepository) : array {
- $query = $countyRepository->indexQuery();
- $pageSize = $this->getParameter('page_size');
- $page = $request->query->getint('page', 1);
-
- return [
- 'counties' => $this->paginator->paginate($query, $page, $pageSize),
- ];
- }
-
- /**
- * @Route("/search", name="county_search", methods={"GET"})
- *
- * @Template
- *
- * @return array
- */
- public function search(Request $request, CountyRepository $countyRepository) {
$q = $request->query->get('q');
- if ($q) {
- $query = $countyRepository->searchQuery($q);
- $counties = $this->paginator->paginate($query, $request->query->getInt('page', 1), $this->getParameter('page_size'), ['wrap-queries' => true]);
- } else {
- $counties = [];
- }
+ $query = $q ? $countyRepository->searchQuery($q) : $countyRepository->indexQuery();
return [
- 'counties' => $counties,
+ 'counties' => $this->paginator->paginate($query, $request->query->getInt('page', 1), $this->getParameter('page_size'), ['wrap-queries' => true]),
'q' => $q,
];
}
- /**
- * @Route("/typeahead", name="county_typeahead", methods={"GET"})
- *
- * @return JsonResponse
- */
- public function typeahead(Request $request, CountyRepository $countyRepository) {
+ #[Route(path: '/typeahead', name: 'county_typeahead', methods: ['GET'])]
+ public function typeahead(Request $request, CountyRepository $countyRepository) : JsonResponse {
$q = $request->query->get('q');
if ( ! $q) {
return new JsonResponse([]);
@@ -88,20 +52,15 @@ public function typeahead(Request $request, CountyRepository $countyRepository)
return new JsonResponse($data);
}
- /**
- * @Route("/new", name="county_new", methods={"GET", "POST"})
- * @Template
- * @IsGranted("ROLE_CONTENT_ADMIN")
- *
- * @return array|RedirectResponse
- */
- public function new(Request $request) {
+ #[Route(path: '/new', name: 'county_new', methods: ['GET', 'POST'])]
+ #[Template]
+ #[IsGranted('ROLE_CONTENT_ADMIN')]
+ public function new(EntityManagerInterface $entityManager, Request $request) : array|RedirectResponse {
$county = new County();
$form = $this->createForm(CountyType::class, $county);
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
- $entityManager = $this->getDoctrine()->getManager();
$entityManager->persist($county);
$entityManager->flush();
@@ -116,43 +75,23 @@ public function new(Request $request) {
];
}
- /**
- * @Route("/new_popup", name="county_new_popup", methods={"GET", "POST"})
- * @Template
- * @IsGranted("ROLE_CONTENT_ADMIN")
- *
- * @return array|RedirectResponse
- */
- public function new_popup(Request $request) {
- return $this->new($request);
- }
-
- /**
- * @Route("/{id}", name="county_show", methods={"GET"})
- * @Template
- *
- * @return array
- */
- public function show(County $county) {
+ #[Route(path: '/{id}', name: 'county_show', methods: ['GET'])]
+ #[Template]
+ public function show(County $county) : array {
return [
'county' => $county,
];
}
- /**
- * @IsGranted("ROLE_CONTENT_ADMIN")
- * @Route("/{id}/edit", name="county_edit", methods={"GET", "POST"})
- *
- * @Template
- *
- * @return array|RedirectResponse
- */
- public function edit(Request $request, County $county) {
+ #[IsGranted('ROLE_CONTENT_ADMIN')]
+ #[Route(path: '/{id}/edit', name: 'county_edit', methods: ['GET', 'POST'])]
+ #[Template]
+ public function edit(EntityManagerInterface $entityManager, Request $request, County $county) : array|RedirectResponse {
$form = $this->createForm(CountyType::class, $county);
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
- $this->getDoctrine()->getManager()->flush();
+ $entityManager->flush();
$this->addFlash('success', 'The updated county has been saved.');
return $this->redirectToRoute('county_show', ['id' => $county->getId()]);
@@ -164,15 +103,10 @@ public function edit(Request $request, County $county) {
];
}
- /**
- * @IsGranted("ROLE_CONTENT_ADMIN")
- * @Route("/{id}", name="county_delete", methods={"DELETE"})
- *
- * @return RedirectResponse
- */
- public function delete(Request $request, County $county) {
+ #[IsGranted('ROLE_CONTENT_ADMIN')]
+ #[Route(path: '/{id}', name: 'county_delete', methods: ['DELETE'])]
+ public function delete(EntityManagerInterface $entityManager, Request $request, County $county) : RedirectResponse {
if ($this->isCsrfTokenValid('delete' . $county->getId(), $request->request->get('_token'))) {
- $entityManager = $this->getDoctrine()->getManager();
$entityManager->remove($county);
$entityManager->flush();
$this->addFlash('success', 'The county has been deleted.');
diff --git a/src/Controller/DefaultController.php b/src/Controller/DefaultController.php
index 023dca9..33d0ee3 100644
--- a/src/Controller/DefaultController.php
+++ b/src/Controller/DefaultController.php
@@ -2,38 +2,26 @@
declare(strict_types=1);
-/*
- * (c) 2022 Michael Joyce
- * This source file is subject to the GPL v2, bundled
- * with this source code in the file LICENSE.
- */
-
namespace App\Controller;
use Knp\Bundle\PaginatorBundle\Definition\PaginatorAwareInterface;
use Nines\UtilBundle\Controller\PaginatorTrait;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Template;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
-use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\Routing\Annotation\Route;
class DefaultController extends AbstractController implements PaginatorAwareInterface {
use PaginatorTrait;
- /**
- * @Route("/", name="homepage")
- * @Template
- *
- * @return array
- */
- public function indexAction(Request $request) {
+ #[Route(path: '/', name: 'homepage')]
+ #[Template]
+ public function index() : array {
return [];
}
- /**
- * @Route("/privacy", name="privacy")
- * @Template
- */
- public function privacyAction(Request $request) : void {
+ #[Route(path: '/privacy', name: 'privacy')]
+ #[Template]
+ public function privacy() : array {
+ return [];
}
}
diff --git a/src/Controller/DioceseController.php b/src/Controller/DioceseController.php
index e7cce1a..e016947 100644
--- a/src/Controller/DioceseController.php
+++ b/src/Controller/DioceseController.php
@@ -2,17 +2,12 @@
declare(strict_types=1);
-/*
- * (c) 2022 Michael Joyce
- * This source file is subject to the GPL v2, bundled
- * with this source code in the file LICENSE.
- */
-
namespace App\Controller;
use App\Entity\Diocese;
use App\Form\DioceseType;
use App\Repository\DioceseRepository;
+use Doctrine\ORM\EntityManagerInterface;
use Knp\Bundle\PaginatorBundle\Definition\PaginatorAwareInterface;
use Nines\UtilBundle\Controller\PaginatorTrait;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\IsGranted;
@@ -23,55 +18,24 @@
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\Routing\Annotation\Route;
-/**
- * @Route("/diocese")
- */
+#[Route(path: '/diocese')]
class DioceseController extends AbstractController implements PaginatorAwareInterface {
use PaginatorTrait;
- /**
- * @Route("/", name="diocese_index", methods={"GET"})
- *
- * @Template
- */
+ #[Route(path: '/', name: 'diocese_index', methods: ['GET'])]
+ #[Template]
public function index(Request $request, DioceseRepository $dioceseRepository) : array {
- $query = $dioceseRepository->indexQuery();
- $pageSize = $this->getParameter('page_size');
- $page = $request->query->getint('page', 1);
-
- return [
- 'dioceses' => $this->paginator->paginate($query, $page, $pageSize),
- ];
- }
-
- /**
- * @Route("/search", name="diocese_search", methods={"GET"})
- *
- * @Template
- *
- * @return array
- */
- public function search(Request $request, DioceseRepository $dioceseRepository) {
$q = $request->query->get('q');
- if ($q) {
- $query = $dioceseRepository->searchQuery($q);
- $dioceses = $this->paginator->paginate($query, $request->query->getInt('page', 1), $this->getParameter('page_size'), ['wrap-queries' => true]);
- } else {
- $dioceses = [];
- }
+ $query = $q ? $dioceseRepository->searchQuery($q) : $dioceseRepository->indexQuery();
return [
- 'dioceses' => $dioceses,
+ 'dioceses' => $this->paginator->paginate($query, $request->query->getInt('page', 1), $this->getParameter('page_size'), ['wrap-queries' => true]),
'q' => $q,
];
}
- /**
- * @Route("/typeahead", name="diocese_typeahead", methods={"GET"})
- *
- * @return JsonResponse
- */
- public function typeahead(Request $request, DioceseRepository $dioceseRepository) {
+ #[Route(path: '/typeahead', name: 'diocese_typeahead', methods: ['GET'])]
+ public function typeahead(Request $request, DioceseRepository $dioceseRepository) : JsonResponse {
$q = $request->query->get('q');
if ( ! $q) {
return new JsonResponse([]);
@@ -88,20 +52,15 @@ public function typeahead(Request $request, DioceseRepository $dioceseRepository
return new JsonResponse($data);
}
- /**
- * @Route("/new", name="diocese_new", methods={"GET", "POST"})
- * @Template
- * @IsGranted("ROLE_CONTENT_ADMIN")
- *
- * @return array|RedirectResponse
- */
- public function new(Request $request) {
+ #[Route(path: '/new', name: 'diocese_new', methods: ['GET', 'POST'])]
+ #[Template]
+ #[IsGranted('ROLE_CONTENT_ADMIN')]
+ public function new(EntityManagerInterface $entityManager, Request $request) : array|RedirectResponse {
$diocese = new Diocese();
$form = $this->createForm(DioceseType::class, $diocese);
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
- $entityManager = $this->getDoctrine()->getManager();
$entityManager->persist($diocese);
$entityManager->flush();
@@ -116,43 +75,23 @@ public function new(Request $request) {
];
}
- /**
- * @Route("/new_popup", name="diocese_new_popup", methods={"GET", "POST"})
- * @Template
- * @IsGranted("ROLE_CONTENT_ADMIN")
- *
- * @return array|RedirectResponse
- */
- public function new_popup(Request $request) {
- return $this->new($request);
- }
-
- /**
- * @Route("/{id}", name="diocese_show", methods={"GET"})
- * @Template
- *
- * @return array
- */
- public function show(Diocese $diocese) {
+ #[Route(path: '/{id}', name: 'diocese_show', methods: ['GET'])]
+ #[Template]
+ public function show(Diocese $diocese) : array {
return [
'diocese' => $diocese,
];
}
- /**
- * @IsGranted("ROLE_CONTENT_ADMIN")
- * @Route("/{id}/edit", name="diocese_edit", methods={"GET", "POST"})
- *
- * @Template
- *
- * @return array|RedirectResponse
- */
- public function edit(Request $request, Diocese $diocese) {
+ #[IsGranted('ROLE_CONTENT_ADMIN')]
+ #[Route(path: '/{id}/edit', name: 'diocese_edit', methods: ['GET', 'POST'])]
+ #[Template]
+ public function edit(EntityManagerInterface $entityManager, Request $request, Diocese $diocese) : array|RedirectResponse {
$form = $this->createForm(DioceseType::class, $diocese);
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
- $this->getDoctrine()->getManager()->flush();
+ $entityManager->flush();
$this->addFlash('success', 'The updated diocese has been saved.');
return $this->redirectToRoute('diocese_show', ['id' => $diocese->getId()]);
@@ -164,15 +103,10 @@ public function edit(Request $request, Diocese $diocese) {
];
}
- /**
- * @IsGranted("ROLE_CONTENT_ADMIN")
- * @Route("/{id}", name="diocese_delete", methods={"DELETE"})
- *
- * @return RedirectResponse
- */
- public function delete(Request $request, Diocese $diocese) {
+ #[IsGranted('ROLE_CONTENT_ADMIN')]
+ #[Route(path: '/{id}', name: 'diocese_delete', methods: ['DELETE'])]
+ public function delete(EntityManagerInterface $entityManager, Request $request, Diocese $diocese) : RedirectResponse {
if ($this->isCsrfTokenValid('delete' . $diocese->getId(), $request->request->get('_token'))) {
- $entityManager = $this->getDoctrine()->getManager();
$entityManager->remove($diocese);
$entityManager->flush();
$this->addFlash('success', 'The diocese has been deleted.');
diff --git a/src/Controller/FormatController.php b/src/Controller/FormatController.php
index ad2c656..b863402 100644
--- a/src/Controller/FormatController.php
+++ b/src/Controller/FormatController.php
@@ -2,17 +2,12 @@
declare(strict_types=1);
-/*
- * (c) 2022 Michael Joyce
- * This source file is subject to the GPL v2, bundled
- * with this source code in the file LICENSE.
- */
-
namespace App\Controller;
use App\Entity\Format;
use App\Form\FormatType;
use App\Repository\FormatRepository;
+use Doctrine\ORM\EntityManagerInterface;
use Knp\Bundle\PaginatorBundle\Definition\PaginatorAwareInterface;
use Nines\UtilBundle\Controller\PaginatorTrait;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\IsGranted;
@@ -23,55 +18,24 @@
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\Routing\Annotation\Route;
-/**
- * @Route("/format")
- */
+#[Route(path: '/format')]
class FormatController extends AbstractController implements PaginatorAwareInterface {
use PaginatorTrait;
- /**
- * @Route("/", name="format_index", methods={"GET"})
- *
- * @Template
- */
+ #[Route(path: '/', name: 'format_index', methods: ['GET'])]
+ #[Template]
public function index(Request $request, FormatRepository $formatRepository) : array {
- $query = $formatRepository->indexQuery();
- $pageSize = (int) $this->getParameter('page_size');
- $page = $request->query->getint('page', 1);
-
- return [
- 'formats' => $this->paginator->paginate($query, $page, $pageSize),
- ];
- }
-
- /**
- * @Route("/search", name="format_search", methods={"GET"})
- *
- * @Template
- *
- * @return array
- */
- public function search(Request $request, FormatRepository $formatRepository) {
$q = $request->query->get('q');
- if ($q) {
- $query = $formatRepository->searchQuery($q);
- $formats = $this->paginator->paginate($query, $request->query->getInt('page', 1), $this->getParameter('page_size'), ['wrap-queries' => true]);
- } else {
- $formats = [];
- }
+ $query = $q ? $formatRepository->searchQuery($q) : $formatRepository->indexQuery();
return [
- 'formats' => $formats,
+ 'formats' => $this->paginator->paginate($query, $request->query->getInt('page', 1), $this->getParameter('page_size'), ['wrap-queries' => true]),
'q' => $q,
];
}
- /**
- * @Route("/typeahead", name="format_typeahead", methods={"GET"})
- *
- * @return JsonResponse
- */
- public function typeahead(Request $request, FormatRepository $formatRepository) {
+ #[Route(path: '/typeahead', name: 'format_typeahead', methods: ['GET'])]
+ public function typeahead(Request $request, FormatRepository $formatRepository) : JsonResponse {
$q = $request->query->get('q');
if ( ! $q) {
return new JsonResponse([]);
@@ -88,20 +52,15 @@ public function typeahead(Request $request, FormatRepository $formatRepository)
return new JsonResponse($data);
}
- /**
- * @Route("/new", name="format_new", methods={"GET", "POST"})
- * @Template
- * @IsGranted("ROLE_CONTENT_ADMIN")
- *
- * @return array|RedirectResponse
- */
- public function new(Request $request) {
+ #[Route(path: '/new', name: 'format_new', methods: ['GET', 'POST'])]
+ #[Template]
+ #[IsGranted('ROLE_CONTENT_ADMIN')]
+ public function new(EntityManagerInterface $entityManager, Request $request) : array|RedirectResponse {
$format = new Format();
$form = $this->createForm(FormatType::class, $format);
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
- $entityManager = $this->getDoctrine()->getManager();
$entityManager->persist($format);
$entityManager->flush();
$this->addFlash('success', 'The new format has been saved.');
@@ -115,43 +74,23 @@ public function new(Request $request) {
];
}
- /**
- * @Route("/new_popup", name="format_new_popup", methods={"GET", "POST"})
- * @Template
- * @IsGranted("ROLE_CONTENT_ADMIN")
- *
- * @return array|RedirectResponse
- */
- public function new_popup(Request $request) {
- return $this->new($request);
- }
-
- /**
- * @Route("/{id}", name="format_show", methods={"GET"})
- * @Template
- *
- * @return array
- */
- public function show(Format $format) {
+ #[Route(path: '/{id}', name: 'format_show', methods: ['GET'])]
+ #[Template]
+ public function show(Format $format) : array {
return [
'format' => $format,
];
}
- /**
- * @IsGranted("ROLE_CONTENT_ADMIN")
- * @Route("/{id}/edit", name="format_edit", methods={"GET", "POST"})
- *
- * @Template
- *
- * @return array|RedirectResponse
- */
- public function edit(Request $request, Format $format) {
+ #[IsGranted('ROLE_CONTENT_ADMIN')]
+ #[Route(path: '/{id}/edit', name: 'format_edit', methods: ['GET', 'POST'])]
+ #[Template]
+ public function edit(EntityManagerInterface $entityManager, Request $request, Format $format) : array|RedirectResponse {
$form = $this->createForm(FormatType::class, $format);
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
- $this->getDoctrine()->getManager()->flush();
+ $entityManager->flush();
$this->addFlash('success', 'The updated format has been saved.');
return $this->redirectToRoute('format_show', ['id' => $format->getId()]);
@@ -163,15 +102,10 @@ public function edit(Request $request, Format $format) {
];
}
- /**
- * @IsGranted("ROLE_CONTENT_ADMIN")
- * @Route("/{id}", name="format_delete", methods={"DELETE"})
- *
- * @return RedirectResponse
- */
- public function delete(Request $request, Format $format) {
+ #[IsGranted('ROLE_CONTENT_ADMIN')]
+ #[Route(path: '/{id}', name: 'format_delete', methods: ['DELETE'])]
+ public function delete(EntityManagerInterface $entityManager, Request $request, Format $format) : RedirectResponse {
if ($this->isCsrfTokenValid('delete' . $format->getId(), $request->request->get('_token'))) {
- $entityManager = $this->getDoctrine()->getManager();
$entityManager->remove($format);
$entityManager->flush();
$this->addFlash('success', 'The format has been deleted.');
diff --git a/src/Controller/HoldingController.php b/src/Controller/HoldingController.php
index 9e4da35..c25d7b7 100644
--- a/src/Controller/HoldingController.php
+++ b/src/Controller/HoldingController.php
@@ -2,19 +2,12 @@
declare(strict_types=1);
-/*
- * (c) 2022 Michael Joyce
- * This source file is subject to the GPL v2, bundled
- * with this source code in the file LICENSE.
- */
-
namespace App\Controller;
use App\Entity\Holding;
use App\Form\HoldingType;
use App\Repository\HoldingRepository;
use Doctrine\ORM\EntityManagerInterface;
-use Exception;
use Knp\Bundle\PaginatorBundle\Definition\PaginatorAwareInterface;
use Nines\MediaBundle\Controller\ImageControllerTrait;
use Nines\MediaBundle\Entity\Image;
@@ -27,42 +20,30 @@
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\Routing\Annotation\Route;
-/**
- * @Route("/holding")
- */
+#[Route(path: '/holding')]
class HoldingController extends AbstractController implements PaginatorAwareInterface {
use PaginatorTrait;
use ImageControllerTrait;
- /**
- * @Route("/", name="holding_index", methods={"GET"})
- *
- * @Template(template="holding/index.html.twig")
- */
+ #[Route(path: '/', name: 'holding_index', methods: ['GET'])]
+ #[Template('holding/index.html.twig')]
public function index(Request $request, HoldingRepository $holdingRepository) : array {
$query = $holdingRepository->indexQuery();
- $pageSize = (int) $this->getParameter('page_size');
- $page = $request->query->getint('page', 1);
return [
- 'holdings' => $this->paginator->paginate($query, $page, $pageSize),
+ 'holdings' => $this->paginator->paginate($query, $request->query->getInt('page', 1), $this->getParameter('page_size'), ['wrap-queries' => true]),
];
}
- /**
- * @Route("/new", name="holding_new", methods={"GET", "POST"})
- * @Template(template="holding/new.html.twig")
- * @IsGranted("ROLE_CONTENT_ADMIN")
- *
- * @return array|RedirectResponse
- */
- public function new(Request $request) {
+ #[Route(path: '/new', name: 'holding_new', methods: ['GET', 'POST'])]
+ #[Template('holding/new.html.twig')]
+ #[IsGranted('ROLE_CONTENT_ADMIN')]
+ public function new(EntityManagerInterface $entityManager, Request $request) : array|RedirectResponse {
$holding = new Holding();
$form = $this->createForm(HoldingType::class, $holding);
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
- $entityManager = $this->getDoctrine()->getManager();
$entityManager->persist($holding);
$entityManager->flush();
$this->addFlash('success', 'The new surviving text has been saved.');
@@ -76,43 +57,23 @@ public function new(Request $request) {
];
}
- /**
- * @Route("/new_popup", name="holding_new_popup", methods={"GET", "POST"})
- * @Template(template="holding/new_popup.html.twig")
- * @IsGranted("ROLE_CONTENT_ADMIN")
- *
- * @return array|RedirectResponse
- */
- public function new_popup(Request $request) {
- return $this->new($request);
- }
-
- /**
- * @Route("/{id}", name="holding_show", methods={"GET"})
- * @Template(template="holding/show.html.twig")
- *
- * @return array
- */
- public function show(Holding $holding) {
+ #[Route(path: '/{id}', name: 'holding_show', methods: ['GET'])]
+ #[Template('holding/show.html.twig')]
+ public function show(Holding $holding) : array {
return [
'holding' => $holding,
];
}
- /**
- * @IsGranted("ROLE_CONTENT_ADMIN")
- * @Route("/{id}/edit", name="holding_edit", methods={"GET", "POST"})
- *
- * @Template(template="holding/edit.html.twig")
- *
- * @return array|RedirectResponse
- */
- public function edit(Request $request, Holding $holding) {
+ #[IsGranted('ROLE_CONTENT_ADMIN')]
+ #[Route(path: '/{id}/edit', name: 'holding_edit', methods: ['GET', 'POST'])]
+ #[Template('holding/edit.html.twig')]
+ public function edit(EntityManagerInterface $entityManager, Request $request, Holding $holding) : array|RedirectResponse {
$form = $this->createForm(HoldingType::class, $holding);
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
- $this->getDoctrine()->getManager()->flush();
+ $entityManager->flush();
$this->addFlash('success', 'The updated surviving text has been saved.');
return $this->redirectToRoute('holding_show', ['id' => $holding->getId()]);
@@ -124,15 +85,10 @@ public function edit(Request $request, Holding $holding) {
];
}
- /**
- * @IsGranted("ROLE_CONTENT_ADMIN")
- * @Route("/{id}", name="holding_delete", methods={"DELETE"})
- *
- * @return RedirectResponse
- */
- public function delete(Request $request, Holding $holding) {
+ #[IsGranted('ROLE_CONTENT_ADMIN')]
+ #[Route(path: '/{id}', name: 'holding_delete', methods: ['DELETE'])]
+ public function delete(EntityManagerInterface $entityManager, Request $request, Holding $holding) : RedirectResponse {
if ($this->isCsrfTokenValid('delete' . $holding->getId(), $request->request->get('_token'))) {
- $entityManager = $this->getDoctrine()->getManager();
$entityManager->remove($holding);
$entityManager->flush();
$this->addFlash('success', 'The surviving text has been deleted.');
@@ -141,43 +97,25 @@ public function delete(Request $request, Holding $holding) {
return $this->redirectToRoute('holding_index');
}
- /**
- * @Route("/{id}/new_image", name="holding_new_image", methods={"GET", "POST"})
- * @IsGranted("ROLE_CONTENT_ADMIN")
- *
- * @throws Exception
- *
- * @return array|RedirectResponse
- *
- * @Template("holding/new_image.html.twig")
- */
- public function newImage(Request $request, EntityManagerInterface $em, holding $holding) {
- return $this->newImageAction($request, $em, $holding, 'holding_show');
+ #[Route(path: '/{id}/image/new', name: 'holding_image_new', methods: ['GET', 'POST'])]
+ #[IsGranted('ROLE_CONTENT_ADMIN')]
+ #[Template('holding/image_new.html.twig')]
+ public function newImage(Request $request, EntityManagerInterface $em, Holding $holding) : array|RedirectResponse {
+ return $this->newImageAction($request, $em, $holding, 'holding_show', ['id' => $holding->getId()]);
}
- /**
- * @Route("/{id}/edit_image/{image_id}", name="holding_edit_image", methods={"GET", "POST"})
- * @IsGranted("ROLE_CONTENT_ADMIN")
- * @ParamConverter("image", options={"id": "image_id"})
- *
- * @throws Exception
- *
- * @return array|RedirectResponse
- *
- * @Template("holding/edit_image.html.twig")
- */
- public function editImage(Request $request, EntityManagerInterface $em, holding $holding, Image $image) {
- return $this->editImageAction($request, $em, $holding, $image, 'holding_show');
+ #[Route(path: '/{id}/image/{image_id}/edit', name: 'holding_image_edit', methods: ['GET', 'POST'])]
+ #[IsGranted('ROLE_CONTENT_ADMIN')]
+ #[Template('holding/image_edit.html.twig')]
+ #[ParamConverter('image', options: ['id' => 'image_id'])]
+ public function editImage(Request $request, EntityManagerInterface $em, Holding $holding, Image $image) : array|RedirectResponse {
+ return $this->editImageAction($request, $em, $holding, $image, 'holding_show', ['id' => $holding->getId()]);
}
- /**
- * @Route("/{id}/delete_image/{image_id}", name="holding_delete_image", methods={"DELETE"})
- * @ParamConverter("image", options={"id": "image_id"})
- * @IsGranted("ROLE_CONTENT_ADMIN")
- *
- * @return RedirectResponse
- */
- public function deleteImage(Request $request, EntityManagerInterface $em, holding $holding, Image $image) {
- return $this->deleteImageAction($request, $em, $holding, $image, 'holding_show');
+ #[Route(path: '/{id}/image/{image_id}', name: 'holding_image_delete', methods: ['DELETE'])]
+ #[IsGranted('ROLE_CONTENT_ADMIN')]
+ #[ParamConverter('image', options: ['id' => 'image_id'])]
+ public function deleteImage(Request $request, EntityManagerInterface $em, Holding $holding, Image $image) : RedirectResponse {
+ return $this->deleteImageAction($request, $em, $holding, $image, 'holding_show', ['id' => $holding->getId()]);
}
}
diff --git a/src/Controller/InjunctionController.php b/src/Controller/InjunctionController.php
index f0d2dff..df5ceeb 100644
--- a/src/Controller/InjunctionController.php
+++ b/src/Controller/InjunctionController.php
@@ -2,18 +2,12 @@
declare(strict_types=1);
-/*
- * (c) 2022 Michael Joyce
- * This source file is subject to the GPL v2, bundled
- * with this source code in the file LICENSE.
- */
-
namespace App\Controller;
use App\Entity\Injunction;
use App\Form\InjunctionType;
use App\Repository\InjunctionRepository;
-
+use Doctrine\ORM\EntityManagerInterface;
use Knp\Bundle\PaginatorBundle\Definition\PaginatorAwareInterface;
use Nines\UtilBundle\Controller\PaginatorTrait;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\IsGranted;
@@ -24,55 +18,24 @@
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\Routing\Annotation\Route;
-/**
- * @Route("/injunction")
- */
+#[Route(path: '/injunction')]
class InjunctionController extends AbstractController implements PaginatorAwareInterface {
use PaginatorTrait;
- /**
- * @Route("/", name="injunction_index", methods={"GET"})
- *
- * @Template
- */
+ #[Route(path: '/', name: 'injunction_index', methods: ['GET'])]
+ #[Template]
public function index(Request $request, InjunctionRepository $injunctionRepository) : array {
- $query = $injunctionRepository->indexQuery();
- $pageSize = (int) $this->getParameter('page_size');
- $page = $request->query->getint('page', 1);
-
- return [
- 'injunctions' => $this->paginator->paginate($query, $page, $pageSize),
- ];
- }
-
- /**
- * @Route("/search", name="injunction_search", methods={"GET"})
- *
- * @Template
- *
- * @return array
- */
- public function search(Request $request, InjunctionRepository $injunctionRepository) {
$q = $request->query->get('q');
- if ($q) {
- $query = $injunctionRepository->searchQuery($q);
- $injunctions = $this->paginator->paginate($query, $request->query->getInt('page', 1), $this->getParameter('page_size'), ['wrap-queries' => true]);
- } else {
- $injunctions = [];
- }
+ $query = $q ? $injunctionRepository->searchQuery($q) : $injunctionRepository->indexQuery();
return [
- 'injunctions' => $injunctions,
+ 'injunctions' => $this->paginator->paginate($query, $request->query->getInt('page', 1), $this->getParameter('page_size'), ['wrap-queries' => true]),
'q' => $q,
];
}
- /**
- * @Route("/typeahead", name="injunction_typeahead", methods={"GET"})
- *
- * @return JsonResponse
- */
- public function typeahead(Request $request, InjunctionRepository $injunctionRepository) {
+ #[Route(path: '/typeahead', name: 'injunction_typeahead', methods: ['GET'])]
+ public function typeahead(Request $request, InjunctionRepository $injunctionRepository) : JsonResponse {
$q = $request->query->get('q');
if ( ! $q) {
return new JsonResponse([]);
@@ -88,20 +51,15 @@ public function typeahead(Request $request, InjunctionRepository $injunctionRepo
return new JsonResponse($data);
}
- /**
- * @Route("/new", name="injunction_new", methods={"GET", "POST"})
- * @Template
- * @IsGranted("ROLE_CONTENT_ADMIN")
- *
- * @return array|RedirectResponse
- */
- public function new(Request $request) {
+ #[Route(path: '/new', name: 'injunction_new', methods: ['GET', 'POST'])]
+ #[Template]
+ #[IsGranted('ROLE_CONTENT_ADMIN')]
+ public function new(EntityManagerInterface $entityManager, Request $request) : array|RedirectResponse {
$injunction = new Injunction();
$form = $this->createForm(InjunctionType::class, $injunction);
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
- $entityManager = $this->getDoctrine()->getManager();
$entityManager->persist($injunction);
$entityManager->flush();
$this->addFlash('success', 'The new injunction has been saved.');
@@ -115,43 +73,23 @@ public function new(Request $request) {
];
}
- /**
- * @Route("/new_popup", name="injunction_new_popup", methods={"GET", "POST"})
- * @Template
- * @IsGranted("ROLE_CONTENT_ADMIN")
- *
- * @return array|RedirectResponse
- */
- public function new_popup(Request $request) {
- return $this->new($request);
- }
-
- /**
- * @Route("/{id}", name="injunction_show", methods={"GET"})
- * @Template
- *
- * @return array
- */
- public function show(Injunction $injunction) {
+ #[Route(path: '/{id}', name: 'injunction_show', methods: ['GET'])]
+ #[Template]
+ public function show(Injunction $injunction) : ?array {
return [
'injunction' => $injunction,
];
}
- /**
- * @IsGranted("ROLE_CONTENT_ADMIN")
- * @Route("/{id}/edit", name="injunction_edit", methods={"GET", "POST"})
- *
- * @Template
- *
- * @return array|RedirectResponse
- */
- public function edit(Request $request, Injunction $injunction) {
+ #[IsGranted('ROLE_CONTENT_ADMIN')]
+ #[Route(path: '/{id}/edit', name: 'injunction_edit', methods: ['GET', 'POST'])]
+ #[Template]
+ public function edit(EntityManagerInterface $entityManager, Request $request, Injunction $injunction) : array|RedirectResponse {
$form = $this->createForm(InjunctionType::class, $injunction);
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
- $this->getDoctrine()->getManager()->flush();
+ $entityManager->flush();
$this->addFlash('success', 'The updated injunction has been saved.');
return $this->redirectToRoute('injunction_show', ['id' => $injunction->getId()]);
@@ -163,15 +101,10 @@ public function edit(Request $request, Injunction $injunction) {
];
}
- /**
- * @IsGranted("ROLE_CONTENT_ADMIN")
- * @Route("/{id}", name="injunction_delete", methods={"DELETE"})
- *
- * @return RedirectResponse
- */
- public function delete(Request $request, Injunction $injunction) {
+ #[IsGranted('ROLE_CONTENT_ADMIN')]
+ #[Route(path: '/{id}', name: 'injunction_delete', methods: ['DELETE'])]
+ public function delete(EntityManagerInterface $entityManager, Request $request, Injunction $injunction) : RedirectResponse {
if ($this->isCsrfTokenValid('delete' . $injunction->getId(), $request->request->get('_token'))) {
- $entityManager = $this->getDoctrine()->getManager();
$entityManager->remove($injunction);
$entityManager->flush();
$this->addFlash('success', 'The injunction has been deleted.');
diff --git a/src/Controller/InventoryController.php b/src/Controller/InventoryController.php
index 875f483..493db28 100644
--- a/src/Controller/InventoryController.php
+++ b/src/Controller/InventoryController.php
@@ -2,19 +2,12 @@
declare(strict_types=1);
-/*
- * (c) 2022 Michael Joyce
- * This source file is subject to the GPL v2, bundled
- * with this source code in the file LICENSE.
- */
-
namespace App\Controller;
use App\Entity\Inventory;
use App\Form\InventoryType;
use App\Repository\InventoryRepository;
use Doctrine\ORM\EntityManagerInterface;
-use Exception;
use Knp\Bundle\PaginatorBundle\Definition\PaginatorAwareInterface;
use Nines\MediaBundle\Controller\ImageControllerTrait;
use Nines\MediaBundle\Entity\Image;
@@ -27,64 +20,32 @@
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\Routing\Annotation\Route;
-/**
- * @Route("/inventory")
- */
+#[Route(path: '/inventory')]
class InventoryController extends AbstractController implements PaginatorAwareInterface {
use PaginatorTrait;
use ImageControllerTrait;
- /**
- * @Route("/", name="inventory_index", methods={"GET"})
- *
- * @Template(template="inventory/index.html.twig")
- */
+ #[Route(path: '/', name: 'inventory_index', methods: ['GET'])]
+ #[Template('inventory/index.html.twig')]
public function index(Request $request, InventoryRepository $inventoryRepository) : array {
- $query = $inventoryRepository->indexQuery();
- $pageSize = (int) $this->getParameter('page_size');
- $page = $request->query->getint('page', 1);
-
- return [
- 'inventories' => $this->paginator->paginate($query, $page, $pageSize),
- ];
- }
-
- /**
- * @Route("/search", name="inventory_search", methods={"GET"})
- *
- * @Template(template="inventory/search.html.twig")
- *
- * @return array
- */
- public function search(Request $request, InventoryRepository $inventoryRepository) {
$q = $request->query->get('q');
- if ($q) {
- $query = $inventoryRepository->searchQuery($q);
- $inventories = $this->paginator->paginate($query, $request->query->getInt('page', 1), $this->getParameter('page_size'), ['wrap-queries' => true]);
- } else {
- $inventories = [];
- }
+ $query = $q ? $inventoryRepository->searchQuery($q) : $inventoryRepository->indexQuery();
return [
- 'inventories' => $inventories,
+ 'inventories' => $this->paginator->paginate($query, $request->query->getInt('page', 1), $this->getParameter('page_size'), ['wrap-queries' => true]),
'q' => $q,
];
}
- /**
- * @Route("/new", name="inventory_new", methods={"GET", "POST"})
- * @Template(template="inventory/new.html.twig")
- * @IsGranted("ROLE_CONTENT_ADMIN")
- *
- * @return array|RedirectResponse
- */
- public function new(Request $request) {
+ #[Route(path: '/new', name: 'inventory_new', methods: ['GET', 'POST'])]
+ #[Template('inventory/new.html.twig')]
+ #[IsGranted('ROLE_CONTENT_ADMIN')]
+ public function new(EntityManagerInterface $entityManager, Request $request) : array|RedirectResponse {
$inventory = new Inventory();
$form = $this->createForm(InventoryType::class, $inventory);
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
- $entityManager = $this->getDoctrine()->getManager();
$entityManager->persist($inventory);
$entityManager->flush();
$this->addFlash('success', 'The new inventory has been saved.');
@@ -98,43 +59,23 @@ public function new(Request $request) {
];
}
- /**
- * @Route("/new_popup", name="inventory_new_popup", methods={"GET", "POST"})
- * @Template(template="inventory/new_popup.html.twig")
- * @IsGranted("ROLE_CONTENT_ADMIN")
- *
- * @return array|RedirectResponse
- */
- public function new_popup(Request $request) {
- return $this->new($request);
- }
-
- /**
- * @Route("/{id}", name="inventory_show", methods={"GET"})
- * @Template(template="inventory/show.html.twig")
- *
- * @return array
- */
- public function show(Inventory $inventory) {
+ #[Route(path: '/{id}', name: 'inventory_show', methods: ['GET'])]
+ #[Template('inventory/show.html.twig')]
+ public function show(Inventory $inventory) : ?array {
return [
'inventory' => $inventory,
];
}
- /**
- * @IsGranted("ROLE_CONTENT_ADMIN")
- * @Route("/{id}/edit", name="inventory_edit", methods={"GET", "POST"})
- *
- * @Template(template="inventory/edit.html.twig")
- *
- * @return array|RedirectResponse
- */
- public function edit(Request $request, Inventory $inventory) {
+ #[IsGranted('ROLE_CONTENT_ADMIN')]
+ #[Route(path: '/{id}/edit', name: 'inventory_edit', methods: ['GET', 'POST'])]
+ #[Template('inventory/edit.html.twig')]
+ public function edit(EntityManagerInterface $entityManager, Request $request, Inventory $inventory) : array|RedirectResponse {
$form = $this->createForm(InventoryType::class, $inventory);
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
- $this->getDoctrine()->getManager()->flush();
+ $entityManager->flush();
$this->addFlash('success', 'The updated inventory has been saved.');
return $this->redirectToRoute('inventory_show', ['id' => $inventory->getId()]);
@@ -146,15 +87,10 @@ public function edit(Request $request, Inventory $inventory) {
];
}
- /**
- * @IsGranted("ROLE_CONTENT_ADMIN")
- * @Route("/{id}", name="inventory_delete", methods={"DELETE"})
- *
- * @return RedirectResponse
- */
- public function delete(Request $request, Inventory $inventory) {
+ #[IsGranted('ROLE_CONTENT_ADMIN')]
+ #[Route(path: '/{id}', name: 'inventory_delete', methods: ['DELETE'])]
+ public function delete(EntityManagerInterface $entityManager, Request $request, Inventory $inventory) : RedirectResponse {
if ($this->isCsrfTokenValid('delete' . $inventory->getId(), $request->request->get('_token'))) {
- $entityManager = $this->getDoctrine()->getManager();
$entityManager->remove($inventory);
$entityManager->flush();
$this->addFlash('success', 'The inventory has been deleted.');
@@ -163,45 +99,25 @@ public function delete(Request $request, Inventory $inventory) {
return $this->redirectToRoute('inventory_index');
}
- /**
- * @Route("/{id}/new_image", name="inventory_new_image", methods={"GET", "POST"})
- * @IsGranted("ROLE_CONTENT_ADMIN")
- *
- * @throws Exception
- *
- * @return array|RedirectResponse
- *
- * @Template(template="@NinesMedia/image/new.html.twig")
- */
- public function newImage(Request $request, EntityManagerInterface $em, Inventory $inventory) {
- return $this->newImageAction($request, $em, $inventory, 'inventory_show');
+ #[Route(path: '/{id}/image/new', name: 'inventory_image_new', methods: ['GET', 'POST'])]
+ #[IsGranted('ROLE_CONTENT_ADMIN')]
+ #[Template('inventory/image_new.html.twig')]
+ public function newImage(Request $request, EntityManagerInterface $em, Inventory $inventory) : array|RedirectResponse {
+ return $this->newImageAction($request, $em, $inventory, 'inventory_show', ['id' => $inventory->getId()]);
}
- /**
- * @Route("/{id}/edit_image/{image_id}", name="inventory_edit_image", methods={"GET", "POST"})
- * @IsGranted("ROLE_CONTENT_ADMIN")
- * @ParamConverter("image", options={"id": "image_id"})
- *
- * @throws Exception
- *
- * @return array|RedirectResponse
- *
- * @Template(template="@NinesMedia/image/edit.html.twig")
- */
- public function editImage(Request $request, EntityManagerInterface $em, Inventory $inventory, Image $image) {
- return $this->editImageAction($request, $em, $inventory, $image, 'inventory_show');
+ #[Route(path: '/{id}/image/{image_id}/edit', name: 'inventory_image_edit', methods: ['GET', 'POST'])]
+ #[IsGranted('ROLE_CONTENT_ADMIN')]
+ #[Template('inventory/image_edit.html.twig')]
+ #[ParamConverter('image', options: ['id' => 'image_id'])]
+ public function editImage(Request $request, EntityManagerInterface $em, Inventory $inventory, Image $image) : array|RedirectResponse {
+ return $this->editImageAction($request, $em, $inventory, $image, 'inventory_show', ['id' => $inventory->getId()]);
}
- /**
- * @Route("/{id}/delete_image/{image_id}", name="inventory_delete_image", methods={"DELETE"})
- * @ParamConverter("image", options={"id": "image_id"})
- * @IsGranted("ROLE_CONTENT_ADMIN")
- *
- * @throws Exception
- *
- * @return RedirectResponse
- */
- public function deleteImage(Request $request, EntityManagerInterface $em, Inventory $inventory, Image $image) {
- return $this->deleteImageAction($request, $em, $inventory, $image, 'inventory_show');
+ #[Route(path: '/{id}/image/{image_id}', name: 'inventory_image_delete', methods: ['DELETE'])]
+ #[IsGranted('ROLE_CONTENT_ADMIN')]
+ #[ParamConverter('image', options: ['id' => 'image_id'])]
+ public function deleteImage(Request $request, EntityManagerInterface $em, Inventory $inventory, Image $image) : RedirectResponse {
+ return $this->deleteImageAction($request, $em, $inventory, $image, 'inventory_show', ['id' => $inventory->getId()]);
}
}
diff --git a/src/Controller/ManuscriptSourceController.php b/src/Controller/ManuscriptSourceController.php
index d6d12d1..c3460d4 100644
--- a/src/Controller/ManuscriptSourceController.php
+++ b/src/Controller/ManuscriptSourceController.php
@@ -2,17 +2,12 @@
declare(strict_types=1);
-/*
- * (c) 2022 Michael Joyce
- * This source file is subject to the GPL v2, bundled
- * with this source code in the file LICENSE.
- */
-
namespace App\Controller;
use App\Entity\ManuscriptSource;
use App\Form\ManuscriptSourceType;
use App\Repository\ManuscriptSourceRepository;
+use Doctrine\ORM\EntityManagerInterface;
use Knp\Bundle\PaginatorBundle\Definition\PaginatorAwareInterface;
use Nines\UtilBundle\Controller\PaginatorTrait;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\IsGranted;
@@ -23,55 +18,24 @@
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\Routing\Annotation\Route;
-/**
- * @Route("/manuscript_source")
- */
+#[Route(path: '/manuscript_source')]
class ManuscriptSourceController extends AbstractController implements PaginatorAwareInterface {
use PaginatorTrait;
- /**
- * @Route("/", name="manuscript_source_index", methods={"GET"})
- *
- * @Template
- */
+ #[Route(path: '/', name: 'manuscript_source_index', methods: ['GET'])]
+ #[Template]
public function index(Request $request, ManuscriptSourceRepository $manuscriptSourceRepository) : array {
- $query = $manuscriptSourceRepository->indexQuery();
- $pageSize = (int) $this->getParameter('page_size');
- $page = $request->query->getint('page', 1);
-
- return [
- 'sources' => $this->paginator->paginate($query, $page, $pageSize),
- ];
- }
-
- /**
- * @Route("/search", name="manuscript_source_search", methods={"GET"})
- *
- * @Template
- *
- * @return array
- */
- public function search(Request $request, ManuscriptSourceRepository $manuscriptSourceRepository) {
$q = $request->query->get('q');
- if ($q) {
- $query = $manuscriptSourceRepository->searchQuery($q);
- $manuscriptSources = $this->paginator->paginate($query, $request->query->getInt('page', 1), $this->getParameter('page_size'), ['wrap-queries' => true]);
- } else {
- $manuscriptSources = [];
- }
+ $query = $q ? $manuscriptSourceRepository->searchQuery($q) : $manuscriptSourceRepository->indexQuery();
return [
- 'sources' => $manuscriptSources,
+ 'sources' => $this->paginator->paginate($query, $request->query->getInt('page', 1), $this->getParameter('page_size'), ['wrap-queries' => true]),
'q' => $q,
];
}
- /**
- * @Route("/typeahead", name="manuscript_source_typeahead", methods={"GET"})
- *
- * @return JsonResponse
- */
- public function typeahead(Request $request, ManuscriptSourceRepository $manuscriptSourceRepository) {
+ #[Route(path: '/typeahead', name: 'manuscript_source_typeahead', methods: ['GET'])]
+ public function typeahead(Request $request, ManuscriptSourceRepository $manuscriptSourceRepository) : JsonResponse {
$q = $request->query->get('q');
if ( ! $q) {
return new JsonResponse([]);
@@ -88,20 +52,15 @@ public function typeahead(Request $request, ManuscriptSourceRepository $manuscri
return new JsonResponse($data);
}
- /**
- * @Route("/new", name="manuscript_source_new", methods={"GET", "POST"})
- * @Template
- * @IsGranted("ROLE_CONTENT_ADMIN")
- *
- * @return array|RedirectResponse
- */
- public function new(Request $request) {
+ #[Route(path: '/new', name: 'manuscript_source_new', methods: ['GET', 'POST'])]
+ #[Template]
+ #[IsGranted('ROLE_CONTENT_ADMIN')]
+ public function new(EntityManagerInterface $entityManager, Request $request) : array|RedirectResponse {
$manuscriptSource = new ManuscriptSource();
$form = $this->createForm(ManuscriptSourceType::class, $manuscriptSource);
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
- $entityManager = $this->getDoctrine()->getManager();
$entityManager->persist($manuscriptSource);
$entityManager->flush();
@@ -116,43 +75,23 @@ public function new(Request $request) {
];
}
- /**
- * @Route("/new_popup", name="manuscript_source_new_popup", methods={"GET", "POST"})
- * @Template
- * @IsGranted("ROLE_CONTENT_ADMIN")
- *
- * @return array|RedirectResponse
- */
- public function new_popup(Request $request) {
- return $this->new($request);
- }
-
- /**
- * @Route("/{id}", name="manuscript_source_show", methods={"GET"})
- * @Template
- *
- * @return array
- */
- public function show(ManuscriptSource $manuscriptSource) {
+ #[Route(path: '/{id}', name: 'manuscript_source_show', methods: ['GET'])]
+ #[Template]
+ public function show(ManuscriptSource $manuscriptSource) : array {
return [
'source' => $manuscriptSource,
];
}
- /**
- * @IsGranted("ROLE_CONTENT_ADMIN")
- * @Route("/{id}/edit", name="manuscript_source_edit", methods={"GET", "POST"})
- *
- * @Template
- *
- * @return array|RedirectResponse
- */
- public function edit(Request $request, ManuscriptSource $manuscriptSource) {
+ #[IsGranted('ROLE_CONTENT_ADMIN')]
+ #[Route(path: '/{id}/edit', name: 'manuscript_source_edit', methods: ['GET', 'POST'])]
+ #[Template]
+ public function edit(EntityManagerInterface $entityManager, Request $request, ManuscriptSource $manuscriptSource) : array|RedirectResponse {
$form = $this->createForm(ManuscriptSourceType::class, $manuscriptSource);
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
- $this->getDoctrine()->getManager()->flush();
+ $entityManager->flush();
$this->addFlash('success', 'The updated source has been saved.');
return $this->redirectToRoute('manuscript_source_show', ['id' => $manuscriptSource->getId()]);
@@ -164,15 +103,10 @@ public function edit(Request $request, ManuscriptSource $manuscriptSource) {
];
}
- /**
- * @IsGranted("ROLE_CONTENT_ADMIN")
- * @Route("/{id}", name="manuscript_source_delete", methods={"DELETE"})
- *
- * @return RedirectResponse
- */
- public function delete(Request $request, ManuscriptSource $manuscriptSource) {
+ #[IsGranted('ROLE_CONTENT_ADMIN')]
+ #[Route(path: '/{id}', name: 'manuscript_source_delete', methods: ['DELETE'])]
+ public function delete(EntityManagerInterface $entityManager, Request $request, ManuscriptSource $manuscriptSource) : RedirectResponse {
if ($this->isCsrfTokenValid('delete' . $manuscriptSource->getId(), $request->request->get('_token'))) {
- $entityManager = $this->getDoctrine()->getManager();
$entityManager->remove($manuscriptSource);
$entityManager->flush();
$this->addFlash('success', 'The source has been deleted.');
diff --git a/src/Controller/MonarchController.php b/src/Controller/MonarchController.php
index 57647fb..b6fa1bb 100644
--- a/src/Controller/MonarchController.php
+++ b/src/Controller/MonarchController.php
@@ -2,18 +2,12 @@
declare(strict_types=1);
-/*
- * (c) 2022 Michael Joyce
- * This source file is subject to the GPL v2, bundled
- * with this source code in the file LICENSE.
- */
-
namespace App\Controller;
use App\Entity\Monarch;
use App\Form\MonarchType;
use App\Repository\MonarchRepository;
-
+use Doctrine\ORM\EntityManagerInterface;
use Knp\Bundle\PaginatorBundle\Definition\PaginatorAwareInterface;
use Nines\UtilBundle\Controller\PaginatorTrait;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\IsGranted;
@@ -24,55 +18,24 @@
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\Routing\Annotation\Route;
-/**
- * @Route("/monarch")
- */
+#[Route(path: '/monarch')]
class MonarchController extends AbstractController implements PaginatorAwareInterface {
use PaginatorTrait;
- /**
- * @Route("/", name="monarch_index", methods={"GET"})
- *
- * @Template
- */
+ #[Route(path: '/', name: 'monarch_index', methods: ['GET'])]
+ #[Template]
public function index(Request $request, MonarchRepository $monarchRepository) : array {
- $query = $monarchRepository->indexQuery();
- $pageSize = (int) $this->getParameter('page_size');
- $page = $request->query->getint('page', 1);
-
- return [
- 'monarchs' => $this->paginator->paginate($query, $page, $pageSize),
- ];
- }
-
- /**
- * @Route("/search", name="monarch_search", methods={"GET"})
- *
- * @Template
- *
- * @return array
- */
- public function search(Request $request, MonarchRepository $monarchRepository) {
$q = $request->query->get('q');
- if ($q) {
- $query = $monarchRepository->searchQuery($q);
- $monarchs = $this->paginator->paginate($query, $request->query->getInt('page', 1), $this->getParameter('page_size'), ['wrap-queries' => true]);
- } else {
- $monarchs = [];
- }
+ $query = $q ? $monarchRepository->searchQuery($q) : $monarchRepository->indexQuery();
return [
- 'monarchs' => $monarchs,
+ 'monarchs' => $this->paginator->paginate($query, $request->query->getInt('page', 1), $this->getParameter('page_size'), ['wrap-queries' => true]),
'q' => $q,
];
}
- /**
- * @Route("/typeahead", name="monarch_typeahead", methods={"GET"})
- *
- * @return JsonResponse
- */
- public function typeahead(Request $request, MonarchRepository $monarchRepository) {
+ #[Route(path: '/typeahead', name: 'monarch_typeahead', methods: ['GET'])]
+ public function typeahead(Request $request, MonarchRepository $monarchRepository) : JsonResponse {
$q = $request->query->get('q');
if ( ! $q) {
return new JsonResponse([]);
@@ -88,20 +51,15 @@ public function typeahead(Request $request, MonarchRepository $monarchRepository
return new JsonResponse($data);
}
- /**
- * @Route("/new", name="monarch_new", methods={"GET", "POST"})
- * @Template
- * @IsGranted("ROLE_CONTENT_ADMIN")
- *
- * @return array|RedirectResponse
- */
- public function new(Request $request) {
+ #[Route(path: '/new', name: 'monarch_new', methods: ['GET', 'POST'])]
+ #[Template]
+ #[IsGranted('ROLE_CONTENT_ADMIN')]
+ public function new(EntityManagerInterface $entityManager, Request $request) : array|RedirectResponse {
$monarch = new Monarch();
$form = $this->createForm(MonarchType::class, $monarch);
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
- $entityManager = $this->getDoctrine()->getManager();
$entityManager->persist($monarch);
$entityManager->flush();
$this->addFlash('success', 'The new monarch has been saved.');
@@ -115,43 +73,23 @@ public function new(Request $request) {
];
}
- /**
- * @Route("/new_popup", name="monarch_new_popup", methods={"GET", "POST"})
- * @Template
- * @IsGranted("ROLE_CONTENT_ADMIN")
- *
- * @return array|RedirectResponse
- */
- public function new_popup(Request $request) {
- return $this->new($request);
- }
-
- /**
- * @Route("/{id}", name="monarch_show", methods={"GET"})
- * @Template
- *
- * @return array
- */
- public function show(Monarch $monarch) {
+ #[Route(path: '/{id}', name: 'monarch_show', methods: ['GET'])]
+ #[Template]
+ public function show(Monarch $monarch) : array {
return [
'monarch' => $monarch,
];
}
- /**
- * @IsGranted("ROLE_CONTENT_ADMIN")
- * @Route("/{id}/edit", name="monarch_edit", methods={"GET", "POST"})
- *
- * @Template
- *
- * @return array|RedirectResponse
- */
- public function edit(Request $request, Monarch $monarch) {
+ #[IsGranted('ROLE_CONTENT_ADMIN')]
+ #[Route(path: '/{id}/edit', name: 'monarch_edit', methods: ['GET', 'POST'])]
+ #[Template]
+ public function edit(EntityManagerInterface $entityManager, Request $request, Monarch $monarch) : array|RedirectResponse {
$form = $this->createForm(MonarchType::class, $monarch);
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
- $this->getDoctrine()->getManager()->flush();
+ $entityManager->flush();
$this->addFlash('success', 'The updated monarch has been saved.');
return $this->redirectToRoute('monarch_show', ['id' => $monarch->getId()]);
@@ -163,15 +101,10 @@ public function edit(Request $request, Monarch $monarch) {
];
}
- /**
- * @IsGranted("ROLE_CONTENT_ADMIN")
- * @Route("/{id}", name="monarch_delete", methods={"DELETE"})
- *
- * @return RedirectResponse
- */
- public function delete(Request $request, Monarch $monarch) {
+ #[IsGranted('ROLE_CONTENT_ADMIN')]
+ #[Route(path: '/{id}', name: 'monarch_delete', methods: ['DELETE'])]
+ public function delete(EntityManagerInterface $entityManager, Request $request, Monarch $monarch) : RedirectResponse {
if ($this->isCsrfTokenValid('delete' . $monarch->getId(), $request->request->get('_token'))) {
- $entityManager = $this->getDoctrine()->getManager();
$entityManager->remove($monarch);
$entityManager->flush();
$this->addFlash('success', 'The monarch has been deleted.');
diff --git a/src/Controller/NationController.php b/src/Controller/NationController.php
index 386798c..18ae4d5 100644
--- a/src/Controller/NationController.php
+++ b/src/Controller/NationController.php
@@ -2,17 +2,12 @@
declare(strict_types=1);
-/*
- * (c) 2022 Michael Joyce
- * This source file is subject to the GPL v2, bundled
- * with this source code in the file LICENSE.
- */
-
namespace App\Controller;
use App\Entity\Nation;
use App\Form\NationType;
use App\Repository\NationRepository;
+use Doctrine\ORM\EntityManagerInterface;
use Knp\Bundle\PaginatorBundle\Definition\PaginatorAwareInterface;
use Nines\UtilBundle\Controller\PaginatorTrait;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\IsGranted;
@@ -23,55 +18,24 @@
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\Routing\Annotation\Route;
-/**
- * @Route("/nation")
- */
+#[Route(path: '/nation')]
class NationController extends AbstractController implements PaginatorAwareInterface {
use PaginatorTrait;
- /**
- * @Route("/", name="nation_index", methods={"GET"})
- *
- * @Template
- */
+ #[Route(path: '/', name: 'nation_index', methods: ['GET'])]
+ #[Template]
public function index(Request $request, NationRepository $nationRepository) : array {
- $query = $nationRepository->indexQuery();
- $pageSize = (int) $this->getParameter('page_size');
- $page = $request->query->getint('page', 1);
-
- return [
- 'nations' => $this->paginator->paginate($query, $page, $pageSize),
- ];
- }
-
- /**
- * @Route("/search", name="nation_search", methods={"GET"})
- *
- * @Template
- *
- * @return array
- */
- public function search(Request $request, NationRepository $nationRepository) {
$q = $request->query->get('q');
- if ($q) {
- $query = $nationRepository->searchQuery($q);
- $nations = $this->paginator->paginate($query, $request->query->getInt('page', 1), $this->getParameter('page_size'), ['wrap-queries' => true]);
- } else {
- $nations = [];
- }
+ $query = $q ? $nationRepository->searchQuery($q) : $nationRepository->indexQuery();
return [
- 'nations' => $nations,
+ 'nations' => $this->paginator->paginate($query, $request->query->getInt('page', 1), $this->getParameter('page_size'), ['wrap-queries' => true]),
'q' => $q,
];
}
- /**
- * @Route("/typeahead", name="nation_typeahead", methods={"GET"})
- *
- * @return JsonResponse
- */
- public function typeahead(Request $request, NationRepository $nationRepository) {
+ #[Route(path: '/typeahead', name: 'nation_typeahead', methods: ['GET'])]
+ public function typeahead(Request $request, NationRepository $nationRepository) : JsonResponse {
$q = $request->query->get('q');
if ( ! $q) {
return new JsonResponse([]);
@@ -88,20 +52,15 @@ public function typeahead(Request $request, NationRepository $nationRepository)
return new JsonResponse($data);
}
- /**
- * @Route("/new", name="nation_new", methods={"GET", "POST"})
- * @Template
- * @IsGranted("ROLE_CONTENT_ADMIN")
- *
- * @return array|RedirectResponse
- */
- public function new(Request $request) {
+ #[Route(path: '/new', name: 'nation_new', methods: ['GET', 'POST'])]
+ #[Template]
+ #[IsGranted('ROLE_CONTENT_ADMIN')]
+ public function new(EntityManagerInterface $entityManager, Request $request) : array|RedirectResponse {
$nation = new Nation();
$form = $this->createForm(NationType::class, $nation);
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
- $entityManager = $this->getDoctrine()->getManager();
$entityManager->persist($nation);
$entityManager->flush();
$this->addFlash('success', 'The new nation has been saved.');
@@ -115,43 +74,23 @@ public function new(Request $request) {
];
}
- /**
- * @Route("/new_popup", name="nation_new_popup", methods={"GET", "POST"})
- * @Template
- * @IsGranted("ROLE_CONTENT_ADMIN")
- *
- * @return array|RedirectResponse
- */
- public function new_popup(Request $request) {
- return $this->new($request);
- }
-
- /**
- * @Route("/{id}", name="nation_show", methods={"GET"})
- * @Template
- *
- * @return array
- */
- public function show(Nation $nation) {
+ #[Route(path: '/{id}', name: 'nation_show', methods: ['GET'])]
+ #[Template]
+ public function show(Nation $nation) : array {
return [
'nation' => $nation,
];
}
- /**
- * @IsGranted("ROLE_CONTENT_ADMIN")
- * @Route("/{id}/edit", name="nation_edit", methods={"GET", "POST"})
- *
- * @Template
- *
- * @return array|RedirectResponse
- */
- public function edit(Request $request, Nation $nation) {
+ #[IsGranted('ROLE_CONTENT_ADMIN')]
+ #[Route(path: '/{id}/edit', name: 'nation_edit', methods: ['GET', 'POST'])]
+ #[Template]
+ public function edit(EntityManagerInterface $entityManager, Request $request, Nation $nation) : array|RedirectResponse {
$form = $this->createForm(NationType::class, $nation);
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
- $this->getDoctrine()->getManager()->flush();
+ $entityManager->flush();
$this->addFlash('success', 'The updated nation has been saved.');
return $this->redirectToRoute('nation_show', ['id' => $nation->getId()]);
@@ -163,15 +102,10 @@ public function edit(Request $request, Nation $nation) {
];
}
- /**
- * @IsGranted("ROLE_CONTENT_ADMIN")
- * @Route("/{id}", name="nation_delete", methods={"DELETE"})
- *
- * @return RedirectResponse
- */
- public function delete(Request $request, Nation $nation) {
+ #[IsGranted('ROLE_CONTENT_ADMIN')]
+ #[Route(path: '/{id}', name: 'nation_delete', methods: ['DELETE'])]
+ public function delete(EntityManagerInterface $entityManager, Request $request, Nation $nation) : RedirectResponse {
if ($this->isCsrfTokenValid('delete' . $nation->getId(), $request->request->get('_token'))) {
- $entityManager = $this->getDoctrine()->getManager();
$entityManager->remove($nation);
$entityManager->flush();
$this->addFlash('success', 'The nation has been deleted.');
diff --git a/src/Controller/ParishController.php b/src/Controller/ParishController.php
index 851221c..8393716 100644
--- a/src/Controller/ParishController.php
+++ b/src/Controller/ParishController.php
@@ -2,17 +2,12 @@
declare(strict_types=1);
-/*
- * (c) 2022 Michael Joyce
- * This source file is subject to the GPL v2, bundled
- * with this source code in the file LICENSE.
- */
-
namespace App\Controller;
use App\Entity\Parish;
use App\Form\ParishType;
use App\Repository\ParishRepository;
+use Doctrine\ORM\EntityManagerInterface;
use Knp\Bundle\PaginatorBundle\Definition\PaginatorAwareInterface;
use Nines\UtilBundle\Controller\PaginatorTrait;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\IsGranted;
@@ -23,55 +18,24 @@
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\Routing\Annotation\Route;
-/**
- * @Route("/parish")
- */
+#[Route(path: '/parish')]
class ParishController extends AbstractController implements PaginatorAwareInterface {
use PaginatorTrait;
- /**
- * @Route("/", name="parish_index", methods={"GET"})
- *
- * @Template
- */
+ #[Route(path: '/', name: 'parish_index', methods: ['GET'])]
+ #[Template]
public function index(Request $request, ParishRepository $parishRepository) : array {
- $query = $parishRepository->indexQuery();
- $pageSize = $this->getParameter('page_size');
- $page = $request->query->getint('page', 1);
-
- return [
- 'parishes' => $this->paginator->paginate($query, $page, $pageSize),
- ];
- }
-
- /**
- * @Route("/search", name="parish_search", methods={"GET"})
- *
- * @Template
- *
- * @return array
- */
- public function search(Request $request, ParishRepository $parishRepository) {
$q = $request->query->get('q');
- if ($q) {
- $query = $parishRepository->searchQuery($q);
- $parishes = $this->paginator->paginate($query, $request->query->getInt('page', 1), $this->getParameter('page_size'), ['wrap-queries' => true]);
- } else {
- $parishes = [];
- }
+ $query = $q ? $parishRepository->searchQuery($q) : $parishRepository->indexQuery();
return [
- 'parishes' => $parishes,
+ 'parishes' => $this->paginator->paginate($query, $request->query->getInt('page', 1), $this->getParameter('page_size'), ['wrap-queries' => true]),
'q' => $q,
];
}
- /**
- * @Route("/typeahead", name="parish_typeahead", methods={"GET"})
- *
- * @return JsonResponse
- */
- public function typeahead(Request $request, ParishRepository $parishRepository) {
+ #[Route(path: '/typeahead', name: 'parish_typeahead', methods: ['GET'])]
+ public function typeahead(Request $request, ParishRepository $parishRepository) : JsonResponse {
$q = $request->query->get('q');
if ( ! $q) {
return new JsonResponse([]);
@@ -88,20 +52,15 @@ public function typeahead(Request $request, ParishRepository $parishRepository)
return new JsonResponse($data);
}
- /**
- * @Route("/new", name="parish_new", methods={"GET", "POST"})
- * @Template
- * @IsGranted("ROLE_CONTENT_ADMIN")
- *
- * @return array|RedirectResponse
- */
- public function new(Request $request) {
+ #[Route(path: '/new', name: 'parish_new', methods: ['GET', 'POST'])]
+ #[Template]
+ #[IsGranted('ROLE_CONTENT_ADMIN')]
+ public function new(EntityManagerInterface $entityManager, Request $request) : array|RedirectResponse {
$parish = new Parish();
$form = $this->createForm(ParishType::class, $parish);
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
- $entityManager = $this->getDoctrine()->getManager();
$entityManager->persist($parish);
$entityManager->flush();
@@ -116,43 +75,23 @@ public function new(Request $request) {
];
}
- /**
- * @Route("/new_popup", name="parish_new_popup", methods={"GET", "POST"})
- * @Template
- * @IsGranted("ROLE_CONTENT_ADMIN")
- *
- * @return array|RedirectResponse
- */
- public function new_popup(Request $request) {
- return $this->new($request);
- }
-
- /**
- * @Route("/{id}", name="parish_show", methods={"GET"})
- * @Template
- *
- * @return array
- */
- public function show(Parish $parish) {
+ #[Route(path: '/{id}', name: 'parish_show', methods: ['GET'])]
+ #[Template]
+ public function show(Parish $parish) : array {
return [
'parish' => $parish,
];
}
- /**
- * @IsGranted("ROLE_CONTENT_ADMIN")
- * @Route("/{id}/edit", name="parish_edit", methods={"GET", "POST"})
- *
- * @Template
- *
- * @return array|RedirectResponse
- */
- public function edit(Request $request, Parish $parish) {
+ #[IsGranted('ROLE_CONTENT_ADMIN')]
+ #[Route(path: '/{id}/edit', name: 'parish_edit', methods: ['GET', 'POST'])]
+ #[Template]
+ public function edit(EntityManagerInterface $entityManager, Request $request, Parish $parish) : array|RedirectResponse {
$form = $this->createForm(ParishType::class, $parish);
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
- $this->getDoctrine()->getManager()->flush();
+ $entityManager->flush();
$this->addFlash('success', 'The updated parish has been saved.');
return $this->redirectToRoute('parish_show', ['id' => $parish->getId()]);
@@ -164,15 +103,10 @@ public function edit(Request $request, Parish $parish) {
];
}
- /**
- * @IsGranted("ROLE_CONTENT_ADMIN")
- * @Route("/{id}", name="parish_delete", methods={"DELETE"})
- *
- * @return RedirectResponse
- */
- public function delete(Request $request, Parish $parish) {
+ #[IsGranted('ROLE_CONTENT_ADMIN')]
+ #[Route(path: '/{id}', name: 'parish_delete', methods: ['DELETE'])]
+ public function delete(EntityManagerInterface $entityManager, Request $request, Parish $parish) : RedirectResponse {
if ($this->isCsrfTokenValid('delete' . $parish->getId(), $request->request->get('_token'))) {
- $entityManager = $this->getDoctrine()->getManager();
$entityManager->remove($parish);
$entityManager->flush();
$this->addFlash('success', 'The parish has been deleted.');
diff --git a/src/Controller/PrintSourceController.php b/src/Controller/PrintSourceController.php
index a2f9303..e4e9571 100644
--- a/src/Controller/PrintSourceController.php
+++ b/src/Controller/PrintSourceController.php
@@ -2,12 +2,6 @@
declare(strict_types=1);
-/*
- * (c) 2022 Michael Joyce
- * This source file is subject to the GPL v2, bundled
- * with this source code in the file LICENSE.
- */
-
namespace App\Controller;
use App\Entity\PrintSource;
@@ -18,55 +12,30 @@
use Knp\Bundle\PaginatorBundle\Definition\PaginatorAwareInterface;
use Nines\UtilBundle\Controller\PaginatorTrait;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\IsGranted;
+use Sensio\Bundle\FrameworkExtraBundle\Configuration\Template;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\JsonResponse;
use Symfony\Component\HttpFoundation\RedirectResponse;
use Symfony\Component\HttpFoundation\Request;
-use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;
-/**
- * @Route("/print_source")
- */
+#[Route(path: '/print_source')]
class PrintSourceController extends AbstractController implements PaginatorAwareInterface {
use PaginatorTrait;
- /**
- * @Route("/", name="print_source_index", methods={"GET"})
- */
- public function index(Request $request, PrintSourceRepository $printSourceRepository) : Response {
- $query = $printSourceRepository->indexQuery();
- $pageSize = (int) $this->getParameter('page_size');
- $page = $request->query->getint('page', 1);
-
- return $this->render('print_source/index.html.twig', [
- 'print_sources' => $this->paginator->paginate($query, $page, $pageSize),
- ]);
- }
-
- /**
- * @Route("/search", name="print_source_search", methods={"GET"})
- */
- public function search(Request $request, PrintSourceRepository $printSourceRepository) : Response {
+ #[Route(path: '/', name: 'print_source_index', methods: ['GET'])]
+ #[Template('print_source/index.html.twig')]
+ public function index(Request $request, PrintSourceRepository $printSourceRepository) : array {
$q = $request->query->get('q');
- if ($q) {
- $query = $printSourceRepository->searchQuery($q);
- $printSources = $this->paginator->paginate($query, $request->query->getInt('page', 1), $this->getParameter('page_size'), [
- 'wrap-queries' => true,
- ]);
- } else {
- $printSources = [];
- }
+ $query = $q ? $printSourceRepository->searchQuery($q) : $printSourceRepository->indexQuery();
- return $this->render('print_source/search.html.twig', [
- 'print_sources' => $printSources,
+ return [
+ 'print_sources' => $this->paginator->paginate($query, $request->query->getInt('page', 1), $this->getParameter('page_size'), ['wrap-queries' => true]),
'q' => $q,
- ]);
+ ];
}
- /**
- * @Route("/typeahead", name="print_source_typeahead", methods={"GET"})
- */
+ #[Route(path: '/typeahead', name: 'print_source_typeahead', methods: ['GET'])]
public function typeahead(Request $request, PrintSourceRepository $printSourceRepository) : JsonResponse {
$q = $request->query->get('q');
if ( ! $q) {
@@ -84,71 +53,58 @@ public function typeahead(Request $request, PrintSourceRepository $printSourceRe
return new JsonResponse($data);
}
- /**
- * @Route("/new", name="print_source_new", methods={"GET", "POST"})
- * @IsGranted("ROLE_CONTENT_ADMIN")
- */
- public function new(Request $request, EntityManagerInterface $em) : Response {
+ #[Route(path: '/new', name: 'print_source_new', methods: ['GET', 'POST'])]
+ #[IsGranted('ROLE_CONTENT_ADMIN')]
+ #[Template('print_source/new.html.twig')]
+ public function new(EntityManagerInterface $entityManager, Request $request) : array|RedirectResponse {
$printSource = new PrintSource();
$form = $this->createForm(PrintSourceType::class, $printSource);
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
- $em->persist($printSource);
- $em->flush();
+ $entityManager->persist($printSource);
+ $entityManager->flush();
$this->addFlash('success', 'The new printSource has been saved.');
return $this->redirectToRoute('print_source_show', ['id' => $printSource->getId()]);
}
- return $this->render('print_source/new.html.twig', [
+ return [
'print_source' => $printSource,
'form' => $form->createView(),
- ]);
- }
-
- /**
- * @Route("/new_popup", name="print_source_new_popup", methods={"GET", "POST"})
- * @IsGranted("ROLE_CONTENT_ADMIN")
- */
- public function new_popup(Request $request, EntityManagerInterface $em) : Response {
- return $this->new($request, $em);
+ ];
}
- /**
- * @Route("/{id}", name="print_source_show", methods={"GET"})
- */
- public function show(PrintSource $printSource) : Response {
- return $this->render('print_source/show.html.twig', [
+ #[Route(path: '/{id}', name: 'print_source_show', methods: ['GET'])]
+ #[Template('print_source/show.html.twig')]
+ public function show(PrintSource $printSource) : array {
+ return [
'print_source' => $printSource,
- ]);
+ ];
}
- /**
- * @IsGranted("ROLE_CONTENT_ADMIN")
- * @Route("/{id}/edit", name="print_source_edit", methods={"GET", "POST"})
- */
- public function edit(Request $request, PrintSource $printSource, EntityManagerInterface $em) : Response {
+ #[IsGranted('ROLE_CONTENT_ADMIN')]
+ #[Route(path: '/{id}/edit', name: 'print_source_edit', methods: ['GET', 'POST'])]
+ #[Template('print_source/edit.html.twig')]
+ public function edit(EntityManagerInterface $entityManager, Request $request, PrintSource $printSource) : array|RedirectResponse {
$form = $this->createForm(PrintSourceType::class, $printSource);
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
- $em->flush();
+ $entityManager->flush();
$this->addFlash('success', 'The updated printSource has been saved.');
return $this->redirectToRoute('print_source_show', ['id' => $printSource->getId()]);
}
- return $this->render('print_source/edit.html.twig', [
+ return [
'print_source' => $printSource,
'form' => $form->createView(),
- ]);
+ ];
}
- /**
- * @IsGranted("ROLE_CONTENT_ADMIN")
- * @Route("/{id}", name="print_source_delete", methods={"DELETE"})
- */
+ #[IsGranted('ROLE_CONTENT_ADMIN')]
+ #[Route(path: '/{id}', name: 'print_source_delete', methods: ['DELETE'])]
public function delete(Request $request, PrintSource $printSource, EntityManagerInterface $em) : RedirectResponse {
if ($this->isCsrfTokenValid('delete' . $printSource->getId(), $request->request->get('_token'))) {
$em->remove($printSource);
diff --git a/src/Controller/ProvinceController.php b/src/Controller/ProvinceController.php
index 261cf36..73ac752 100644
--- a/src/Controller/ProvinceController.php
+++ b/src/Controller/ProvinceController.php
@@ -2,17 +2,12 @@
declare(strict_types=1);
-/*
- * (c) 2022 Michael Joyce
- * This source file is subject to the GPL v2, bundled
- * with this source code in the file LICENSE.
- */
-
namespace App\Controller;
use App\Entity\Province;
use App\Form\ProvinceType;
use App\Repository\ProvinceRepository;
+use Doctrine\ORM\EntityManagerInterface;
use Knp\Bundle\PaginatorBundle\Definition\PaginatorAwareInterface;
use Nines\UtilBundle\Controller\PaginatorTrait;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\IsGranted;
@@ -23,55 +18,24 @@
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\Routing\Annotation\Route;
-/**
- * @Route("/province")
- */
+#[Route(path: '/province')]
class ProvinceController extends AbstractController implements PaginatorAwareInterface {
use PaginatorTrait;
- /**
- * @Route("/", name="province_index", methods={"GET"})
- *
- * @Template
- */
+ #[Route(path: '/', name: 'province_index', methods: ['GET'])]
+ #[Template]
public function index(Request $request, ProvinceRepository $provinceRepository) : array {
- $query = $provinceRepository->indexQuery();
- $pageSize = $this->getParameter('page_size');
- $page = $request->query->getint('page', 1);
-
- return [
- 'provinces' => $this->paginator->paginate($query, $page, $pageSize),
- ];
- }
-
- /**
- * @Route("/search", name="province_search", methods={"GET"})
- *
- * @Template
- *
- * @return array
- */
- public function search(Request $request, ProvinceRepository $provinceRepository) {
$q = $request->query->get('q');
- if ($q) {
- $query = $provinceRepository->searchQuery($q);
- $provinces = $this->paginator->paginate($query, $request->query->getInt('page', 1), $this->getParameter('page_size'), ['wrap-queries' => true]);
- } else {
- $provinces = [];
- }
+ $query = $q ? $provinceRepository->searchQuery($q) : $provinceRepository->indexQuery();
return [
- 'provinces' => $provinces,
+ 'provinces' => $this->paginator->paginate($query, $request->query->getInt('page', 1), $this->getParameter('page_size'), ['wrap-queries' => true]),
'q' => $q,
];
}
- /**
- * @Route("/typeahead", name="province_typeahead", methods={"GET"})
- *
- * @return JsonResponse
- */
- public function typeahead(Request $request, ProvinceRepository $provinceRepository) {
+ #[Route(path: '/typeahead', name: 'province_typeahead', methods: ['GET'])]
+ public function typeahead(Request $request, ProvinceRepository $provinceRepository) : JsonResponse {
$q = $request->query->get('q');
if ( ! $q) {
return new JsonResponse([]);
@@ -88,20 +52,15 @@ public function typeahead(Request $request, ProvinceRepository $provinceReposito
return new JsonResponse($data);
}
- /**
- * @Route("/new", name="province_new", methods={"GET", "POST"})
- * @Template
- * @IsGranted("ROLE_CONTENT_ADMIN")
- *
- * @return array|RedirectResponse
- */
- public function new(Request $request) {
+ #[Route(path: '/new', name: 'province_new', methods: ['GET', 'POST'])]
+ #[Template]
+ #[IsGranted('ROLE_CONTENT_ADMIN')]
+ public function new(EntityManagerInterface $entityManager, Request $request) : array|RedirectResponse {
$province = new Province();
$form = $this->createForm(ProvinceType::class, $province);
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
- $entityManager = $this->getDoctrine()->getManager();
$entityManager->persist($province);
$entityManager->flush();
@@ -116,43 +75,23 @@ public function new(Request $request) {
];
}
- /**
- * @Route("/new_popup", name="province_new_popup", methods={"GET", "POST"})
- * @Template
- * @IsGranted("ROLE_CONTENT_ADMIN")
- *
- * @return array|RedirectResponse
- */
- public function new_popup(Request $request) {
- return $this->new($request);
- }
-
- /**
- * @Route("/{id}", name="province_show", methods={"GET"})
- * @Template
- *
- * @return array
- */
- public function show(Province $province) {
+ #[Route(path: '/{id}', name: 'province_show', methods: ['GET'])]
+ #[Template]
+ public function show(Province $province) : array {
return [
'province' => $province,
];
}
- /**
- * @IsGranted("ROLE_CONTENT_ADMIN")
- * @Route("/{id}/edit", name="province_edit", methods={"GET", "POST"})
- *
- * @Template
- *
- * @return array|RedirectResponse
- */
- public function edit(Request $request, Province $province) {
+ #[IsGranted('ROLE_CONTENT_ADMIN')]
+ #[Route(path: '/{id}/edit', name: 'province_edit', methods: ['GET', 'POST'])]
+ #[Template]
+ public function edit(EntityManagerInterface $entityManager, Request $request, Province $province) : array|RedirectResponse {
$form = $this->createForm(ProvinceType::class, $province);
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
- $this->getDoctrine()->getManager()->flush();
+ $entityManager->flush();
$this->addFlash('success', 'The updated province has been saved.');
return $this->redirectToRoute('province_show', ['id' => $province->getId()]);
@@ -164,15 +103,10 @@ public function edit(Request $request, Province $province) {
];
}
- /**
- * @IsGranted("ROLE_CONTENT_ADMIN")
- * @Route("/{id}", name="province_delete", methods={"DELETE"})
- *
- * @return RedirectResponse
- */
- public function delete(Request $request, Province $province) {
+ #[IsGranted('ROLE_CONTENT_ADMIN')]
+ #[Route(path: '/{id}', name: 'province_delete', methods: ['DELETE'])]
+ public function delete(EntityManagerInterface $entityManager, Request $request, Province $province) : RedirectResponse {
if ($this->isCsrfTokenValid('delete' . $province->getId(), $request->request->get('_token'))) {
- $entityManager = $this->getDoctrine()->getManager();
$entityManager->remove($province);
$entityManager->flush();
$this->addFlash('success', 'The province has been deleted.');
diff --git a/src/Controller/SourceCategoryController.php b/src/Controller/SourceCategoryController.php
index 2ffd6da..818ba23 100644
--- a/src/Controller/SourceCategoryController.php
+++ b/src/Controller/SourceCategoryController.php
@@ -2,17 +2,12 @@
declare(strict_types=1);
-/*
- * (c) 2022 Michael Joyce
- * This source file is subject to the GPL v2, bundled
- * with this source code in the file LICENSE.
- */
-
namespace App\Controller;
use App\Entity\SourceCategory;
use App\Form\SourceCategoryType;
use App\Repository\SourceCategoryRepository;
+use Doctrine\ORM\EntityManagerInterface;
use Knp\Bundle\PaginatorBundle\Definition\PaginatorAwareInterface;
use Nines\UtilBundle\Controller\PaginatorTrait;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\IsGranted;
@@ -23,55 +18,24 @@
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\Routing\Annotation\Route;
-/**
- * @Route("/source_category")
- */
+#[Route(path: '/source_category')]
class SourceCategoryController extends AbstractController implements PaginatorAwareInterface {
use PaginatorTrait;
- /**
- * @Route("/", name="source_category_index", methods={"GET"})
- *
- * @Template
- */
+ #[Route(path: '/', name: 'source_category_index', methods: ['GET'])]
+ #[Template]
public function index(Request $request, SourceCategoryRepository $sourceCategoryRepository) : array {
- $query = $sourceCategoryRepository->indexQuery();
- $pageSize = (int) $this->getParameter('page_size');
- $page = $request->query->getint('page', 1);
-
- return [
- 'source_categories' => $this->paginator->paginate($query, $page, $pageSize),
- ];
- }
-
- /**
- * @Route("/search", name="source_category_search", methods={"GET"})
- *
- * @Template
- *
- * @return array
- */
- public function search(Request $request, SourceCategoryRepository $sourceCategoryRepository) {
$q = $request->query->get('q');
- if ($q) {
- $query = $sourceCategoryRepository->searchQuery($q);
- $sourceCategories = $this->paginator->paginate($query, $request->query->getInt('page', 1), $this->getParameter('page_size'), ['wrap-queries' => true]);
- } else {
- $sourceCategories = [];
- }
+ $query = $q ? $sourceCategoryRepository->searchQuery($q) : $sourceCategoryRepository->indexQuery();
return [
- 'source_categories' => $sourceCategories,
+ 'source_categories' => $this->paginator->paginate($query, $request->query->getInt('page', 1), $this->getParameter('page_size'), ['wrap-queries' => true]),
'q' => $q,
];
}
- /**
- * @Route("/typeahead", name="source_category_typeahead", methods={"GET"})
- *
- * @return JsonResponse
- */
- public function typeahead(Request $request, SourceCategoryRepository $sourceCategoryRepository) {
+ #[Route(path: '/typeahead', name: 'source_category_typeahead', methods: ['GET'])]
+ public function typeahead(Request $request, SourceCategoryRepository $sourceCategoryRepository) : JsonResponse {
$q = $request->query->get('q');
if ( ! $q) {
return new JsonResponse([]);
@@ -88,20 +52,15 @@ public function typeahead(Request $request, SourceCategoryRepository $sourceCate
return new JsonResponse($data);
}
- /**
- * @Route("/new", name="source_category_new", methods={"GET", "POST"})
- * @Template
- * @IsGranted("ROLE_CONTENT_ADMIN")
- *
- * @return array|RedirectResponse
- */
- public function new(Request $request) {
+ #[Route(path: '/new', name: 'source_category_new', methods: ['GET', 'POST'])]
+ #[Template]
+ #[IsGranted('ROLE_CONTENT_ADMIN')]
+ public function new(EntityManagerInterface $entityManager, Request $request) : array|RedirectResponse {
$sourceCategory = new SourceCategory();
$form = $this->createForm(SourceCategoryType::class, $sourceCategory);
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
- $entityManager = $this->getDoctrine()->getManager();
$entityManager->persist($sourceCategory);
$entityManager->flush();
$this->addFlash('success', 'The new sourceCategory has been saved.');
@@ -115,43 +74,23 @@ public function new(Request $request) {
];
}
- /**
- * @Route("/new_popup", name="source_category_new_popup", methods={"GET", "POST"})
- * @Template
- * @IsGranted("ROLE_CONTENT_ADMIN")
- *
- * @return array|RedirectResponse
- */
- public function new_popup(Request $request) {
- return $this->new($request);
- }
-
- /**
- * @Route("/{id}", name="source_category_show", methods={"GET"})
- * @Template
- *
- * @return array
- */
- public function show(SourceCategory $sourceCategory) {
+ #[Route(path: '/{id}', name: 'source_category_show', methods: ['GET'])]
+ #[Template]
+ public function show(SourceCategory $sourceCategory) : array {
return [
'source_category' => $sourceCategory,
];
}
- /**
- * @IsGranted("ROLE_CONTENT_ADMIN")
- * @Route("/{id}/edit", name="source_category_edit", methods={"GET", "POST"})
- *
- * @Template
- *
- * @return array|RedirectResponse
- */
- public function edit(Request $request, SourceCategory $sourceCategory) {
+ #[IsGranted('ROLE_CONTENT_ADMIN')]
+ #[Route(path: '/{id}/edit', name: 'source_category_edit', methods: ['GET', 'POST'])]
+ #[Template]
+ public function edit(EntityManagerInterface $entityManager, Request $request, SourceCategory $sourceCategory) : array|RedirectResponse {
$form = $this->createForm(SourceCategoryType::class, $sourceCategory);
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
- $this->getDoctrine()->getManager()->flush();
+ $entityManager->flush();
$this->addFlash('success', 'The updated sourceCategory has been saved.');
return $this->redirectToRoute('source_category_show', ['id' => $sourceCategory->getId()]);
@@ -163,15 +102,10 @@ public function edit(Request $request, SourceCategory $sourceCategory) {
];
}
- /**
- * @IsGranted("ROLE_CONTENT_ADMIN")
- * @Route("/{id}", name="source_category_delete", methods={"DELETE"})
- *
- * @return RedirectResponse
- */
- public function delete(Request $request, SourceCategory $sourceCategory) {
+ #[IsGranted('ROLE_CONTENT_ADMIN')]
+ #[Route(path: '/{id}', name: 'source_category_delete', methods: ['DELETE'])]
+ public function delete(EntityManagerInterface $entityManager, Request $request, SourceCategory $sourceCategory) : RedirectResponse {
if ($this->isCsrfTokenValid('delete' . $sourceCategory->getId(), $request->request->get('_token'))) {
- $entityManager = $this->getDoctrine()->getManager();
$entityManager->remove($sourceCategory);
$entityManager->flush();
$this->addFlash('success', 'The sourceCategory has been deleted.');
diff --git a/src/Controller/TownController.php b/src/Controller/TownController.php
index 7d71497..f223bc1 100644
--- a/src/Controller/TownController.php
+++ b/src/Controller/TownController.php
@@ -2,17 +2,12 @@
declare(strict_types=1);
-/*
- * (c) 2022 Michael Joyce
- * This source file is subject to the GPL v2, bundled
- * with this source code in the file LICENSE.
- */
-
namespace App\Controller;
use App\Entity\Town;
use App\Form\TownType;
use App\Repository\TownRepository;
+use Doctrine\ORM\EntityManagerInterface;
use Knp\Bundle\PaginatorBundle\Definition\PaginatorAwareInterface;
use Nines\UtilBundle\Controller\PaginatorTrait;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\IsGranted;
@@ -23,55 +18,24 @@
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\Routing\Annotation\Route;
-/**
- * @Route("/town")
- */
+#[Route(path: '/town')]
class TownController extends AbstractController implements PaginatorAwareInterface {
use PaginatorTrait;
- /**
- * @Route("/", name="town_index", methods={"GET"})
- *
- * @Template
- */
+ #[Route(path: '/', name: 'town_index', methods: ['GET'])]
+ #[Template]
public function index(Request $request, TownRepository $townRepository) : array {
- $query = $townRepository->indexQuery();
- $pageSize = $this->getParameter('page_size');
- $page = $request->query->getint('page', 1);
-
- return [
- 'towns' => $this->paginator->paginate($query, $page, $pageSize),
- ];
- }
-
- /**
- * @Route("/search", name="town_search", methods={"GET"})
- *
- * @Template
- *
- * @return array
- */
- public function search(Request $request, TownRepository $townRepository) {
$q = $request->query->get('q');
- if ($q) {
- $query = $townRepository->searchQuery($q);
- $towns = $this->paginator->paginate($query, $request->query->getInt('page', 1), $this->getParameter('page_size'), ['wrap-queries' => true]);
- } else {
- $towns = [];
- }
+ $query = $q ? $townRepository->searchQuery($q) : $townRepository->indexQuery();
return [
- 'towns' => $towns,
+ 'towns' => $this->paginator->paginate($query, $request->query->getInt('page', 1), $this->getParameter('page_size'), ['wrap-queries' => true]),
'q' => $q,
];
}
- /**
- * @Route("/typeahead", name="town_typeahead", methods={"GET"})
- *
- * @return JsonResponse
- */
- public function typeahead(Request $request, TownRepository $townRepository) {
+ #[Route(path: '/typeahead', name: 'town_typeahead', methods: ['GET'])]
+ public function typeahead(Request $request, TownRepository $townRepository) : JsonResponse {
$q = $request->query->get('q');
if ( ! $q) {
return new JsonResponse([]);
@@ -88,20 +52,15 @@ public function typeahead(Request $request, TownRepository $townRepository) {
return new JsonResponse($data);
}
- /**
- * @Route("/new", name="town_new", methods={"GET", "POST"})
- * @Template
- * @IsGranted("ROLE_CONTENT_ADMIN")
- *
- * @return array|RedirectResponse
- */
- public function new(Request $request) {
+ #[Route(path: '/new', name: 'town_new', methods: ['GET', 'POST'])]
+ #[Template]
+ #[IsGranted('ROLE_CONTENT_ADMIN')]
+ public function new(EntityManagerInterface $entityManager, Request $request) : array|RedirectResponse {
$town = new Town();
$form = $this->createForm(TownType::class, $town);
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
- $entityManager = $this->getDoctrine()->getManager();
$entityManager->persist($town);
$entityManager->flush();
@@ -116,43 +75,23 @@ public function new(Request $request) {
];
}
- /**
- * @Route("/new_popup", name="town_new_popup", methods={"GET", "POST"})
- * @Template
- * @IsGranted("ROLE_CONTENT_ADMIN")
- *
- * @return array|RedirectResponse
- */
- public function new_popup(Request $request) {
- return $this->new($request);
- }
-
- /**
- * @Route("/{id}", name="town_show", methods={"GET"})
- * @Template
- *
- * @return array
- */
- public function show(Town $town) {
+ #[Route(path: '/{id}', name: 'town_show', methods: ['GET'])]
+ #[Template]
+ public function show(Town $town) : array {
return [
'town' => $town,
];
}
- /**
- * @IsGranted("ROLE_CONTENT_ADMIN")
- * @Route("/{id}/edit", name="town_edit", methods={"GET", "POST"})
- *
- * @Template
- *
- * @return array|RedirectResponse
- */
- public function edit(Request $request, Town $town) {
+ #[IsGranted('ROLE_CONTENT_ADMIN')]
+ #[Route(path: '/{id}/edit', name: 'town_edit', methods: ['GET', 'POST'])]
+ #[Template]
+ public function edit(EntityManagerInterface $entityManager, Request $request, Town $town) : array|RedirectResponse {
$form = $this->createForm(TownType::class, $town);
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
- $this->getDoctrine()->getManager()->flush();
+ $entityManager->flush();
$this->addFlash('success', 'The updated town has been saved.');
return $this->redirectToRoute('town_show', ['id' => $town->getId()]);
@@ -164,15 +103,10 @@ public function edit(Request $request, Town $town) {
];
}
- /**
- * @IsGranted("ROLE_CONTENT_ADMIN")
- * @Route("/{id}", name="town_delete", methods={"DELETE"})
- *
- * @return RedirectResponse
- */
- public function delete(Request $request, Town $town) {
+ #[IsGranted('ROLE_CONTENT_ADMIN')]
+ #[Route(path: '/{id}', name: 'town_delete', methods: ['DELETE'])]
+ public function delete(EntityManagerInterface $entityManager, Request $request, Town $town) : RedirectResponse {
if ($this->isCsrfTokenValid('delete' . $town->getId(), $request->request->get('_token'))) {
- $entityManager = $this->getDoctrine()->getManager();
$entityManager->remove($town);
$entityManager->flush();
$this->addFlash('success', 'The town has been deleted.');
diff --git a/src/Controller/TransactionCategoryController.php b/src/Controller/TransactionCategoryController.php
index e27c14c..3dbe418 100644
--- a/src/Controller/TransactionCategoryController.php
+++ b/src/Controller/TransactionCategoryController.php
@@ -2,17 +2,12 @@
declare(strict_types=1);
-/*
- * (c) 2022 Michael Joyce
- * This source file is subject to the GPL v2, bundled
- * with this source code in the file LICENSE.
- */
-
namespace App\Controller;
use App\Entity\TransactionCategory;
use App\Form\TransactionCategoryType;
use App\Repository\TransactionCategoryRepository;
+use Doctrine\ORM\EntityManagerInterface;
use Knp\Bundle\PaginatorBundle\Definition\PaginatorAwareInterface;
use Nines\UtilBundle\Controller\PaginatorTrait;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\IsGranted;
@@ -23,55 +18,24 @@
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\Routing\Annotation\Route;
-/**
- * @Route("/transaction_category")
- */
+#[Route(path: '/transaction_category')]
class TransactionCategoryController extends AbstractController implements PaginatorAwareInterface {
use PaginatorTrait;
- /**
- * @Route("/", name="transaction_category_index", methods={"GET"})
- *
- * @Template
- */
+ #[Route(path: '/', name: 'transaction_category_index', methods: ['GET'])]
+ #[Template]
public function index(Request $request, TransactionCategoryRepository $transactionCategoryRepository) : array {
- $query = $transactionCategoryRepository->indexQuery();
- $pageSize = $this->getParameter('page_size');
- $page = $request->query->getint('page', 1);
-
- return [
- 'transaction_categories' => $this->paginator->paginate($query, $page, $pageSize),
- ];
- }
-
- /**
- * @Route("/search", name="transaction_category_search", methods={"GET"})
- *
- * @Template
- *
- * @return array
- */
- public function search(Request $request, TransactionCategoryRepository $transactionCategoryRepository) {
$q = $request->query->get('q');
- if ($q) {
- $query = $transactionCategoryRepository->searchQuery($q);
- $transactionCategories = $this->paginator->paginate($query, $request->query->getInt('page', 1), $this->getParameter('page_size'), ['wrap-queries' => true]);
- } else {
- $transactionCategories = [];
- }
+ $query = $q ? $transactionCategoryRepository->searchQuery($q) : $transactionCategoryRepository->indexQuery();
return [
- 'transaction_categories' => $transactionCategories,
+ 'transaction_categories' => $this->paginator->paginate($query, $request->query->getInt('page', 1), $this->getParameter('page_size'), ['wrap-queries' => true]),
'q' => $q,
];
}
- /**
- * @Route("/typeahead", name="transaction_category_typeahead", methods={"GET"})
- *
- * @return JsonResponse
- */
- public function typeahead(Request $request, TransactionCategoryRepository $transactionCategoryRepository) {
+ #[Route(path: '/typeahead', name: 'transaction_category_typeahead', methods: ['GET'])]
+ public function typeahead(Request $request, TransactionCategoryRepository $transactionCategoryRepository) : JsonResponse {
$q = $request->query->get('q');
if ( ! $q) {
return new JsonResponse([]);
@@ -88,20 +52,15 @@ public function typeahead(Request $request, TransactionCategoryRepository $trans
return new JsonResponse($data);
}
- /**
- * @Route("/new", name="transaction_category_new", methods={"GET", "POST"})
- * @Template
- * @IsGranted("ROLE_CONTENT_ADMIN")
- *
- * @return array|RedirectResponse
- */
- public function new(Request $request) {
+ #[Route(path: '/new', name: 'transaction_category_new', methods: ['GET', 'POST'])]
+ #[Template]
+ #[IsGranted('ROLE_CONTENT_ADMIN')]
+ public function new(EntityManagerInterface $entityManager, Request $request) : array|RedirectResponse {
$transactionCategory = new TransactionCategory();
$form = $this->createForm(TransactionCategoryType::class, $transactionCategory);
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
- $entityManager = $this->getDoctrine()->getManager();
$entityManager->persist($transactionCategory);
$entityManager->flush();
$this->addFlash('success', 'The new transactionCategory has been saved.');
@@ -115,43 +74,23 @@ public function new(Request $request) {
];
}
- /**
- * @Route("/new_popup", name="transaction_category_new_popup", methods={"GET", "POST"})
- * @Template
- * @IsGranted("ROLE_CONTENT_ADMIN")
- *
- * @return array|RedirectResponse
- */
- public function new_popup(Request $request) {
- return $this->new($request);
- }
-
- /**
- * @Route("/{id}", name="transaction_category_show", methods={"GET"})
- * @Template
- *
- * @return array
- */
- public function show(TransactionCategory $transactionCategory) {
+ #[Route(path: '/{id}', name: 'transaction_category_show', methods: ['GET'])]
+ #[Template]
+ public function show(TransactionCategory $transactionCategory) : array {
return [
'transaction_category' => $transactionCategory,
];
}
- /**
- * @IsGranted("ROLE_CONTENT_ADMIN")
- * @Route("/{id}/edit", name="transaction_category_edit", methods={"GET", "POST"})
- *
- * @Template
- *
- * @return array|RedirectResponse
- */
- public function edit(Request $request, TransactionCategory $transactionCategory) {
+ #[IsGranted('ROLE_CONTENT_ADMIN')]
+ #[Route(path: '/{id}/edit', name: 'transaction_category_edit', methods: ['GET', 'POST'])]
+ #[Template]
+ public function edit(EntityManagerInterface $entityManager, Request $request, TransactionCategory $transactionCategory) : array|RedirectResponse {
$form = $this->createForm(TransactionCategoryType::class, $transactionCategory);
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
- $this->getDoctrine()->getManager()->flush();
+ $entityManager->flush();
$this->addFlash('success', 'The updated transactionCategory has been saved.');
return $this->redirectToRoute('transaction_category_show', ['id' => $transactionCategory->getId()]);
@@ -163,15 +102,10 @@ public function edit(Request $request, TransactionCategory $transactionCategory)
];
}
- /**
- * @IsGranted("ROLE_CONTENT_ADMIN")
- * @Route("/{id}", name="transaction_category_delete", methods={"DELETE"})
- *
- * @return RedirectResponse
- */
- public function delete(Request $request, TransactionCategory $transactionCategory) {
+ #[IsGranted('ROLE_CONTENT_ADMIN')]
+ #[Route(path: '/{id}', name: 'transaction_category_delete', methods: ['DELETE'])]
+ public function delete(EntityManagerInterface $entityManager, Request $request, TransactionCategory $transactionCategory) : RedirectResponse {
if ($this->isCsrfTokenValid('delete' . $transactionCategory->getId(), $request->request->get('_token'))) {
- $entityManager = $this->getDoctrine()->getManager();
$entityManager->remove($transactionCategory);
$entityManager->flush();
$this->addFlash('success', 'The transactionCategory has been deleted.');
diff --git a/src/Controller/TransactionController.php b/src/Controller/TransactionController.php
index 39f1761..d1dc598 100644
--- a/src/Controller/TransactionController.php
+++ b/src/Controller/TransactionController.php
@@ -2,12 +2,6 @@
declare(strict_types=1);
-/*
- * (c) 2022 Michael Joyce
- * This source file is subject to the GPL v2, bundled
- * with this source code in the file LICENSE.
- */
-
namespace App\Controller;
use App\Entity\Transaction;
@@ -23,63 +17,31 @@
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\Routing\Annotation\Route;
-/**
- * @Route("/transaction")
- */
+#[Route(path: '/transaction')]
class TransactionController extends AbstractController implements PaginatorAwareInterface {
use PaginatorTrait;
- /**
- * @Route("/", name="transaction_index", methods={"GET"})
- *
- * @Template
- */
+ #[Route(path: '/', name: 'transaction_index', methods: ['GET'])]
+ #[Template]
public function index(Request $request, TransactionRepository $transactionRepository) : array {
- $query = $transactionRepository->indexQuery();
- $pageSize = $this->getParameter('page_size');
- $page = $request->query->getint('page', 1);
-
- return [
- 'transactions' => $this->paginator->paginate($query, $page, $pageSize),
- ];
- }
-
- /**
- * @Route("/search", name="transaction_search", methods={"GET"})
- *
- * @Template
- *
- * @return array
- */
- public function search(Request $request, TransactionRepository $transactionRepository) {
$q = $request->query->get('q');
- if ($q) {
- $query = $transactionRepository->searchQuery($q);
- $transactions = $this->paginator->paginate($query, $request->query->getInt('page', 1), $this->getParameter('page_size'), ['wrap-queries' => true]);
- } else {
- $transactions = [];
- }
+ $query = $q ? $transactionRepository->searchQuery($q) : $transactionRepository->indexQuery();
return [
- 'transactions' => $transactions,
+ 'transactions' => $this->paginator->paginate($query, $request->query->getInt('page', 1), $this->getParameter('page_size'), ['wrap-queries' => true]),
'q' => $q,
];
}
- /**
- * @Route("/new", name="transaction_new", methods={"GET", "POST"})
- * @Template
- * @IsGranted("ROLE_CONTENT_ADMIN")
- *
- * @return array|RedirectResponse
- */
- public function new(Request $request) {
+ #[Route(path: '/new', name: 'transaction_new', methods: ['GET', 'POST'])]
+ #[Template]
+ #[IsGranted('ROLE_CONTENT_ADMIN')]
+ public function new(EntityManagerInterface $entityManager, Request $request) : array|RedirectResponse {
$transaction = new Transaction();
$form = $this->createForm(TransactionType::class, $transaction);
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
- $entityManager = $this->getDoctrine()->getManager();
$entityManager->persist($transaction);
$entityManager->flush();
$this->addFlash('success', 'The new transaction has been saved.');
@@ -95,12 +57,11 @@ public function new(Request $request) {
/**
* Displays a form to copy a transaction.
- *
- * @Route("/{id}/copy", name="transaction_copy", methods={"GET"})
- * @Template
- * @isGranted("ROLE_CONTENT_ADMIN")
*/
- public function copy(Request $request, Transaction $transaction, EntityManagerInterface $em) : array {
+ #[Route(path: '/{id}/copy', name: 'transaction_copy', methods: ['GET'])]
+ #[Template]
+ #[IsGranted('ROLE_CONTENT_ADMIN')]
+ public function copy(Transaction $transaction, EntityManagerInterface $em) : array {
$form = $this->createForm(TransactionType::class, $transaction, [
'action' => $this->generateUrl('transaction_new'),
]);
@@ -111,43 +72,23 @@ public function copy(Request $request, Transaction $transaction, EntityManagerIn
];
}
- /**
- * @Route("/new_popup", name="transaction_new_popup", methods={"GET", "POST"})
- * @Template
- * @IsGranted("ROLE_CONTENT_ADMIN")
- *
- * @return array|RedirectResponse
- */
- public function new_popup(Request $request) {
- return $this->new($request);
- }
-
- /**
- * @Route("/{id}", name="transaction_show", methods={"GET"})
- * @Template
- *
- * @return array
- */
- public function show(Transaction $transaction) {
+ #[Route(path: '/{id}', name: 'transaction_show', methods: ['GET'])]
+ #[Template]
+ public function show(Transaction $transaction) : ?array {
return [
'transaction' => $transaction,
];
}
- /**
- * @IsGranted("ROLE_CONTENT_ADMIN")
- * @Route("/{id}/edit", name="transaction_edit", methods={"GET", "POST"})
- *
- * @Template
- *
- * @return array|RedirectResponse
- */
- public function edit(Request $request, Transaction $transaction) {
+ #[IsGranted('ROLE_CONTENT_ADMIN')]
+ #[Route(path: '/{id}/edit', name: 'transaction_edit', methods: ['GET', 'POST'])]
+ #[Template]
+ public function edit(EntityManagerInterface $entityManager, Request $request, Transaction $transaction) : array|RedirectResponse {
$form = $this->createForm(TransactionType::class, $transaction);
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
- $this->getDoctrine()->getManager()->flush();
+ $entityManager->flush();
$this->addFlash('success', 'The updated transaction has been saved.');
return $this->redirectToRoute('transaction_show', ['id' => $transaction->getId()]);
@@ -159,15 +100,10 @@ public function edit(Request $request, Transaction $transaction) {
];
}
- /**
- * @IsGranted("ROLE_CONTENT_ADMIN")
- * @Route("/{id}", name="transaction_delete", methods={"DELETE"})
- *
- * @return RedirectResponse
- */
- public function delete(Request $request, Transaction $transaction) {
+ #[IsGranted('ROLE_CONTENT_ADMIN')]
+ #[Route(path: '/{id}', name: 'transaction_delete', methods: ['DELETE'])]
+ public function delete(EntityManagerInterface $entityManager, Request $request, Transaction $transaction) : RedirectResponse {
if ($this->isCsrfTokenValid('delete' . $transaction->getId(), $request->request->get('_token'))) {
- $entityManager = $this->getDoctrine()->getManager();
$entityManager->remove($transaction);
$entityManager->flush();
$this->addFlash('success', 'The transaction has been deleted.');
diff --git a/src/DataFixtures/ArchdeaconryFixtures.php b/src/DataFixtures/ArchdeaconryFixtures.php
index 46e7e82..4d8490c 100644
--- a/src/DataFixtures/ArchdeaconryFixtures.php
+++ b/src/DataFixtures/ArchdeaconryFixtures.php
@@ -2,12 +2,6 @@
declare(strict_types=1);
-/*
- * (c) 2022 Michael Joyce
- * This source file is subject to the GPL v2, bundled
- * with this source code in the file LICENSE.
- */
-
namespace App\DataFixtures;
use App\Entity\Archdeaconry;
@@ -22,9 +16,6 @@ public static function getGroups() : array {
return ['dev', 'test'];
}
- /**
- * {@inheritDoc}
- */
public function load(ObjectManager $manager) : void {
for ($i = 1; $i <= 5; $i++) {
$fixture = new Archdeaconry();
@@ -46,11 +37,6 @@ public function load(ObjectManager $manager) : void {
}
}
- /**
- * {@inheritdoc}
- *
- * @return array
- */
public function getDependencies() : array {
return [
DioceseFixtures::class,
diff --git a/src/DataFixtures/ArchiveFixtures.php b/src/DataFixtures/ArchiveFixtures.php
index ed7d350..f0fa84c 100644
--- a/src/DataFixtures/ArchiveFixtures.php
+++ b/src/DataFixtures/ArchiveFixtures.php
@@ -2,12 +2,6 @@
declare(strict_types=1);
-/*
- * (c) 2022 Michael Joyce
- * This source file is subject to the GPL v2, bundled
- * with this source code in the file LICENSE.
- */
-
namespace App\DataFixtures;
use App\Entity\Archive;
@@ -21,9 +15,6 @@ public static function getGroups() : array {
return ['dev', 'test'];
}
- /**
- * {@inheritDoc}
- */
public function load(ObjectManager $manager) : void {
for ($i = 1; $i <= 5; $i++) {
$fixture = new Archive();
diff --git a/src/DataFixtures/BookFixtures.php b/src/DataFixtures/BookFixtures.php
index fd858c6..1411bb9 100644
--- a/src/DataFixtures/BookFixtures.php
+++ b/src/DataFixtures/BookFixtures.php
@@ -2,12 +2,6 @@
declare(strict_types=1);
-/*
- * (c) 2022 Michael Joyce
- * This source file is subject to the GPL v2, bundled
- * with this source code in the file LICENSE.
- */
-
namespace App\DataFixtures;
use App\Entity\Book;
@@ -22,9 +16,6 @@ public static function getGroups() : array {
return ['dev', 'test'];
}
- /**
- * {@inheritDoc}
- */
public function load(ObjectManager $manager) : void {
for ($i = 1; $i <= 5; $i++) {
$fixture = new Book();
@@ -55,11 +46,6 @@ public function load(ObjectManager $manager) : void {
}
}
- /**
- * {@inheritdoc}
- *
- * @return array
- */
public function getDependencies() : array {
return [
FormatFixtures::class,
diff --git a/src/DataFixtures/CountyFixtures.php b/src/DataFixtures/CountyFixtures.php
index 0f14288..b87ef7f 100644
--- a/src/DataFixtures/CountyFixtures.php
+++ b/src/DataFixtures/CountyFixtures.php
@@ -2,12 +2,6 @@
declare(strict_types=1);
-/*
- * (c) 2022 Michael Joyce
- * This source file is subject to the GPL v2, bundled
- * with this source code in the file LICENSE.
- */
-
namespace App\DataFixtures;
use App\Entity\County;
@@ -22,9 +16,6 @@ public static function getGroups() : array {
return ['dev', 'test'];
}
- /**
- * {@inheritDoc}
- */
public function load(ObjectManager $manager) : void {
for ($i = 1; $i <= 5; $i++) {
$fixture = new County();
@@ -46,11 +37,6 @@ public function load(ObjectManager $manager) : void {
}
}
- /**
- * {@inheritdoc}
- *
- * @return array
- */
public function getDependencies() : array {
return [
NationFixtures::class,
diff --git a/src/DataFixtures/DioceseFixtures.php b/src/DataFixtures/DioceseFixtures.php
index 8d25e35..49853ee 100644
--- a/src/DataFixtures/DioceseFixtures.php
+++ b/src/DataFixtures/DioceseFixtures.php
@@ -2,12 +2,6 @@
declare(strict_types=1);
-/*
- * (c) 2022 Michael Joyce
- * This source file is subject to the GPL v2, bundled
- * with this source code in the file LICENSE.
- */
-
namespace App\DataFixtures;
use App\Entity\Diocese;
@@ -21,9 +15,6 @@ public static function getGroups() : array {
return ['dev', 'test'];
}
- /**
- * {@inheritDoc}
- */
public function load(ObjectManager $manager) : void {
for ($i = 1; $i <= 5; $i++) {
$fixture = new Diocese();
@@ -37,11 +28,6 @@ public function load(ObjectManager $manager) : void {
$manager->flush();
}
- /**
- * {@inheritdoc}
- *
- * @return array
- */
public function getDependencies() : array {
return [
ProvinceFixtures::class,
diff --git a/src/DataFixtures/FormatFixtures.php b/src/DataFixtures/FormatFixtures.php
index 5adf211..75613af 100644
--- a/src/DataFixtures/FormatFixtures.php
+++ b/src/DataFixtures/FormatFixtures.php
@@ -2,12 +2,6 @@
declare(strict_types=1);
-/*
- * (c) 2022 Michael Joyce
- * This source file is subject to the GPL v2, bundled
- * with this source code in the file LICENSE.
- */
-
namespace App\DataFixtures;
use App\Entity\Format;
@@ -20,9 +14,6 @@ public static function getGroups() : array {
return ['dev', 'test'];
}
- /**
- * {@inheritDoc}
- */
public function load(ObjectManager $manager) : void {
for ($i = 1; $i <= 5; $i++) {
$fixture = new Format();
diff --git a/src/DataFixtures/HoldingFixtures.php b/src/DataFixtures/HoldingFixtures.php
index 7263864..f1fc943 100644
--- a/src/DataFixtures/HoldingFixtures.php
+++ b/src/DataFixtures/HoldingFixtures.php
@@ -2,12 +2,6 @@
declare(strict_types=1);
-/*
- * (c) 2022 Michael Joyce
- * This source file is subject to the GPL v2, bundled
- * with this source code in the file LICENSE.
- */
-
namespace App\DataFixtures;
use App\Entity\Holding;
@@ -34,9 +28,6 @@ public static function getGroups() : array {
return ['dev', 'test'];
}
- /**
- * {@inheritDoc}
- */
public function load(ObjectManager $manager) : void {
$this->imageManager->setCopy(true);
for ($i = 1; $i <= 5; $i++) {
@@ -55,7 +46,6 @@ public function load(ObjectManager $manager) : void {
$upload = new UploadedFile(dirname(__FILE__, 3) . '/tests/data/image/' . $imageFile, $imageFile, 'image/jpeg', null, true);
$image = new Image();
$image->setFile($upload);
- $image->setPublic(0 === $i % 2);
$image->setOriginalName($imageFile);
$image->setDescription("This is paragraph {$i}
");
$image->setLicense("This is paragraph {$i}
");
@@ -68,18 +58,11 @@ public function load(ObjectManager $manager) : void {
$this->imageManager->setCopy(false);
}
- /**
- * @required
- */
+ #[\Symfony\Contracts\Service\Attribute\Required]
public function setImageManager(ImageManager $imageManager) : void {
$this->imageManager = $imageManager;
}
- /**
- * {@inheritdoc}
- *
- * @return array
- */
public function getDependencies() : array {
return [
ParishFixtures::class,
diff --git a/src/DataFixtures/InjunctionFixtures.php b/src/DataFixtures/InjunctionFixtures.php
index 87a46fc..6d8083f 100644
--- a/src/DataFixtures/InjunctionFixtures.php
+++ b/src/DataFixtures/InjunctionFixtures.php
@@ -2,12 +2,6 @@
declare(strict_types=1);
-/*
- * (c) 2022 Michael Joyce
- * This source file is subject to the GPL v2, bundled
- * with this source code in the file LICENSE.
- */
-
namespace App\DataFixtures;
use App\Entity\Injunction;
@@ -21,9 +15,6 @@ public static function getGroups() : array {
return ['dev', 'test'];
}
- /**
- * {@inheritDoc}
- */
public function load(ObjectManager $manager) : void {
for ($i = 1; $i <= 5; $i++) {
$fixture = new Injunction();
@@ -47,11 +38,6 @@ public function load(ObjectManager $manager) : void {
$manager->flush();
}
- /**
- * {@inheritdoc}
- *
- * @return array
- */
public function getDependencies() : array {
return [
MonarchFixtures::class,
diff --git a/src/DataFixtures/InventoryFixtures.php b/src/DataFixtures/InventoryFixtures.php
index 6647544..924c302 100644
--- a/src/DataFixtures/InventoryFixtures.php
+++ b/src/DataFixtures/InventoryFixtures.php
@@ -2,12 +2,6 @@
declare(strict_types=1);
-/*
- * (c) 2022 Michael Joyce
- * This source file is subject to the GPL v2, bundled
- * with this source code in the file LICENSE.
- */
-
namespace App\DataFixtures;
use App\Entity\Inventory;
@@ -34,9 +28,6 @@ public static function getGroups() : array {
return ['dev', 'test'];
}
- /**
- * {@inheritDoc}
- */
public function load(ObjectManager $manager) : void {
$this->imageManager->setCopy(true);
for ($i = 1; $i <= 5; $i++) {
@@ -60,7 +51,6 @@ public function load(ObjectManager $manager) : void {
$upload = new UploadedFile(dirname(__FILE__, 3) . '/tests/data/image/' . $imageFile, $imageFile, 'image/jpeg', null, true);
$image = new Image();
$image->setFile($upload);
- $image->setPublic(0 === $i % 2);
$image->setOriginalName($imageFile);
$image->setDescription("This is paragraph {$i}
");
$image->setLicense("This is paragraph {$i}
");
@@ -73,18 +63,11 @@ public function load(ObjectManager $manager) : void {
$this->imageManager->setCopy(false);
}
- /**
- * @required
- */
+ #[\Symfony\Contracts\Service\Attribute\Required]
public function setImageManager(ImageManager $imageManager) : void {
$this->imageManager = $imageManager;
}
- /**
- * {@inheritdoc}
- *
- * @return array
- */
public function getDependencies() : array {
return [
ManuscriptSourceFixtures::class,
diff --git a/src/DataFixtures/ManuscriptSourceFixtures.php b/src/DataFixtures/ManuscriptSourceFixtures.php
index d5416fe..039d631 100644
--- a/src/DataFixtures/ManuscriptSourceFixtures.php
+++ b/src/DataFixtures/ManuscriptSourceFixtures.php
@@ -2,12 +2,6 @@
declare(strict_types=1);
-/*
- * (c) 2022 Michael Joyce
- * This source file is subject to the GPL v2, bundled
- * with this source code in the file LICENSE.
- */
-
namespace App\DataFixtures;
use App\Entity\ManuscriptSource;
@@ -22,9 +16,6 @@ public static function getGroups() : array {
return ['dev', 'test'];
}
- /**
- * {@inheritDoc}
- */
public function load(ObjectManager $manager) : void {
for ($i = 1; $i <= 5; $i++) {
$fixture = new ManuscriptSource();
@@ -49,11 +40,6 @@ public function load(ObjectManager $manager) : void {
}
}
- /**
- * {@inheritdoc}
- *
- * @return array
- */
public function getDependencies() : array {
return [
SourceCategoryFixtures::class,
diff --git a/src/DataFixtures/MonarchFixtures.php b/src/DataFixtures/MonarchFixtures.php
index 0069607..d466858 100644
--- a/src/DataFixtures/MonarchFixtures.php
+++ b/src/DataFixtures/MonarchFixtures.php
@@ -2,12 +2,6 @@
declare(strict_types=1);
-/*
- * (c) 2022 Michael Joyce
- * This source file is subject to the GPL v2, bundled
- * with this source code in the file LICENSE.
- */
-
namespace App\DataFixtures;
use App\Entity\Monarch;
@@ -20,9 +14,6 @@ public static function getGroups() : array {
return ['dev', 'test'];
}
- /**
- * {@inheritDoc}
- */
public function load(ObjectManager $manager) : void {
for ($i = 1; $i <= 5; $i++) {
$fixture = new Monarch();
diff --git a/src/DataFixtures/NationFixtures.php b/src/DataFixtures/NationFixtures.php
index 7703b91..55976c1 100644
--- a/src/DataFixtures/NationFixtures.php
+++ b/src/DataFixtures/NationFixtures.php
@@ -2,12 +2,6 @@
declare(strict_types=1);
-/*
- * (c) 2022 Michael Joyce
- * This source file is subject to the GPL v2, bundled
- * with this source code in the file LICENSE.
- */
-
namespace App\DataFixtures;
use App\Entity\Nation;
@@ -20,9 +14,6 @@ public static function getGroups() : array {
return ['dev', 'test'];
}
- /**
- * {@inheritDoc}
- */
public function load(ObjectManager $manager) : void {
for ($i = 1; $i <= 5; $i++) {
$fixture = new Nation();
diff --git a/src/DataFixtures/ParishFixtures.php b/src/DataFixtures/ParishFixtures.php
index 792bfb9..c7f9f3c 100644
--- a/src/DataFixtures/ParishFixtures.php
+++ b/src/DataFixtures/ParishFixtures.php
@@ -2,12 +2,6 @@
declare(strict_types=1);
-/*
- * (c) 2022 Michael Joyce
- * This source file is subject to the GPL v2, bundled
- * with this source code in the file LICENSE.
- */
-
namespace App\DataFixtures;
use App\Entity\Parish;
@@ -22,9 +16,6 @@ public static function getGroups() : array {
return ['dev', 'test'];
}
- /**
- * {@inheritDoc}
- */
public function load(ObjectManager $manager) : void {
for ($i = 1; $i <= 5; $i++) {
$fixture = new Parish();
@@ -50,11 +41,6 @@ public function load(ObjectManager $manager) : void {
}
}
- /**
- * {@inheritdoc}
- *
- * @return array
- */
public function getDependencies() : array {
return [
ArchdeaconryFixtures::class,
diff --git a/src/DataFixtures/PrintSourceFixtures.php b/src/DataFixtures/PrintSourceFixtures.php
index f4da267..2bef690 100644
--- a/src/DataFixtures/PrintSourceFixtures.php
+++ b/src/DataFixtures/PrintSourceFixtures.php
@@ -2,12 +2,6 @@
declare(strict_types=1);
-/*
- * (c) 2022 Michael Joyce
- * This source file is subject to the GPL v2, bundled
- * with this source code in the file LICENSE.
- */
-
namespace App\DataFixtures;
use App\Entity\PrintSource;
@@ -22,9 +16,6 @@ public static function getGroups() : array {
return ['dev', 'test'];
}
- /**
- * {@inheritDoc}
- */
public function load(ObjectManager $manager) : void {
for ($i = 1; $i <= 5; $i++) {
$fixture = new PrintSource();
@@ -49,11 +40,6 @@ public function load(ObjectManager $manager) : void {
$manager->flush();
}
- /**
- * {@inheritdoc}
- *
- * @return array
- */
public function getDependencies() : array {
return [
SourceCategoryFixtures::class,
diff --git a/src/DataFixtures/ProvinceFixtures.php b/src/DataFixtures/ProvinceFixtures.php
index 7bfdc55..6a70dbc 100644
--- a/src/DataFixtures/ProvinceFixtures.php
+++ b/src/DataFixtures/ProvinceFixtures.php
@@ -2,12 +2,6 @@
declare(strict_types=1);
-/*
- * (c) 2022 Michael Joyce
- * This source file is subject to the GPL v2, bundled
- * with this source code in the file LICENSE.
- */
-
namespace App\DataFixtures;
use App\Entity\Province;
@@ -22,9 +16,6 @@ public static function getGroups() : array {
return ['dev', 'test'];
}
- /**
- * {@inheritDoc}
- */
public function load(ObjectManager $manager) : void {
for ($i = 1; $i <= 5; $i++) {
$fixture = new Province();
@@ -46,11 +37,6 @@ public function load(ObjectManager $manager) : void {
}
}
- /**
- * {@inheritdoc}
- *
- * @return array
- */
public function getDependencies() : array {
return [
NationFixtures::class,
diff --git a/src/DataFixtures/SourceCategoryFixtures.php b/src/DataFixtures/SourceCategoryFixtures.php
index d940f75..5d783bd 100644
--- a/src/DataFixtures/SourceCategoryFixtures.php
+++ b/src/DataFixtures/SourceCategoryFixtures.php
@@ -2,12 +2,6 @@
declare(strict_types=1);
-/*
- * (c) 2022 Michael Joyce
- * This source file is subject to the GPL v2, bundled
- * with this source code in the file LICENSE.
- */
-
namespace App\DataFixtures;
use App\Entity\SourceCategory;
@@ -20,9 +14,6 @@ public static function getGroups() : array {
return ['dev', 'test'];
}
- /**
- * {@inheritDoc}
- */
public function load(ObjectManager $manager) : void {
for ($i = 1; $i <= 5; $i++) {
$fixture = new SourceCategory();
diff --git a/src/DataFixtures/TownFixtures.php b/src/DataFixtures/TownFixtures.php
index 30766bf..e068e28 100644
--- a/src/DataFixtures/TownFixtures.php
+++ b/src/DataFixtures/TownFixtures.php
@@ -2,12 +2,6 @@
declare(strict_types=1);
-/*
- * (c) 2022 Michael Joyce
- * This source file is subject to the GPL v2, bundled
- * with this source code in the file LICENSE.
- */
-
namespace App\DataFixtures;
use App\Entity\Town;
@@ -22,9 +16,6 @@ public static function getGroups() : array {
return ['dev', 'test'];
}
- /**
- * {@inheritDoc}
- */
public function load(ObjectManager $manager) : void {
for ($i = 1; $i <= 5; $i++) {
$fixture = new Town();
@@ -47,11 +38,6 @@ public function load(ObjectManager $manager) : void {
}
}
- /**
- * {@inheritdoc}
- *
- * @return array
- */
public function getDependencies() : array {
return [
CountyFixtures::class,
diff --git a/src/DataFixtures/TransactionCategoryFixtures.php b/src/DataFixtures/TransactionCategoryFixtures.php
index 99b6d69..df5467a 100644
--- a/src/DataFixtures/TransactionCategoryFixtures.php
+++ b/src/DataFixtures/TransactionCategoryFixtures.php
@@ -2,12 +2,6 @@
declare(strict_types=1);
-/*
- * (c) 2022 Michael Joyce
- * This source file is subject to the GPL v2, bundled
- * with this source code in the file LICENSE.
- */
-
namespace App\DataFixtures;
use App\Entity\TransactionCategory;
@@ -20,9 +14,6 @@ public static function getGroups() : array {
return ['dev', 'test'];
}
- /**
- * {@inheritDoc}
- */
public function load(ObjectManager $manager) : void {
for ($i = 1; $i <= 5; $i++) {
$fixture = new TransactionCategory();
diff --git a/src/DataFixtures/TransactionFixtures.php b/src/DataFixtures/TransactionFixtures.php
index cd11627..576757c 100644
--- a/src/DataFixtures/TransactionFixtures.php
+++ b/src/DataFixtures/TransactionFixtures.php
@@ -2,12 +2,6 @@
declare(strict_types=1);
-/*
- * (c) 2022 Michael Joyce
- * This source file is subject to the GPL v2, bundled
- * with this source code in the file LICENSE.
- */
-
namespace App\DataFixtures;
use App\Entity\Transaction;
@@ -21,9 +15,6 @@ public static function getGroups() : array {
return ['dev', 'test'];
}
- /**
- * {@inheritDoc}
- */
public function load(ObjectManager $manager) : void {
for ($i = 1; $i <= 5; $i++) {
$fixture = new Transaction();
@@ -50,11 +41,6 @@ public function load(ObjectManager $manager) : void {
$manager->flush();
}
- /**
- * {@inheritdoc}
- *
- * @return array
- */
public function getDependencies() : array {
return [
ParishFixtures::class,
diff --git a/src/Entity/Archdeaconry.php b/src/Entity/Archdeaconry.php
index 1ff581f..e65fe5b 100644
--- a/src/Entity/Archdeaconry.php
+++ b/src/Entity/Archdeaconry.php
@@ -2,12 +2,6 @@
declare(strict_types=1);
-/*
- * (c) 2022 Michael Joyce
- * This source file is subject to the GPL v2, bundled
- * with this source code in the file LICENSE.
- */
-
namespace App\Entity;
use App\Repository\ArchdeaconryRepository;
@@ -18,32 +12,21 @@
use Nines\MediaBundle\Entity\LinkableTrait;
use Nines\UtilBundle\Entity\AbstractTerm;
-/**
- * @ORM\Entity(repositoryClass=ArchdeaconryRepository::class)
- */
+#[ORM\Entity(repositoryClass: ArchdeaconryRepository::class)]
class Archdeaconry extends AbstractTerm implements LinkableInterface {
use LinkableTrait {
LinkableTrait::__construct as linkable_construct;
}
- /**
- * @var Diocese
- * @ORM\ManyToOne(targetEntity="Diocese", inversedBy="archdeaconries")
- * @ORM\JoinColumn(nullable=false)
- */
- private $diocese;
+ #[ORM\ManyToOne(targetEntity: Diocese::class, inversedBy: 'archdeaconries')]
+ #[ORM\JoinColumn(nullable: false, onDelete: 'CASCADE')]
+ private ?Diocese $diocese = null;
- /**
- * @var Collection|Parish[]
- * @ORM\OneToMany(targetEntity="Parish", mappedBy="archdeaconry")
- */
- private $parishes;
+ #[ORM\OneToMany(targetEntity: Parish::class, mappedBy: 'archdeaconry')]
+ private Collection $parishes;
- /**
- * @var Collection
- * @ORM\OneToMany(targetEntity="Injunction", mappedBy="archdeaconry")
- */
- private $injunctions;
+ #[ORM\OneToMany(targetEntity: Injunction::class, mappedBy: 'archdeaconry')]
+ private Collection $injunctions;
public function __construct() {
parent::__construct();
@@ -90,7 +73,7 @@ public function removeParish(Parish $parish) : self {
}
/**
- * @return Collection
+ * @return Collection
*/
public function getInjunctions() : Collection {
return $this->injunctions;
diff --git a/src/Entity/Archive.php b/src/Entity/Archive.php
index 4d6c32e..065b11e 100644
--- a/src/Entity/Archive.php
+++ b/src/Entity/Archive.php
@@ -2,12 +2,6 @@
declare(strict_types=1);
-/*
- * (c) 2022 Michael Joyce
- * This source file is subject to the GPL v2, bundled
- * with this source code in the file LICENSE.
- */
-
namespace App\Entity;
use App\Repository\ArchiveRepository;
@@ -18,25 +12,17 @@
use Nines\MediaBundle\Entity\LinkableTrait;
use Nines\UtilBundle\Entity\AbstractTerm;
-/**
- * @ORM\Entity(repositoryClass=ArchiveRepository::class)
- */
+#[ORM\Entity(repositoryClass: ArchiveRepository::class)]
class Archive extends AbstractTerm implements LinkableInterface {
use LinkableTrait {
LinkableTrait::__construct as linkable_constructor;
}
- /**
- * @var Collection|ManuscriptSource[]
- * @ORM\OneToMany(targetEntity="ManuscriptSource", mappedBy="archive")
- */
- private $manuscriptSources;
+ #[ORM\OneToMany(targetEntity: ManuscriptSource::class, mappedBy: 'archive')]
+ private Collection $manuscriptSources;
- /**
- * @var Collection|Holding[]
- * @ORM\OneToMany(targetEntity="Holding", mappedBy="archive")
- */
- private $holdings;
+ #[ORM\OneToMany(targetEntity: Holding::class, mappedBy: 'archive')]
+ private Collection $holdings;
public function __construct() {
parent::__construct();
diff --git a/src/Entity/Book.php b/src/Entity/Book.php
index 2a13cc9..fd96300 100644
--- a/src/Entity/Book.php
+++ b/src/Entity/Book.php
@@ -2,12 +2,6 @@
declare(strict_types=1);
-/*
- * (c) 2022 Michael Joyce
- * This source file is subject to the GPL v2, bundled
- * with this source code in the file LICENSE.
- */
-
namespace App\Entity;
use App\Repository\BookRepository;
@@ -18,121 +12,69 @@
use Nines\MediaBundle\Entity\LinkableTrait;
use Nines\UtilBundle\Entity\AbstractEntity;
-/**
- * @ORM\Entity(repositoryClass=BookRepository::class)
- * @ORM\Table(indexes={
- * @ORM\Index(name="book_ft", columns={"title", "uniform_title", "variant_titles", "description", "author", "imprint", "variant_imprint", "notes"}, flags={"fulltext"})
- * })
- */
+#[ORM\Table]
+#[ORM\Index(name: 'book_ft', columns: ['title', 'uniform_title', 'variant_titles', 'description', 'author', 'imprint', 'variant_imprint', 'notes'], flags: ['fulltext'])]
+#[ORM\Entity(repositoryClass: BookRepository::class)]
class Book extends AbstractEntity implements LinkableInterface {
use LinkableTrait {
LinkableTrait::__construct as linkable_construct;
}
use NotesTrait;
- /**
- * @var string
- * @ORM\Column(type="text", nullable=true)
- */
- private $title;
+ #[ORM\Column(type: 'text', nullable: true)]
+ private ?string $title = null;
- /**
- * @var string
- * @ORM\Column(type="text", nullable=true)
- */
- private $uniformTitle;
+ #[ORM\Column(type: 'text', nullable: true)]
+ private ?string $uniformTitle = null;
- /**
- * @var string[]
- * @ORM\Column(type="array")
- */
- private $variantTitles;
+ #[ORM\Column(type: 'array')]
+ private ?array $variantTitles = [];
- /**
- * @var string
- * @ORM\Column(type="string", length=160, nullable=true)
- */
- private $author;
+ #[ORM\Column(type: 'string', length: 160, nullable: true)]
+ private ?string $author = null;
- /**
- * @var string
- * @ORM\Column(type="text", nullable=true)
- */
- private $imprint;
+ #[ORM\Column(type: 'text', nullable: true)]
+ private ?string $imprint = null;
- /**
- * @var string
- * @ORM\Column(type="text", nullable=true)
- */
- private $variantImprint;
+ #[ORM\Column(type: 'text', nullable: true)]
+ private ?string $variantImprint = null;
- /**
- * @var string
- * @ORM\Column(type="string", nullable=true)
- */
- private $estc;
+ #[ORM\Column(type: 'string', nullable: true)]
+ private ?string $estc = null;
- /**
- * @var string
- * @ORM\Column(type="string", length=12, nullable=true)
- */
- private $date;
+ #[ORM\Column(type: 'string', length: 12, nullable: true)]
+ private ?string $date = null;
- /**
- * @var string
- * @ORM\Column(type="text", nullable=true)
- */
- private $description;
+ #[ORM\Column(type: 'text', nullable: true)]
+ private ?string $description = null;
- /**
- * @var string
- * @ORM\Column(type="text", nullable=true)
- */
- private $physicalDescription;
+ #[ORM\Column(type: 'text', nullable: true)]
+ private ?string $physicalDescription = null;
- /**
- * @var Format
- * @ORM\ManyToOne(targetEntity="Format", inversedBy="books")
- */
- private $format;
+ #[ORM\ManyToOne(targetEntity: Format::class, inversedBy: 'books')]
+ private ?Format $format = null;
- /**
- * @var Monarch
- * @ORM\ManyToOne(targetEntity="Monarch", inversedBy="books")
- * @ORM\JoinColumn(nullable=true)
- */
- private $monarch;
+ #[ORM\JoinColumn(nullable: true, onDelete: 'SET NULL')]
+ #[ORM\ManyToOne(targetEntity: Monarch::class, inversedBy: 'books')]
+ private ?Monarch $monarch = null;
- /**
- * @var Collection|Transaction[]
- * @ORM\ManyToMany(targetEntity="Transaction", mappedBy="books")
- */
- private $transactions;
+ #[ORM\ManyToMany(targetEntity: Transaction::class, mappedBy: 'books')]
+ private Collection $transactions;
- /**
- * @var Collection|Inventory[]
- * @ORM\ManyToMany(targetEntity="Inventory", mappedBy="books")
- */
- private $inventories;
+ #[ORM\ManyToMany(targetEntity: Inventory::class, mappedBy: 'books')]
+ private Collection $inventories;
- /**
- * @var Collection|Holding[]
- * @ORM\ManyToMany(targetEntity="Holding", mappedBy="books")
- */
- private $holdings;
+ #[ORM\ManyToMany(targetEntity: Holding::class, mappedBy: 'books')]
+ private Collection $holdings;
public function __construct() {
parent::__construct();
$this->linkable_construct();
$this->transactions = new ArrayCollection();
- $this->variantTitles = [];
$this->inventories = new ArrayCollection();
$this->holdings = new ArrayCollection();
}
- /**
- * {@inheritdoc}
- */
public function __toString() : string {
if ($this->uniformTitle) {
return $this->uniformTitle;
diff --git a/src/Entity/County.php b/src/Entity/County.php
index 97c5185..e89e11b 100644
--- a/src/Entity/County.php
+++ b/src/Entity/County.php
@@ -2,12 +2,6 @@
declare(strict_types=1);
-/*
- * (c) 2022 Michael Joyce
- * This source file is subject to the GPL v2, bundled
- * with this source code in the file LICENSE.
- */
-
namespace App\Entity;
use App\Repository\CountyRepository;
@@ -18,26 +12,18 @@
use Nines\MediaBundle\Entity\LinkableTrait;
use Nines\UtilBundle\Entity\AbstractTerm;
-/**
- * @ORM\Entity(repositoryClass=CountyRepository::class)
- */
+#[ORM\Entity(repositoryClass: CountyRepository::class)]
class County extends AbstractTerm implements LinkableInterface {
use LinkableTrait {
LinkableTrait::__construct as linkable_construct;
}
- /**
- * @var Nation
- * @ORM\ManyToOne(targetEntity="Nation", inversedBy="counties")
- * @ORM\JoinColumn(nullable=false)
- */
- private $nation;
+ #[ORM\JoinColumn(nullable: false, onDelete: 'CASCADE')]
+ #[ORM\ManyToOne(targetEntity: Nation::class, inversedBy: 'counties')]
+ private ?Nation $nation = null;
- /**
- * @var Collection|Town[]
- * @ORM\OneToMany(targetEntity="Town", mappedBy="county")
- */
- private $towns;
+ #[ORM\OneToMany(targetEntity: Town::class, mappedBy: 'county')]
+ private Collection $towns;
public function __construct() {
parent::__construct();
diff --git a/src/Entity/DatedTrait.php b/src/Entity/DatedTrait.php
index e1a1c5b..b62e44c 100644
--- a/src/Entity/DatedTrait.php
+++ b/src/Entity/DatedTrait.php
@@ -2,76 +2,43 @@
declare(strict_types=1);
-/*
- * (c) 2022 Michael Joyce
- * This source file is subject to the GPL v2, bundled
- * with this source code in the file LICENSE.
- */
-
namespace App\Entity;
use Doctrine\ORM\Mapping as ORM;
use Symfony\Component\Validator\Constraints as Assert;
trait DatedTrait {
- /**
- * @var string
- * @ORM\Column(type="string", length=10, nullable=true)
- * @Assert\Date(message="{{ value }} is not a valid value. It must be formatted as yyyy-mm-dd and be a valid date.")
- */
- private $startDate;
+ #[Assert\Date(message: '{{ value }} is not a valid value. It must be formatted as yyyy-mm-dd and be a valid date.')]
+ #[ORM\Column(type: 'string', length: 10, nullable: true)]
+ private ?string $startDate = null;
- /**
- * @var string
- * @ORM\Column(type="string", length=10, nullable=true)
- * @Assert\Date(message="{{ value }} is not a valid value. It must be formatted as yyyy-mm-dd and be a valid date.")
- */
- private $endDate;
+ #[Assert\Date(message: '{{ value }} is not a valid value. It must be formatted as yyyy-mm-dd and be a valid date.')]
+ #[ORM\Column(type: 'string', length: 10, nullable: true)]
+ private ?string $endDate = null;
- /**
- * @var string
- * @ORM\Column(type="string", length=60, nullable=true)
- */
- private $writtenDate;
+ #[ORM\Column(type: 'string', length: 60, nullable: true)]
+ private ?string $writtenDate = null;
- /**
- * @return string
- */
public function getStartDate() : ?string {
return $this->startDate;
}
- /**
- * @param string $startDate
- */
public function setStartDate(?string $startDate) : void {
$this->startDate = $startDate;
}
- /**
- * @return string
- */
public function getEndDate() : ?string {
return $this->endDate;
}
- /**
- * @param string $endDate
- */
public function setEndDate(?string $endDate) : void {
$this->endDate = $endDate;
}
- /**
- * @return string
- */
public function getWrittenDate() : ?string {
return $this->writtenDate;
}
- /**
- * @param string $writtenDate
- */
public function setWrittenDate(?string $writtenDate) : void {
$this->writtenDate = $writtenDate;
}
diff --git a/src/Entity/Diocese.php b/src/Entity/Diocese.php
index 5d22905..b25b04e 100644
--- a/src/Entity/Diocese.php
+++ b/src/Entity/Diocese.php
@@ -2,12 +2,6 @@
declare(strict_types=1);
-/*
- * (c) 2022 Michael Joyce
- * This source file is subject to the GPL v2, bundled
- * with this source code in the file LICENSE.
- */
-
namespace App\Entity;
use App\Repository\DioceseRepository;
@@ -18,32 +12,21 @@
use Nines\MediaBundle\Entity\LinkableTrait;
use Nines\UtilBundle\Entity\AbstractTerm;
-/**
- * @ORM\Entity(repositoryClass=DioceseRepository::class)
- */
+#[ORM\Entity(repositoryClass: DioceseRepository::class)]
class Diocese extends AbstractTerm implements LinkableInterface {
use LinkableTrait {
LinkableTrait::__construct as linkable_construct;
}
- /**
- * @var Province
- * @ORM\ManyToOne(targetEntity="Province", inversedBy="dioceses")
- * @ORM\JoinColumn(nullable=false)
- */
- private $province;
+ #[ORM\JoinColumn(nullable: false, onDelete: 'CASCADE')]
+ #[ORM\ManyToOne(targetEntity: Province::class, inversedBy: 'dioceses')]
+ private ?Province $province = null;
- /**
- * @var Archdeaconry[]|Collection
- * @ORM\OneToMany(targetEntity="Archdeaconry", mappedBy="diocese")
- */
- private $archdeaconries;
+ #[ORM\OneToMany(targetEntity: Archdeaconry::class, mappedBy: 'diocese')]
+ private Collection $archdeaconries;
- /**
- * @var Collection
- * @ORM\OneToMany(targetEntity="Injunction", mappedBy="diocese")
- */
- private $injunctions;
+ #[ORM\OneToMany(targetEntity: Injunction::class, mappedBy: 'diocese')]
+ private Collection $injunctions;
public function __construct() {
parent::__construct();
@@ -90,7 +73,7 @@ public function removeArchdeaconry(Archdeaconry $archdeaconry) : self {
}
/**
- * @return Collection
+ * @return Collection
*/
public function getInjunctions() : Collection {
return $this->injunctions;
diff --git a/src/Entity/Format.php b/src/Entity/Format.php
index 60beead..120cc55 100644
--- a/src/Entity/Format.php
+++ b/src/Entity/Format.php
@@ -2,12 +2,6 @@
declare(strict_types=1);
-/*
- * (c) 2022 Michael Joyce
- * This source file is subject to the GPL v2, bundled
- * with this source code in the file LICENSE.
- */
-
namespace App\Entity;
use App\Repository\FormatRepository;
@@ -16,15 +10,10 @@
use Doctrine\ORM\Mapping as ORM;
use Nines\UtilBundle\Entity\AbstractTerm;
-/**
- * @ORM\Entity(repositoryClass=FormatRepository::class)
- */
+#[ORM\Entity(repositoryClass: FormatRepository::class)]
class Format extends AbstractTerm {
- /**
- * @var ArrayCollection
- * @ORM\OneToMany(targetEntity="Book", mappedBy="format")
- */
- private $books;
+ #[ORM\OneToMany(targetEntity: Book::class, mappedBy: 'format')]
+ private Collection $books;
public function __construct() {
parent::__construct();
diff --git a/src/Entity/Holding.php b/src/Entity/Holding.php
index a5519c3..44536ea 100644
--- a/src/Entity/Holding.php
+++ b/src/Entity/Holding.php
@@ -2,12 +2,6 @@
declare(strict_types=1);
-/*
- * (c) 2022 Michael Joyce
- * This source file is subject to the GPL v2, bundled
- * with this source code in the file LICENSE.
- */
-
namespace App\Entity;
use App\Repository\HoldingRepository;
@@ -18,9 +12,7 @@
use Nines\MediaBundle\Entity\ImageContainerTrait;
use Nines\UtilBundle\Entity\AbstractEntity;
-/**
- * @ORM\Entity(repositoryClass=HoldingRepository::class)
- */
+#[ORM\Entity(repositoryClass: HoldingRepository::class)]
class Holding extends AbstractEntity implements ImageContainerInterface {
use ImageContainerTrait {
ImageContainerTrait::__construct as protected trait_constructor;
@@ -28,30 +20,18 @@ class Holding extends AbstractEntity implements ImageContainerInterface {
use DatedTrait;
use NotesTrait;
- /**
- * @var string
- * @ORM\Column(type="text", nullable=true)
- */
- private $description;
+ #[ORM\Column(type: 'text', nullable: true)]
+ private ?string $description = null;
- /**
- * @var Parish
- * @ORM\ManyToOne(targetEntity="Parish", inversedBy="holdings")
- * @ORM\JoinColumn(nullable=false)
- */
- private $parish;
+ #[ORM\JoinColumn(nullable: false, onDelete: 'CASCADE')]
+ #[ORM\ManyToOne(targetEntity: Parish::class, inversedBy: 'holdings')]
+ private ?Parish $parish = null;
- /**
- * @var Collection
- * @ORM\ManyToMany(targetEntity="Book", inversedBy="holdings")
- */
- private $books;
+ #[ORM\ManyToMany(targetEntity: Book::class, inversedBy: 'holdings')]
+ private Collection $books;
- /**
- * @var Archive
- * @ORM\ManyToOne(targetEntity="Archive", inversedBy="holdings")
- */
- private $archive;
+ #[ORM\ManyToOne(targetEntity: Archive::class, inversedBy: 'holdings')]
+ private ?Archive $archive = null;
public function __construct() {
parent::__construct();
@@ -59,9 +39,6 @@ public function __construct() {
$this->books = new ArrayCollection();
}
- /**
- * {@inheritDoc}
- */
public function __toString() : string {
return implode(', ', $this->books->toArray()) . ' ' . $this->parish;
}
diff --git a/src/Entity/Injunction.php b/src/Entity/Injunction.php
index 6698ddc..094d386 100644
--- a/src/Entity/Injunction.php
+++ b/src/Entity/Injunction.php
@@ -2,12 +2,6 @@
declare(strict_types=1);
-/*
- * (c) 2022 Michael Joyce
- * This source file is subject to the GPL v2, bundled
- * with this source code in the file LICENSE.
- */
-
namespace App\Entity;
use App\Repository\InjunctionRepository;
@@ -18,142 +12,81 @@
use Nines\MediaBundle\Entity\LinkableTrait;
use Nines\UtilBundle\Entity\AbstractEntity;
-/**
- * @ORM\Entity(repositoryClass=InjunctionRepository::class)
- * @ORM\Table(indexes={
- * @ORM\Index(name="injunction_ft", columns={"title", "uniform_title", "variant_titles", "transcription", "modern_transcription", "author", "imprint", "variant_imprint"}, flags={"fulltext"})
- * })
- */
+#[ORM\Table]
+#[ORM\Index(name: 'injunction_ft', columns: ['title', 'uniform_title', 'variant_titles', 'transcription', 'modern_transcription', 'author', 'imprint', 'variant_imprint'], flags: ['fulltext'])]
+#[ORM\Entity(repositoryClass: InjunctionRepository::class)]
class Injunction extends AbstractEntity implements LinkableInterface {
use LinkableTrait {
LinkableTrait::__construct as linkable_constructor;
}
use NotesTrait;
- /**
- * @var string
- * @ORM\Column(type="text")
- */
- private $title;
+ #[ORM\Column(type: 'text')]
+ private ?string $title = null;
- /**
- * @var string
- * @ORM\Column(type="text", nullable=true)
- */
- private $uniformTitle;
+ #[ORM\Column(type: 'text', nullable: true)]
+ private ?string $uniformTitle = null;
- /**
- * @var array
- * @ORM\Column(type="array")
- */
- private $variantTitles;
+ #[ORM\Column(type: 'array')]
+ private ?array $variantTitles = [];
- /**
- * @var string
- * @ORM\Column(type="string", length=160, nullable=true)
- */
- private $author;
+ #[ORM\Column(type: 'string', length: 160, nullable: true)]
+ private ?string $author = null;
- /**
- * @var string
- * @ORM\Column(type="text", nullable=true)
- */
- private $imprint;
+ #[ORM\Column(type: 'text', nullable: true)]
+ private ?string $imprint = null;
- /**
- * @var string
- * @ORM\Column(type="text", nullable=true)
- */
- private $variantImprint;
+ #[ORM\Column(type: 'text', nullable: true)]
+ private ?string $variantImprint = null;
- /**
- * @var string
- * @ORM\Column(type="string", length=12, nullable=true)
- */
- private $date;
+ #[ORM\Column(type: 'string', length: 12, nullable: true)]
+ private ?string $date = null;
- /**
- * @var string
- * @ORM\Column(type="text", nullable=true)
- */
- private $physicalDescription;
+ #[ORM\Column(type: 'text', nullable: true)]
+ private ?string $physicalDescription = null;
- /**
- * @var string
- * @ORM\Column(type="text", nullable=true)
- */
- private $transcription;
+ #[ORM\Column(type: 'text', nullable: true)]
+ private ?string $transcription = null;
- /**
- * @var string
- * @ORM\Column(type="text", nullable=true)
- */
- private $modernTranscription;
+ #[ORM\Column(type: 'text', nullable: true)]
+ private ?string $modernTranscription = null;
- /**
- * @var string
- * @ORM\Column(type="string", nullable=true)
- */
- private $estc;
+ #[ORM\Column(type: 'string', nullable: true)]
+ private ?string $estc = null;
- /**
- * @var Nation
- * @ORM\ManyToOne(targetEntity="Nation", inversedBy="injunctions")
- * @ORM\JoinColumn(nullable=true)
- */
- private $nation;
+ #[ORM\JoinColumn(nullable: true, onDelete: 'SET NULL')]
+ #[ORM\ManyToOne(targetEntity: Nation::class, inversedBy: 'injunctions')]
+ private ?Nation $nation = null;
- /**
- * @var Diocese
- * @ORM\ManyToOne(targetEntity="Diocese", inversedBy="injunctions")
- * @ORM\JoinColumn(nullable=true)
- */
- private $diocese;
+ #[ORM\JoinColumn(nullable: true, onDelete: 'SET NULL')]
+ #[ORM\ManyToOne(targetEntity: Diocese::class, inversedBy: 'injunctions')]
+ private ?Diocese $diocese = null;
- /**
- * @var Province
- * @ORM\ManyToOne(targetEntity="Province", inversedBy="injunctions")
- * @ORM\JoinColumn(nullable=true)
- */
- private $province;
+ #[ORM\JoinColumn(nullable: true, onDelete: 'SET NULL')]
+ #[ORM\ManyToOne(targetEntity: Province::class, inversedBy: 'injunctions')]
+ private ?Province $province = null;
- /**
- * @var Archdeaconry
- * @ORM\ManyToOne(targetEntity="Archdeaconry", inversedBy="injunctions")
- * @ORM\JoinColumn(nullable=true)
- */
- private $archdeaconry;
+ #[ORM\JoinColumn(nullable: true, onDelete: 'SET NULL')]
+ #[ORM\ManyToOne(targetEntity: Archdeaconry::class, inversedBy: 'injunctions')]
+ private ?Archdeaconry $archdeaconry = null;
- /**
- * @var Monarch
- * @ORM\ManyToOne(targetEntity="Monarch", inversedBy="injunctions")
- * @ORM\JoinColumn(nullable=true)
- */
- private $monarch;
+ #[ORM\JoinColumn(nullable: true, onDelete: 'SET NULL')]
+ #[ORM\ManyToOne(targetEntity: Monarch::class, inversedBy: 'injunctions')]
+ private ?Monarch $monarch = null;
- /**
- * @var Collection
- * @ORM\OneToMany(targetEntity="Transaction", mappedBy="injunction")
- */
- private $transactions;
+ #[ORM\OneToMany(targetEntity: Transaction::class, mappedBy: 'injunction')]
+ private Collection $transactions;
- /**
- * @var Collection
- * @ORM\OneToMany(targetEntity="Inventory", mappedBy="injunction")
- */
- private $inventories;
+ #[ORM\OneToMany(targetEntity: Inventory::class, mappedBy: 'injunction')]
+ private Collection $inventories;
public function __construct() {
parent::__construct();
$this->linkable_constructor();
$this->transactions = new ArrayCollection();
- $this->variantTitles = [];
$this->inventories = new ArrayCollection();
}
- /**
- * {@inheritDoc}
- */
public function __toString() : string {
return $this->title;
}
@@ -306,7 +239,7 @@ public function setPhysicalDescription(?string $physicalDescription) : self {
}
/**
- * @return Collection
+ * @return Collection
*/
public function getInventories() : Collection {
return $this->inventories;
diff --git a/src/Entity/Inventory.php b/src/Entity/Inventory.php
index a431d44..581a298 100644
--- a/src/Entity/Inventory.php
+++ b/src/Entity/Inventory.php
@@ -2,12 +2,6 @@
declare(strict_types=1);
-/*
- * (c) 2022 Michael Joyce
- * This source file is subject to the GPL v2, bundled
- * with this source code in the file LICENSE.
- */
-
namespace App\Entity;
use App\Repository\InventoryRepository;
@@ -18,12 +12,9 @@
use Nines\MediaBundle\Entity\ImageContainerTrait;
use Nines\UtilBundle\Entity\AbstractEntity;
-/**
- * @ORM\Entity(repositoryClass=InventoryRepository::class)
- * @ORM\Table(indexes={
- * @ORM\Index(name="inventory_ft", columns={"transcription", "modifications", "description", "notes"}, flags={"fulltext"})
- * })
- */
+#[ORM\Table]
+#[ORM\Index(name: 'inventory_ft', columns: ['transcription', 'modifications', 'description', 'notes'], flags: ['fulltext'])]
+#[ORM\Entity(repositoryClass: InventoryRepository::class)]
class Inventory extends AbstractEntity implements ImageContainerInterface {
use DatedTrait;
use NotesTrait;
@@ -31,69 +22,39 @@ class Inventory extends AbstractEntity implements ImageContainerInterface {
ImageContainerTrait::__construct as protected trait_constructor;
}
- /**
- * @var string
- * @ORM\Column(type="text", nullable=true)
- */
- private $pageNumber;
+ #[ORM\Column(type: 'text', nullable: true)]
+ private ?string $pageNumber = null;
- /**
- * @var string
- * @ORM\Column(type="text")
- */
- private $transcription;
+ #[ORM\Column(type: 'text')]
+ private ?string $transcription = null;
- /**
- * @var string
- * @ORM\Column(type="text")
- */
- private $modifications;
+ #[ORM\Column(type: 'text')]
+ private ?string $modifications = null;
- /**
- * @var string
- * @ORM\Column(type="text", nullable=true)
- */
- private $description;
+ #[ORM\Column(type: 'text', nullable: true)]
+ private ?string $description = null;
- /**
- * @var ManuscriptSource
- * @ORM\ManyToOne(targetEntity="ManuscriptSource", inversedBy="inventories")
- * @ORM\JoinColumn(nullable=true)
- */
- private $manuscriptSource;
+ #[ORM\JoinColumn(nullable: true, onDelete: 'SET NULL')]
+ #[ORM\ManyToOne(targetEntity: ManuscriptSource::class, inversedBy: 'inventories')]
+ private ?ManuscriptSource $manuscriptSource = null;
- /**
- * @var PrintSource
- * @ORM\ManyToOne(targetEntity="PrintSource", inversedBy="inventories")
- * @ORM\JoinColumn(nullable=true)
- */
- private $printSource;
+ #[ORM\JoinColumn(nullable: true, onDelete: 'SET NULL')]
+ #[ORM\ManyToOne(targetEntity: PrintSource::class, inversedBy: 'inventories')]
+ private ?PrintSource $printSource = null;
- /**
- * @var Parish
- * @ORM\ManyToOne(targetEntity="Parish", inversedBy="inventories")
- * @ORM\JoinColumn(nullable=false)
- */
- private $parish;
+ #[ORM\JoinColumn(nullable: false, onDelete: 'CASCADE')]
+ #[ORM\ManyToOne(targetEntity: Parish::class, inversedBy: 'inventories')]
+ private ?Parish $parish = null;
- /**
- * @var Monarch
- * @ORM\ManyToOne(targetEntity="Monarch", inversedBy="inventories")
- * @ORM\JoinColumn(nullable=true)
- */
- private $monarch;
+ #[ORM\JoinColumn(nullable: true, onDelete: 'SET NULL')]
+ #[ORM\ManyToOne(targetEntity: Monarch::class, inversedBy: 'inventories')]
+ private ?Monarch $monarch = null;
- /**
- * @var Injunction
- * @ORM\ManyToOne(targetEntity="Injunction", inversedBy="inventories")
- */
- private $injunction;
+ #[ORM\ManyToOne(targetEntity: Injunction::class, inversedBy: 'inventories')]
+ private ?Injunction $injunction = null;
- /**
- * @var Book[]|Collection
- * @ORM\ManyToMany(targetEntity="Book", inversedBy="inventories")
- */
- private $books;
+ #[ORM\ManyToMany(targetEntity: Book::class, inversedBy: 'inventories')]
+ private Collection $books;
public function __construct() {
parent::__construct();
@@ -101,9 +62,6 @@ public function __construct() {
$this->books = new ArrayCollection();
}
- /**
- * {@inheritDoc}
- */
public function __toString() : string {
return mb_substr(strip_tags($this->transcription), 0, 50);
}
diff --git a/src/Entity/ManuscriptSource.php b/src/Entity/ManuscriptSource.php
index ed9679d..f8dc945 100644
--- a/src/Entity/ManuscriptSource.php
+++ b/src/Entity/ManuscriptSource.php
@@ -2,12 +2,6 @@
declare(strict_types=1);
-/*
- * (c) 2022 Michael Joyce
- * This source file is subject to the GPL v2, bundled
- * with this source code in the file LICENSE.
- */
-
namespace App\Entity;
use App\Repository\ManuscriptSourceRepository;
@@ -18,45 +12,28 @@
use Nines\MediaBundle\Entity\LinkableTrait;
use Nines\UtilBundle\Entity\AbstractTerm;
-/**
- * @ORM\Entity(repositoryClass=ManuscriptSourceRepository::class)
- */
+#[ORM\Entity(repositoryClass: ManuscriptSourceRepository::class)]
class ManuscriptSource extends AbstractTerm implements LinkableInterface {
use LinkableTrait {
LinkableTrait::__construct as linkable_construct;
}
- /**
- * @var string
- * @ORM\Column(type="string", length=64, nullable=true)
- */
- private $callNumber;
+ #[ORM\Column(type: 'string', length: 64, nullable: true)]
+ private ?string $callNumber = null;
- /**
- * @var SourceCategory
- * @ORM\ManyToOne(targetEntity="SourceCategory", inversedBy="manuscriptSources")
- * @ORM\JoinColumn(nullable=false)
- */
- private $sourceCategory;
+ #[ORM\JoinColumn(nullable: false, onDelete: 'CASCADE')]
+ #[ORM\ManyToOne(targetEntity: SourceCategory::class, inversedBy: 'manuscriptSources')]
+ private ?SourceCategory $sourceCategory = null;
- /**
- * @var Archive
- * @ORM\ManyToOne(targetEntity="Archive", inversedBy="manuscriptSources")
- * @ORM\JoinColumn(nullable=false)
- */
- private $archive;
+ #[ORM\JoinColumn(nullable: false, onDelete: 'CASCADE')]
+ #[ORM\ManyToOne(targetEntity: Archive::class, inversedBy: 'manuscriptSources')]
+ private ?Archive $archive = null;
- /**
- * @var Collection|Transaction[]
- * @ORM\OneToMany(targetEntity="Transaction", mappedBy="manuscriptSource")
- */
- private $transactions;
+ #[ORM\OneToMany(targetEntity: Transaction::class, mappedBy: 'manuscriptSource')]
+ private Collection $transactions;
- /**
- * @var Collection|Inventory[]
- * @ORM\OneToMany(targetEntity="Inventory", mappedBy="manuscriptSource")
- */
- private $inventories;
+ #[ORM\OneToMany(targetEntity: Inventory::class, mappedBy: 'manuscriptSource')]
+ private Collection $inventories;
public function __construct() {
parent::__construct();
diff --git a/src/Entity/Monarch.php b/src/Entity/Monarch.php
index 8671447..db320e2 100644
--- a/src/Entity/Monarch.php
+++ b/src/Entity/Monarch.php
@@ -2,12 +2,6 @@
declare(strict_types=1);
-/*
- * (c) 2022 Michael Joyce
- * This source file is subject to the GPL v2, bundled
- * with this source code in the file LICENSE.
- */
-
namespace App\Entity;
use App\Repository\MonarchRepository;
@@ -17,47 +11,27 @@
use Nines\UtilBundle\Entity\AbstractTerm;
use Symfony\Component\Validator\Constraints as Assert;
-/**
- * @ORM\Entity(repositoryClass=MonarchRepository::class)
- */
+#[ORM\Entity(repositoryClass: MonarchRepository::class)]
class Monarch extends AbstractTerm {
- /**
- * @var string
- * @ORM\Column(type="string", length=10, nullable=true)
- * @Assert\Date(message="{{ value }} is not a valid value. It must be formatted as yyyy-mm-dd and be a valid date.")
- */
- private $startDate;
+ #[Assert\Date(message: '{{ value }} is not a valid value. It must be formatted as yyyy-mm-dd and be a valid date.')]
+ #[ORM\Column(type: 'string', length: 10, nullable: true)]
+ private ?string $startDate = null;
- /**
- * @var string
- * @ORM\Column(type="string", length=10, nullable=true)
- * @Assert\Date(message="{{ value }} is not a valid value. It must be formatted as yyyy-mm-dd and be a valid date.")
- */
- private $endDate;
+ #[Assert\Date(message: '{{ value }} is not a valid value. It must be formatted as yyyy-mm-dd and be a valid date.')]
+ #[ORM\Column(type: 'string', length: 10, nullable: true)]
+ private ?string $endDate = null;
- /**
- * @var Collection
- * @ORM\OneToMany(targetEntity="Transaction", mappedBy="monarch")
- */
- private $transactions;
+ #[ORM\OneToMany(targetEntity: Transaction::class, mappedBy: 'monarch')]
+ private Collection $transactions;
- /**
- * @var Collection
- * @ORM\OneToMany(targetEntity="Injunction", mappedBy="monarch")
- */
- private $injunctions;
+ #[ORM\OneToMany(targetEntity: Injunction::class, mappedBy: 'monarch')]
+ private Collection $injunctions;
- /**
- * @var Collection
- * @ORM\OneToMany(targetEntity="Inventory", mappedBy="monarch")
- */
- private $inventories;
+ #[ORM\OneToMany(targetEntity: Inventory::class, mappedBy: 'monarch')]
+ private Collection $inventories;
- /**
- * @var Collection
- * @ORM\OneToMany(targetEntity="Book", mappedBy="monarch")
- */
- private $books;
+ #[ORM\OneToMany(targetEntity: Book::class, mappedBy: 'monarch')]
+ private Collection $books;
public function __construct() {
parent::__construct();
diff --git a/src/Entity/Nation.php b/src/Entity/Nation.php
index 3534c56..f2720e2 100644
--- a/src/Entity/Nation.php
+++ b/src/Entity/Nation.php
@@ -2,12 +2,6 @@
declare(strict_types=1);
-/*
- * (c) 2022 Michael Joyce
- * This source file is subject to the GPL v2, bundled
- * with this source code in the file LICENSE.
- */
-
namespace App\Entity;
use App\Repository\NationRepository;
@@ -16,27 +10,16 @@
use Doctrine\ORM\Mapping as ORM;
use Nines\UtilBundle\Entity\AbstractTerm;
-/**
- * @ORM\Entity(repositoryClass=NationRepository::class)
- */
+#[ORM\Entity(repositoryClass: NationRepository::class)]
class Nation extends AbstractTerm {
- /**
- * @var Collection
- * @ORM\OneToMany(targetEntity="Province", mappedBy="nation")
- */
- private $provinces;
+ #[ORM\OneToMany(targetEntity: Province::class, mappedBy: 'nation')]
+ private Collection $provinces;
- /**
- * @var Collection
- * @ORM\OneToMany(targetEntity="County", mappedBy="nation")
- */
- private $counties;
+ #[ORM\OneToMany(targetEntity: County::class, mappedBy: 'nation')]
+ private Collection $counties;
- /**
- * @var Collection
- * @ORM\OneToMany(targetEntity="Injunction", mappedBy="nation")
- */
- private $injunctions;
+ #[ORM\OneToMany(targetEntity: Injunction::class, mappedBy: 'nation')]
+ private Collection $injunctions;
public function __construct() {
parent::__construct();
@@ -100,7 +83,7 @@ public function removeCounty(County $county) : self {
}
/**
- * @return Collection
+ * @return Collection
*/
public function getInjunctions() : Collection {
return $this->injunctions;
diff --git a/src/Entity/NotesTrait.php b/src/Entity/NotesTrait.php
index f7cd551..372fc50 100644
--- a/src/Entity/NotesTrait.php
+++ b/src/Entity/NotesTrait.php
@@ -2,29 +2,18 @@
declare(strict_types=1);
-/*
- * (c) 2022 Michael Joyce
- * This source file is subject to the GPL v2, bundled
- * with this source code in the file LICENSE.
- */
-
namespace App\Entity;
+use Doctrine\ORM\Mapping as ORM;
+
trait NotesTrait {
- /**
- * @ORM\Column(type="text", nullable=true)
- */
+ #[ORM\Column(type: 'text', nullable: true)]
private ?string $notes = null;
public function getNotes() : ?string {
return $this->notes;
}
- /**
- * @param ?string $notes
- *
- * @return $this
- */
public function setNotes(?string $notes) : self {
$this->notes = $notes;
diff --git a/src/Entity/Parish.php b/src/Entity/Parish.php
index 79313cf..43d1b5e 100644
--- a/src/Entity/Parish.php
+++ b/src/Entity/Parish.php
@@ -2,12 +2,6 @@
declare(strict_types=1);
-/*
- * (c) 2022 Michael Joyce
- * This source file is subject to the GPL v2, bundled
- * with this source code in the file LICENSE.
- */
-
namespace App\Entity;
use App\Repository\ParishRepository;
@@ -18,68 +12,40 @@
use Nines\MediaBundle\Entity\LinkableTrait;
use Nines\UtilBundle\Entity\AbstractTerm;
-/**
- * @ORM\Entity(repositoryClass=ParishRepository::class)
- */
+#[ORM\Entity(repositoryClass: ParishRepository::class)]
class Parish extends AbstractTerm implements LinkableInterface {
use LinkableTrait {
LinkableTrait::__construct as linkable_construct;
}
- /**
- * @var string
- *
- * @ORM\Column(type="decimal", precision=10, scale=7, nullable=true)
- */
- private $latitude;
+ #[ORM\Column(type: 'decimal', precision: 10, scale: 7, nullable: true)]
+ private ?string $latitude = null;
- /**
- * @var string
- *
- * @ORM\Column(type="decimal", precision=10, scale=7, nullable=true)
- */
- private $longitude;
+ #[ORM\Column(type: 'decimal', precision: 10, scale: 7, nullable: true)]
+ private ?string $longitude = null;
- /**
- * @var string
- *
- * @ORM\Column(type="text", nullable=true)
- */
- private $address;
+ #[ORM\Column(type: 'text', nullable: true)]
+ private ?string $address = null;
- /**
- * @var Archdeaconry
- * @ORM\ManyToOne(targetEntity="Archdeaconry", inversedBy="parishes")
- * @ORM\JoinColumn(nullable=false)
- */
- private $archdeaconry;
+ #[ORM\JoinColumn(nullable: false, onDelete: 'CASCADE')]
+ #[ORM\ManyToOne(targetEntity: Archdeaconry::class, inversedBy: 'parishes')]
+ private ?Archdeaconry $archdeaconry = null;
/**
* A county outside City of London, or a ward inside London.
- *
- * @var Town
- * @ORM\ManyToOne(targetEntity="Town", inversedBy="parishes")
- * @ORM\JoinColumn(nullable=true)
*/
- private $town;
+ #[ORM\JoinColumn(nullable: true, onDelete: 'SET NULL')]
+ #[ORM\ManyToOne(targetEntity: Town::class, inversedBy: 'parishes')]
+ private ?Town $town = null;
- /**
- * @var Collection|Transaction[]
- * @ORM\OneToMany(targetEntity="Transaction", mappedBy="parish")
- */
- private $transactions;
+ #[ORM\OneToMany(targetEntity: Transaction::class, mappedBy: 'parish')]
+ private Collection $transactions;
- /**
- * @var Collection|Inventory[]
- * @ORM\OneToMany(targetEntity="Inventory", mappedBy="parish")
- */
- private $inventories;
+ #[ORM\OneToMany(targetEntity: Inventory::class, mappedBy: 'parish')]
+ private Collection $inventories;
- /**
- * @var Collection|Holding[]
- * @ORM\OneToMany(targetEntity="Holding", mappedBy="parish")
- */
- private $holdings;
+ #[ORM\OneToMany(targetEntity: Holding::class, mappedBy: 'parish')]
+ private Collection $holdings;
public function __construct() {
parent::__construct();
diff --git a/src/Entity/PrintSource.php b/src/Entity/PrintSource.php
index 2363988..2f24e38 100644
--- a/src/Entity/PrintSource.php
+++ b/src/Entity/PrintSource.php
@@ -2,12 +2,6 @@
declare(strict_types=1);
-/*
- * (c) 2022 Michael Joyce
- * This source file is subject to the GPL v2, bundled
- * with this source code in the file LICENSE.
- */
-
namespace App\Entity;
use App\Repository\PrintSourceRepository;
@@ -18,58 +12,34 @@
use Nines\MediaBundle\Entity\LinkableTrait;
use Nines\UtilBundle\Entity\AbstractEntity;
-/**
- * @ORM\Entity(repositoryClass=PrintSourceRepository::class)
- * @ORM\Table(indexes={
- * @ORM\Index(name="print_source_ft", columns={"title", "author", "publisher"}, flags={"fulltext"})
- * })
- */
+#[ORM\Table]
+#[ORM\Index(name: 'print_source_ft', columns: ['title', 'author', 'publisher'], flags: ['fulltext'])]
+#[ORM\Entity(repositoryClass: PrintSourceRepository::class)]
class PrintSource extends AbstractEntity implements LinkableInterface {
use NotesTrait;
use LinkableTrait {__construct as linkable_constructor; }
- /**
- * @var string
- * @ORM\Column(type="string", length=200, nullable=false)
- */
- private $title;
+ #[ORM\Column(type: 'string', length: 200, nullable: false)]
+ private string $title = '';
- /**
- * @var string
- * @ORM\Column(type="string", length=200, nullable=true)
- */
- private $author;
+ #[ORM\Column(type: 'string', length: 200, nullable: true)]
+ private ?string $author = null;
- /**
- * @var string
- * @ORM\Column(type="string", length=16, nullable=true)
- */
- private $date;
+ #[ORM\Column(type: 'string', length: 16, nullable: true)]
+ private ?string $date = null;
- /**
- * @var string
- * @ORM\Column(type="string", length=200, nullable=true)
- */
- private $publisher;
+ #[ORM\Column(type: 'string', length: 200, nullable: true)]
+ private ?string $publisher = null;
- /**
- * @var SourceCategory
- * @ORM\ManyToOne(targetEntity="SourceCategory", inversedBy="printSources")
- * @ORM\JoinColumn(nullable=false)
- */
- private $sourceCategory;
+ #[ORM\JoinColumn(nullable: false, onDelete: 'CASCADE')]
+ #[ORM\ManyToOne(targetEntity: SourceCategory::class, inversedBy: 'printSources')]
+ private ?SourceCategory $sourceCategory = null;
- /**
- * @var Collection|Transaction[]
- * @ORM\OneToMany(targetEntity="Transaction", mappedBy="printSource")
- */
- private $transactions;
+ #[ORM\OneToMany(targetEntity: Transaction::class, mappedBy: 'printSource')]
+ private Collection $transactions;
- /**
- * @var Collection|Inventory[]
- * @ORM\OneToMany(targetEntity="Inventory", mappedBy="printSource")
- */
- private $inventories;
+ #[ORM\OneToMany(targetEntity: Inventory::class, mappedBy: 'printSource')]
+ private Collection $inventories;
public function __construct() {
parent::__construct();
@@ -78,9 +48,6 @@ public function __construct() {
$this->linkable_constructor();
}
- /**
- * {@inheritDoc}
- */
public function __toString() : string {
return $this->title;
}
@@ -136,7 +103,7 @@ public function setSourceCategory(?SourceCategory $sourceCategory) : self {
}
/**
- * @return Collection
+ * @return Collection
*/
public function getTransactions() : Collection {
return $this->transactions;
@@ -163,7 +130,7 @@ public function removeTransaction(Transaction $transaction) : self {
}
/**
- * @return Collection
+ * @return Collection
*/
public function getInventories() : Collection {
return $this->inventories;
diff --git a/src/Entity/Province.php b/src/Entity/Province.php
index c87a821..4435691 100644
--- a/src/Entity/Province.php
+++ b/src/Entity/Province.php
@@ -2,12 +2,6 @@
declare(strict_types=1);
-/*
- * (c) 2022 Michael Joyce
- * This source file is subject to the GPL v2, bundled
- * with this source code in the file LICENSE.
- */
-
namespace App\Entity;
use App\Repository\ProvinceRepository;
@@ -18,32 +12,21 @@
use Nines\MediaBundle\Entity\LinkableTrait;
use Nines\UtilBundle\Entity\AbstractTerm;
-/**
- * @ORM\Entity(repositoryClass=ProvinceRepository::class)
- */
+#[ORM\Entity(repositoryClass: ProvinceRepository::class)]
class Province extends AbstractTerm implements LinkableInterface {
use LinkableTrait {
LinkableTrait::__construct as linkable_construct;
}
- /**
- * @var Nation
- * @ORM\ManyToOne(targetEntity="Nation", inversedBy="provinces")
- * @ORM\JoinColumn(nullable=false)
- */
- private $nation;
+ #[ORM\JoinColumn(nullable: false, onDelete: 'CASCADE')]
+ #[ORM\ManyToOne(targetEntity: Nation::class, inversedBy: 'provinces')]
+ private ?Nation $nation = null;
- /**
- * @var Collection|Diocese[]
- * @ORM\OneToMany(targetEntity="Diocese", mappedBy="province")
- */
- private $dioceses;
+ #[ORM\OneToMany(targetEntity: Diocese::class, mappedBy: 'province')]
+ private Collection $dioceses;
- /**
- * @var Collection
- * @ORM\OneToMany(targetEntity="Injunction", mappedBy="province")
- */
- private $injunctions;
+ #[ORM\OneToMany(targetEntity: Injunction::class, mappedBy: 'province')]
+ private Collection $injunctions;
public function __construct() {
parent::__construct();
@@ -90,7 +73,7 @@ public function setNation(?Nation $nation) : self {
}
/**
- * @return Collection
+ * @return Collection
*/
public function getInjunctions() : Collection {
return $this->injunctions;
diff --git a/src/Entity/SourceCategory.php b/src/Entity/SourceCategory.php
index 1ed00fd..ed221c4 100644
--- a/src/Entity/SourceCategory.php
+++ b/src/Entity/SourceCategory.php
@@ -2,12 +2,6 @@
declare(strict_types=1);
-/*
- * (c) 2022 Michael Joyce
- * This source file is subject to the GPL v2, bundled
- * with this source code in the file LICENSE.
- */
-
namespace App\Entity;
use App\Repository\SourceCategoryRepository;
@@ -16,21 +10,13 @@
use Doctrine\ORM\Mapping as ORM;
use Nines\UtilBundle\Entity\AbstractTerm;
-/**
- * @ORM\Entity(repositoryClass=SourceCategoryRepository::class)
- */
+#[ORM\Entity(repositoryClass: SourceCategoryRepository::class)]
class SourceCategory extends AbstractTerm {
- /**
- * @var Collection|ManuscriptSource[]
- * @ORM\OneToMany(targetEntity="ManuscriptSource", mappedBy="sourceCategory")
- */
- private $manuscriptSources;
+ #[ORM\OneToMany(targetEntity: ManuscriptSource::class, mappedBy: 'sourceCategory')]
+ private Collection $manuscriptSources;
- /**
- * @var Collection|PrintSource[]
- * @ORM\OneToMany(targetEntity="PrintSource", mappedBy="sourceCategory")
- */
- private $printSources;
+ #[ORM\OneToMany(targetEntity: PrintSource::class, mappedBy: 'sourceCategory')]
+ private Collection $printSources;
public function __construct() {
parent::__construct();
@@ -77,7 +63,7 @@ public function removeManuscriptSource(ManuscriptSource $manuscriptSource) : sel
}
/**
- * @return Collection
+ * @return Collection
*/
public function getPrintSources() : Collection {
return $this->printSources;
diff --git a/src/Entity/Town.php b/src/Entity/Town.php
index 652076a..3871c00 100644
--- a/src/Entity/Town.php
+++ b/src/Entity/Town.php
@@ -2,12 +2,6 @@
declare(strict_types=1);
-/*
- * (c) 2022 Michael Joyce
- * This source file is subject to the GPL v2, bundled
- * with this source code in the file LICENSE.
- */
-
namespace App\Entity;
use App\Repository\TownRepository;
@@ -18,37 +12,28 @@
use Nines\MediaBundle\Entity\LinkableTrait;
use Nines\UtilBundle\Entity\AbstractTerm;
-/**
- * @ORM\Entity(repositoryClass=TownRepository::class)
- */
+#[ORM\Entity(repositoryClass: TownRepository::class)]
class Town extends AbstractTerm implements LinkableInterface {
use LinkableTrait {
LinkableTrait::__construct as linkable_construct;
}
- /**
- * @var boolean;
- * @ORM\Column(type="boolean", nullable=false)
- */
- private $inLondon;
+ #[ORM\Column(type: 'boolean', nullable: false)]
+ private bool $inLondon = false;
- /**
- * @var County
- * @ORM\ManyToOne(targetEntity="County", inversedBy="towns")
- * @ORM\JoinColumn(nullable=false)
- */
- private $county;
+ #[ORM\JoinColumn(nullable: false, onDelete: 'CASCADE')]
+ #[ORM\ManyToOne(targetEntity: County::class, inversedBy: 'towns')]
+ private ?County $county = null;
/**
- * @var Collection|Parish[]
- * @ORM\OneToMany(targetEntity="Parish", mappedBy="town")
+ * @var Collection
*/
- private $parishes;
+ #[ORM\OneToMany(targetEntity: Parish::class, mappedBy: 'town')]
+ private Collection $parishes;
public function __construct() {
parent::__construct();
$this->linkable_construct();
- $this->inLondon = false;
$this->parishes = new ArrayCollection();
}
diff --git a/src/Entity/Transaction.php b/src/Entity/Transaction.php
index bf3d37a..0f465ab 100644
--- a/src/Entity/Transaction.php
+++ b/src/Entity/Transaction.php
@@ -2,12 +2,6 @@
declare(strict_types=1);
-/*
- * (c) 2022 Michael Joyce
- * This source file is subject to the GPL v2, bundled
- * with this source code in the file LICENSE.
- */
-
namespace App\Entity;
use App\Repository\TransactionRepository;
@@ -16,12 +10,9 @@
use Doctrine\ORM\Mapping as ORM;
use Nines\UtilBundle\Entity\AbstractEntity;
-/**
- * @ORM\Entity(repositoryClass=TransactionRepository::class)
- * @ORM\Table(name="transact", indexes={
- * @ORM\Index(name="transaction_ft", columns={"transcription", "modern_transcription", "notes"}, flags={"fulltext"})
- * })
- */
+#[ORM\Table(name: 'transact')]
+#[ORM\Index(name: 'transaction_ft', columns: ['transcription', 'modern_transcription', 'notes'], flags: ['fulltext'])]
+#[ORM\Entity(repositoryClass: TransactionRepository::class)]
class Transaction extends AbstractEntity {
use DatedTrait;
use NotesTrait;
@@ -32,100 +23,62 @@ class Transaction extends AbstractEntity {
* £2. 3s. 6d. (two pounds, three shillings and six pence) is recorded as
*
* 2 * 240 + 3 * 12 + 6 = 522
- *
- * @var int
- * @ORM\Column(type="integer", nullable=true)
*/
- private $value;
+ #[ORM\Column(type: 'integer', nullable: true)]
+ private ?int $value = null;
- /**
- * @var int
- * @ORM\Column(type="integer", nullable=true)
- */
- private $shipping;
+ #[ORM\Column(type: 'integer', nullable: true)]
+ private ?int $shipping = null;
- /**
- * @var int
- * @ORM\Column(type="integer", nullable=true)
- */
- private $copies;
+ #[ORM\Column(type: 'integer', nullable: true)]
+ private ?int $copies = null;
- /**
- * @var string
- * @ORM\Column(type="string", length=160, nullable=true)
- */
- private $location;
+ #[ORM\Column(type: 'string', length: 160, nullable: true)]
+ private ?string $location = null;
- /**
- * @var string
- * @ORM\Column(type="string", length=24, nullable=true)
- */
- private $page;
+ #[ORM\Column(type: 'string', length: 24, nullable: true)]
+ private ?string $page = null;
- /**
- * @var string
- * @ORM\Column(type="text", nullable=true)
- */
- private $transcription;
+ #[ORM\Column(type: 'text', nullable: true)]
+ private ?string $transcription = null;
- /**
- * @var string
- * @ORM\Column(type="text", nullable=true)
- */
- private $modernTranscription;
+ #[ORM\Column(type: 'text', nullable: true)]
+ private ?string $modernTranscription = null;
- /**
- * @var string
- * @ORM\Column(type="text", nullable=true)
- */
- private $publicNotes;
+ #[ORM\Column(type: 'text', nullable: true)]
+ private ?string $publicNotes = null;
/**
- * @var Book[]|Collection
- * @ORM\ManyToMany(targetEntity="Book", inversedBy="transactions")
+ * @var Collection
*/
- private $books;
+ #[ORM\ManyToMany(targetEntity: Book::class, inversedBy: 'transactions')]
+ private Collection $books;
- /**
- * @var Parish
- * @ORM\ManyToOne(targetEntity="Parish", inversedBy="transactions")
- * @ORM\JoinColumn(nullable=false)
- */
- private $parish;
+ #[ORM\JoinColumn(nullable: false, onDelete: 'CASCADE')]
+ #[ORM\ManyToOne(targetEntity: Parish::class, inversedBy: 'transactions')]
+ private ?Parish $parish = null;
- /**
- * @var ManuscriptSource
- * @ORM\ManyToOne(targetEntity="ManuscriptSource", inversedBy="transactions")
- * @ORM\JoinColumn(nullable=true)
- */
- private $manuscriptSource;
+ #[ORM\JoinColumn(nullable: true, onDelete: 'SET NULL')]
+ #[ORM\ManyToOne(targetEntity: ManuscriptSource::class, inversedBy: 'transactions')]
+ private ?ManuscriptSource $manuscriptSource = null;
- /**
- * @var PrintSource
- * @ORM\ManyToOne(targetEntity="PrintSource", inversedBy="transactions")
- * @ORM\JoinColumn(nullable=true)
- */
- private $printSource;
+ #[ORM\JoinColumn(nullable: true, onDelete: 'SET NULL')]
+ #[ORM\ManyToOne(targetEntity: PrintSource::class, inversedBy: 'transactions')]
+ private ?PrintSource $printSource = null;
/**
- * @var Collection|TransactionCategory[]
- * @ORM\ManyToMany(targetEntity="TransactionCategory", inversedBy="transactions")
- * @ORM\JoinColumn(nullable=false)
+ * @var Collection
*/
- private $transactionCategories;
+ #[ORM\JoinColumn(nullable: false, onDelete: 'CASCADE')]
+ #[ORM\ManyToMany(targetEntity: TransactionCategory::class, inversedBy: 'transactions')]
+ private Collection $transactionCategories;
- /**
- * @var Injunction
- * @ORM\ManyToOne(targetEntity="Injunction", inversedBy="transactions")
- */
- private $injunction;
+ #[ORM\ManyToOne(targetEntity: Injunction::class, inversedBy: 'transactions')]
+ private ?Injunction $injunction = null;
- /**
- * @var Monarch
- * @ORM\ManyToOne(targetEntity="Monarch", inversedBy="transactions")
- * @ORM\JoinColumn(nullable=true)
- */
- private $monarch;
+ #[ORM\JoinColumn(nullable: true, onDelete: 'SET NULL')]
+ #[ORM\ManyToOne(targetEntity: Monarch::class, inversedBy: 'transactions')]
+ private ?Monarch $monarch = null;
public function __construct() {
parent::__construct();
@@ -134,9 +87,6 @@ public function __construct() {
$this->transactionCategories = new ArrayCollection();
}
- /**
- * {@inheritdoc}
- */
public function __toString() : string {
return sprintf('%05d', $this->id);
}
@@ -343,9 +293,6 @@ public function setMonarch(?Monarch $monarch) : self {
return $this;
}
- /**
- * @return string
- */
public function getPublicNotes() : ?string {
return $this->publicNotes;
}
diff --git a/src/Entity/TransactionCategory.php b/src/Entity/TransactionCategory.php
index ee33e0c..c27a6d4 100644
--- a/src/Entity/TransactionCategory.php
+++ b/src/Entity/TransactionCategory.php
@@ -2,12 +2,6 @@
declare(strict_types=1);
-/*
- * (c) 2022 Michael Joyce
- * This source file is subject to the GPL v2, bundled
- * with this source code in the file LICENSE.
- */
-
namespace App\Entity;
use App\Repository\TransactionCategoryRepository;
@@ -16,15 +10,10 @@
use Doctrine\ORM\Mapping as ORM;
use Nines\UtilBundle\Entity\AbstractTerm;
-/**
- * @ORM\Entity(repositoryClass=TransactionCategoryRepository::class)
- */
+#[ORM\Entity(repositoryClass: TransactionCategoryRepository::class)]
class TransactionCategory extends AbstractTerm {
- /**
- * @var Collection|Transaction[]
- * @ORM\ManyToMany(targetEntity="Transaction", mappedBy="transactionCategories")
- */
- private $transactions;
+ #[ORM\ManyToMany(targetEntity: Transaction::class, mappedBy: 'transactionCategories')]
+ private Collection $transactions;
public function __construct() {
parent::__construct();
diff --git a/src/Form/ArchdeaconryType.php b/src/Form/ArchdeaconryType.php
index 3c93f98..2e722aa 100644
--- a/src/Form/ArchdeaconryType.php
+++ b/src/Form/ArchdeaconryType.php
@@ -2,12 +2,6 @@
declare(strict_types=1);
-/*
- * (c) 2022 Michael Joyce
- * This source file is subject to the GPL v2, bundled
- * with this source code in the file LICENSE.
- */
-
namespace App\Form;
use App\Entity\Archdeaconry;
@@ -23,7 +17,9 @@
* Archdeaconry form.
*/
class ArchdeaconryType extends TermType {
- private ?LinkableMapper $mapper = null;
+ public function __construct(
+ private LinkableMapper $mapper,
+ ) {}
/**
* Add form fields to $builder.
@@ -36,8 +32,7 @@ public function buildForm(FormBuilderInterface $builder, array $options) : void
'remote_route' => 'diocese_typeahead',
'allow_clear' => true,
'attr' => [
- 'help_block' => '',
- 'add_path' => 'diocese_new_popup',
+ 'add_path' => 'diocese_new',
'add_label' => 'Add Diocese',
],
]);
@@ -45,13 +40,6 @@ public function buildForm(FormBuilderInterface $builder, array $options) : void
$builder->setDataMapper($this->mapper);
}
- /**
- * @required
- */
- public function setMapper(LinkableMapper $mapper) : void {
- $this->mapper = $mapper;
- }
-
/**
* Define options for the form.
*
diff --git a/src/Form/ArchiveType.php b/src/Form/ArchiveType.php
index 0b962c4..652c6bb 100644
--- a/src/Form/ArchiveType.php
+++ b/src/Form/ArchiveType.php
@@ -2,12 +2,6 @@
declare(strict_types=1);
-/*
- * (c) 2022 Michael Joyce
- * This source file is subject to the GPL v2, bundled
- * with this source code in the file LICENSE.
- */
-
namespace App\Form;
use App\Entity\Archive;
@@ -21,7 +15,9 @@
* Archive form.
*/
class ArchiveType extends TermType {
- private ?LinkableMapper $mapper = null;
+ public function __construct(
+ private LinkableMapper $mapper,
+ ) {}
/**
* Add form fields to $builder.
@@ -33,13 +29,6 @@ public function buildForm(FormBuilderInterface $builder, array $options) : void
$builder->setDataMapper($this->mapper);
}
- /**
- * @required
- */
- public function setMapper(LinkableMapper $mapper) : void {
- $this->mapper = $mapper;
- }
-
/**
* Define options for the form.
*
diff --git a/src/Form/BookType.php b/src/Form/BookType.php
index 03e1d91..8af3884 100644
--- a/src/Form/BookType.php
+++ b/src/Form/BookType.php
@@ -2,12 +2,6 @@
declare(strict_types=1);
-/*
- * (c) 2022 Michael Joyce
- * This source file is subject to the GPL v2, bundled
- * with this source code in the file LICENSE.
- */
-
namespace App\Form;
use App\Entity\Book;
@@ -28,7 +22,9 @@
* Book form.
*/
class BookType extends AbstractType {
- private ?LinkableMapper $mapper = null;
+ public function __construct(
+ private LinkableMapper $mapper,
+ ) {}
/**
* Add form fields to $builder.
@@ -37,8 +33,8 @@ public function buildForm(FormBuilderInterface $builder, array $options) : void
$builder->add('title', TextareaType::class, [
'label' => 'Title',
'required' => false,
+ 'help' => 'As it appears in the ESTC',
'attr' => [
- 'help_block' => 'As it appears in the ESTC',
'class' => '',
],
]);
@@ -46,7 +42,6 @@ public function buildForm(FormBuilderInterface $builder, array $options) : void
'label' => 'Uniform Title',
'required' => false,
'attr' => [
- 'help_block' => '',
'class' => '',
],
]);
@@ -60,47 +55,33 @@ public function buildForm(FormBuilderInterface $builder, array $options) : void
'entry_options' => [
'label' => false,
],
-
+ 'help' => "Year, followed by the title in modern English. Eg. '1631, A thanksgiving, and prayer for the safe child bearing of the queen's majesty'. Also add any other variant titles listed in the ESTC.",
'attr' => [
'class' => 'collection collection-simple',
- 'help_block' => "Year, followed by the title in modern English. Eg. '1631, A thanksgiving, and prayer for the safe child bearing of the queen's majesty'. Also add any other variant titles listed in the ESTC.",
],
]);
$builder->add('author', TextType::class, [
'label' => 'Author',
'required' => false,
- 'attr' => [
- 'help_block' => '',
- ],
]);
$builder->add('imprint', TextareaType::class, [
'label' => 'Imprint',
'required' => false,
- 'attr' => [
- 'help_block' => 'Imprint as noted on the ESTC',
- ],
+ 'help' => 'Imprint as noted on the ESTC',
]);
$builder->add('variantImprint', TextareaType::class, [
'label' => 'Imprint, Modern English”',
'required' => false,
- 'attr' => [
- 'help_block' => 'Original spelling imprint and any variations of it',
- ],
+ 'help' => 'Original spelling imprint and any variations of it',
]);
$builder->add('date', TextType::class, [
'label' => 'Date',
'required' => false,
- 'attr' => [
- 'help_block' => '',
- ],
]);
$builder->add('estc', TextType::class, [
'label' => 'Estc',
'required' => false,
- 'attr' => [
- 'help_block' => '',
- ],
]);
$builder->add('monarch', Select2EntityType::class, [
@@ -109,8 +90,7 @@ public function buildForm(FormBuilderInterface $builder, array $options) : void
'class' => Monarch::class,
'remote_route' => 'monarch_typeahead',
'attr' => [
- 'help_block' => '',
- 'add_path' => 'monarch_new_popup',
+ 'add_path' => 'monarch_new',
'add_label' => 'Add Monarch',
],
]);
@@ -118,8 +98,8 @@ public function buildForm(FormBuilderInterface $builder, array $options) : void
$builder->add('physicalDescription', TextareaType::class, [
'label' => 'Physical Description',
'required' => false,
+ 'help' => 'Public description of the physicality of the item.',
'attr' => [
- 'help_block' => 'Public description of the physicality of the item.',
'class' => 'tinymce',
],
]);
@@ -127,8 +107,8 @@ public function buildForm(FormBuilderInterface $builder, array $options) : void
$builder->add('description', TextareaType::class, [
'label' => 'Description',
'required' => false,
+ 'help' => 'Public description of the item.',
'attr' => [
- 'help_block' => 'Public description of the item.',
'class' => 'tinymce',
],
]);
@@ -140,8 +120,7 @@ public function buildForm(FormBuilderInterface $builder, array $options) : void
'remote_route' => 'format_typeahead',
'allow_clear' => true,
'attr' => [
- 'help_block' => '',
- 'add_path' => 'format_new_popup',
+ 'add_path' => 'format_new',
'add_label' => 'Add Format',
],
]);
@@ -149,13 +128,6 @@ public function buildForm(FormBuilderInterface $builder, array $options) : void
$builder->setDataMapper($this->mapper);
}
- /**
- * @required
- */
- public function setMapper(LinkableMapper $mapper) : void {
- $this->mapper = $mapper;
- }
-
/**
* Define options for the form.
*
diff --git a/src/Form/CountyType.php b/src/Form/CountyType.php
index fa790e2..fefa0d4 100644
--- a/src/Form/CountyType.php
+++ b/src/Form/CountyType.php
@@ -2,12 +2,6 @@
declare(strict_types=1);
-/*
- * (c) 2022 Michael Joyce
- * This source file is subject to the GPL v2, bundled
- * with this source code in the file LICENSE.
- */
-
namespace App\Form;
use App\Entity\County;
@@ -23,7 +17,9 @@
* County form.
*/
class CountyType extends TermType {
- private ?LinkableMapper $mapper = null;
+ public function __construct(
+ private LinkableMapper $mapper,
+ ) {}
/**
* Add form fields to $builder.
@@ -36,8 +32,7 @@ public function buildForm(FormBuilderInterface $builder, array $options) : void
'remote_route' => 'nation_typeahead',
'allow_clear' => true,
'attr' => [
- 'help_block' => '',
- 'add_path' => 'nation_new_popup',
+ 'add_path' => 'nation_new',
'add_label' => 'Add Nation',
],
]);
@@ -45,13 +40,6 @@ public function buildForm(FormBuilderInterface $builder, array $options) : void
$builder->setDataMapper($this->mapper);
}
- /**
- * @required
- */
- public function setMapper(LinkableMapper $mapper) : void {
- $this->mapper = $mapper;
- }
-
/**
* Define options for the form.
*
diff --git a/src/Form/DioceseType.php b/src/Form/DioceseType.php
index 45f3dfd..d937978 100644
--- a/src/Form/DioceseType.php
+++ b/src/Form/DioceseType.php
@@ -2,16 +2,10 @@
declare(strict_types=1);
-/*
- * (c) 2022 Michael Joyce
- * This source file is subject to the GPL v2, bundled
- * with this source code in the file LICENSE.
- */
-
namespace App\Form;
use App\Entity\Diocese;
- use App\Entity\Province;
+use App\Entity\Province;
use Nines\MediaBundle\Form\LinkableType;
use Nines\MediaBundle\Form\Mapper\LinkableMapper;
use Nines\UtilBundle\Form\TermType;
@@ -23,7 +17,9 @@
* Diocese form.
*/
class DioceseType extends TermType {
- private ?LinkableMapper $mapper = null;
+ public function __construct(
+ private LinkableMapper $mapper,
+ ) {}
/**
* Add form fields to $builder.
@@ -37,8 +33,7 @@ public function buildForm(FormBuilderInterface $builder, array $options) : void
'remote_route' => 'province_typeahead',
'allow_clear' => true,
'attr' => [
- 'help_block' => '',
- 'add_path' => 'province_new_popup',
+ 'add_path' => 'province_new',
'add_label' => 'Add Province',
],
]);
@@ -46,13 +41,6 @@ public function buildForm(FormBuilderInterface $builder, array $options) : void
$builder->setDataMapper($this->mapper);
}
- /**
- * @required
- */
- public function setMapper(LinkableMapper $mapper) : void {
- $this->mapper = $mapper;
- }
-
/**
* Define options for the form.
*
diff --git a/src/Form/FormatType.php b/src/Form/FormatType.php
index a31e286..98a43f1 100644
--- a/src/Form/FormatType.php
+++ b/src/Form/FormatType.php
@@ -2,12 +2,6 @@
declare(strict_types=1);
-/*
- * (c) 2022 Michael Joyce
- * This source file is subject to the GPL v2, bundled
- * with this source code in the file LICENSE.
- */
-
namespace App\Form;
use App\Entity\Format;
diff --git a/src/Form/HoldingType.php b/src/Form/HoldingType.php
index 91bfb9e..bf4d412 100644
--- a/src/Form/HoldingType.php
+++ b/src/Form/HoldingType.php
@@ -2,18 +2,12 @@
declare(strict_types=1);
-/*
- * (c) 2022 Michael Joyce
- * This source file is subject to the GPL v2, bundled
- * with this source code in the file LICENSE.
- */
-
namespace App\Form;
use App\Entity\Archive;
use App\Entity\Book;
- use App\Entity\Holding;
- use App\Entity\Parish;
+use App\Entity\Holding;
+use App\Entity\Parish;
use App\Form\Partial\DatedType;
use App\Form\Partial\NotesType;
use Symfony\Component\Form\AbstractType;
@@ -36,8 +30,7 @@ public function buildForm(FormBuilderInterface $builder, array $options) : void
'class' => Parish::class,
'remote_route' => 'parish_typeahead',
'attr' => [
- 'help_block' => '',
- 'add_path' => 'parish_new_popup',
+ 'add_path' => 'parish_new',
'add_label' => 'Add Parish',
],
]);
@@ -47,8 +40,7 @@ public function buildForm(FormBuilderInterface $builder, array $options) : void
'class' => Archive::class,
'remote_route' => 'archive_typeahead',
'attr' => [
- 'help_block' => '',
- 'add_path' => 'archive_new_popup',
+ 'add_path' => 'archive_new',
'add_label' => 'Add Archive',
],
]);
@@ -61,8 +53,7 @@ public function buildForm(FormBuilderInterface $builder, array $options) : void
'allow_clear' => true,
'multiple' => true,
'attr' => [
- 'help_block' => '',
- 'add_path' => 'book_new_popup',
+ 'add_path' => 'book_new',
'add_label' => 'Add Book',
],
]);
@@ -70,7 +61,6 @@ public function buildForm(FormBuilderInterface $builder, array $options) : void
'label' => 'Description',
'required' => true,
'attr' => [
- 'help_block' => '',
'class' => 'tinymce',
],
]);
diff --git a/src/Form/InjunctionType.php b/src/Form/InjunctionType.php
index 6d6aca4..aadc725 100644
--- a/src/Form/InjunctionType.php
+++ b/src/Form/InjunctionType.php
@@ -2,12 +2,6 @@
declare(strict_types=1);
-/*
- * (c) 2022 Michael Joyce
- * This source file is subject to the GPL v2, bundled
- * with this source code in the file LICENSE.
- */
-
namespace App\Form;
use App\Entity\Archdeaconry;
@@ -32,7 +26,9 @@
* Injunction form.
*/
class InjunctionType extends AbstractType {
- private ?LinkableMapper $mapper = null;
+ public function __construct(
+ private LinkableMapper $mapper,
+ ) {}
/**
* Add form fields to $builder.
@@ -41,15 +37,12 @@ public function buildForm(FormBuilderInterface $builder, array $options) : void
$builder->add('title', TextType::class, [
'label' => 'Title',
'required' => true,
- 'attr' => [
- 'help_block' => 'As it appears in the ESTC',
- ],
+ 'help' => 'As it appears in the ESTC',
]);
$builder->add('uniformTitle', TextareaType::class, [
'label' => 'Uniform Title',
'required' => false,
'attr' => [
- 'help_block' => '',
'class' => 'tinymce',
],
]);
@@ -64,46 +57,40 @@ public function buildForm(FormBuilderInterface $builder, array $options) : void
'label' => false,
],
'by_reference' => false,
+ 'help' => "Year, followed by the title in modern English. Eg. '1631, A thanksgiving, and prayer for the safe child bearing of the queen's majesty'. Also add any other variant titles listed in the ESTC.",
'attr' => [
'class' => 'collection collection-simple',
- 'help_block' => "Year, followed by the title in modern English. Eg. '1631, A thanksgiving, and prayer for the safe child bearing of the queen's majesty'. Also add any other variant titles listed in the ESTC.",
],
]);
$builder->add('author', TextType::class, [
'label' => 'Author',
'required' => false,
- 'attr' => [
- 'help_block' => '',
- ],
]);
$builder->add('imprint', TextareaType::class, [
'label' => 'Imprint',
'required' => false,
+ 'help' => 'Imprint as noted on the ESTC',
'attr' => [
'class' => 'tinymce',
- 'help_block' => 'Imprint as noted on the ESTC',
],
]);
$builder->add('variantImprint', TextareaType::class, [
'label' => 'Imprint, Modern English',
'required' => false,
+ 'help' => 'Original spelling imprint and any variations of it',
'attr' => [
- 'help_block' => 'Original spelling imprint and any variations of it',
'class' => 'tinymce',
],
]);
$builder->add('date', TextType::class, [
'label' => 'Date',
'required' => false,
- 'attr' => [
- 'help_block' => '',
- ],
]);
$builder->add('physicalDescription', TextareaType::class, [
'label' => 'Physical Description',
'required' => false,
+ 'help' => 'Public description of the physicality of the item.',
'attr' => [
- 'help_block' => 'Public description of the physicality of the item.',
'class' => 'tinymce',
],
]);
@@ -111,8 +98,8 @@ public function buildForm(FormBuilderInterface $builder, array $options) : void
$builder->add('transcription', TextareaType::class, [
'label' => 'Transcribed Excerpt',
'required' => true,
+ 'help' => 'Public transcription of the item.',
'attr' => [
- 'help_block' => 'Public transcription of the item.',
'class' => 'tinymce',
],
]);
@@ -120,8 +107,8 @@ public function buildForm(FormBuilderInterface $builder, array $options) : void
$builder->add('modernTranscription', TextareaType::class, [
'label' => 'Modern English',
'required' => false,
+ 'help' => 'Provide a modern English equivalent of the manuscript entry',
'attr' => [
- 'help_block' => 'Provide a modern English equivalent of the manuscript entry',
'class' => 'tinymce',
],
]);
@@ -131,8 +118,7 @@ public function buildForm(FormBuilderInterface $builder, array $options) : void
'class' => Nation::class,
'remote_route' => 'nation_typeahead',
'attr' => [
- 'help_block' => '',
- 'add_path' => 'nation_new_popup',
+ 'add_path' => 'nation_new',
'add_label' => 'Add Nation',
],
]);
@@ -142,8 +128,7 @@ public function buildForm(FormBuilderInterface $builder, array $options) : void
'class' => Province::class,
'remote_route' => 'province_typeahead',
'attr' => [
- 'help_block' => '',
- 'add_path' => 'province_new_popup',
+ 'add_path' => 'province_new',
'add_label' => 'Add Province',
],
]);
@@ -153,8 +138,7 @@ public function buildForm(FormBuilderInterface $builder, array $options) : void
'class' => Diocese::class,
'remote_route' => 'diocese_typeahead',
'attr' => [
- 'help_block' => '',
- 'add_path' => 'diocese_new_popup',
+ 'add_path' => 'diocese_new',
'add_label' => 'Add Diocese',
],
]);
@@ -164,8 +148,7 @@ public function buildForm(FormBuilderInterface $builder, array $options) : void
'class' => Archdeaconry::class,
'remote_route' => 'archdeaconry_typeahead',
'attr' => [
- 'help_block' => '',
- 'add_path' => 'archdeaconry_new_popup',
+ 'add_path' => 'archdeaconry_new',
'add_label' => 'Add Archdeaconry',
],
]);
@@ -176,30 +159,19 @@ public function buildForm(FormBuilderInterface $builder, array $options) : void
'class' => Monarch::class,
'remote_route' => 'monarch_typeahead',
'attr' => [
- 'help_block' => '',
- 'add_path' => 'monarch_new_popup',
+ 'add_path' => 'monarch_new',
'add_label' => 'Add Monarch',
],
]);
$builder->add('estc', TextType::class, [
'label' => 'ESTC',
'required' => false,
- 'attr' => [
- 'help_block' => '',
- ],
]);
NotesType::add($builder, $options);
LinkableType::add($builder, $options);
$builder->setDataMapper($this->mapper);
}
- /**
- * @required
- */
- public function setMapper(LinkableMapper $mapper) : void {
- $this->mapper = $mapper;
- }
-
/**
* Define options for the form.
*
diff --git a/src/Form/InventoryType.php b/src/Form/InventoryType.php
index 5dde958..699b263 100644
--- a/src/Form/InventoryType.php
+++ b/src/Form/InventoryType.php
@@ -2,12 +2,6 @@
declare(strict_types=1);
-/*
- * (c) 2022 Michael Joyce
- * This source file is subject to the GPL v2, bundled
- * with this source code in the file LICENSE.
- */
-
namespace App\Form;
use App\Entity\Book;
@@ -40,40 +34,35 @@ public function buildForm(FormBuilderInterface $builder, array $options) : void
'class' => Parish::class,
'remote_route' => 'parish_typeahead',
'attr' => [
- 'help_block' => '',
- 'add_path' => 'parish_new_popup',
+ 'add_path' => 'parish_new',
'add_label' => 'Add Parish',
],
]);
$builder->add('manuscriptSource', Select2EntityType::class, [
- 'label' => 'Source',
+ 'label' => 'Manuscript Source',
'required' => false,
'class' => ManuscriptSource::class,
'remote_route' => 'manuscript_source_typeahead',
'attr' => [
- 'help_block' => '',
- 'add_path' => 'manuscript_source_new_popup',
- 'add_label' => 'Add Source',
+ 'add_path' => 'manuscript_source_new',
+ 'add_label' => 'Add Manuscript Source',
],
]);
$builder->add('printSource', Select2EntityType::class, [
- 'label' => 'Source',
+ 'label' => 'Print Source',
'required' => false,
'class' => PrintSource::class,
'remote_route' => 'print_source_typeahead',
'attr' => [
- 'help_block' => '',
- 'add_path' => 'print_source_new_popup',
- 'add_label' => 'Add Source',
+ 'add_path' => 'print_source_new',
+ 'add_label' => 'Add Print Source',
],
]);
$builder->add('pageNumber', TextType::class, [
'label' => 'Page',
'required' => false,
- 'attr' => [
- 'help_block' => 'Enter a page number (p. 5) or folio location (fo. 2 verso).',
- ],
+ 'help' => 'Enter a page number (p. 5) or folio location (fo. 2 verso).',
]);
$builder->add('injunction', Select2EntityType::class, [
@@ -82,8 +71,7 @@ public function buildForm(FormBuilderInterface $builder, array $options) : void
'remote_route' => 'injunction_typeahead',
'allow_clear' => true,
'attr' => [
- 'help_block' => '',
- 'add_path' => 'injunction_new_popup',
+ 'add_path' => 'injunction_new',
'add_label' => 'Add Injunction',
],
]);
@@ -94,8 +82,7 @@ public function buildForm(FormBuilderInterface $builder, array $options) : void
'class' => Monarch::class,
'remote_route' => 'monarch_typeahead',
'attr' => [
- 'help_block' => '',
- 'add_path' => 'monarch_new_popup',
+ 'add_path' => 'monarch_new',
'add_label' => 'Add Monarch',
],
]);
@@ -108,8 +95,7 @@ public function buildForm(FormBuilderInterface $builder, array $options) : void
'page_limit' => 10,
'allow_clear' => true,
'attr' => [
- 'help_block' => '',
- 'add_path' => 'book_new_popup',
+ 'add_path' => 'book_new',
'add_label' => 'Add Book',
],
]);
@@ -119,22 +105,20 @@ public function buildForm(FormBuilderInterface $builder, array $options) : void
'label' => 'Transcription',
'required' => true,
'attr' => [
- 'help_block' => '',
'class' => 'tinymce',
],
]);
$builder->add('modifications', TextareaType::class, [
'label' => 'Modern English',
'attr' => [
- 'help_block' => '',
'class' => 'tinymce',
],
]);
$builder->add('description', TextareaType::class, [
- 'label' => 'Notes',
+ 'label' => 'Description',
'required' => false,
+ 'help' => 'Public notes about the item.',
'attr' => [
- 'help_block' => 'Public notes about the item.',
'class' => 'tinymce',
],
]);
diff --git a/src/Form/ManuscriptSourceType.php b/src/Form/ManuscriptSourceType.php
index fd484ac..08e2e5c 100644
--- a/src/Form/ManuscriptSourceType.php
+++ b/src/Form/ManuscriptSourceType.php
@@ -2,12 +2,6 @@
declare(strict_types=1);
-/*
- * (c) 2022 Michael Joyce
- * This source file is subject to the GPL v2, bundled
- * with this source code in the file LICENSE.
- */
-
namespace App\Form;
use App\Entity\Archive;
@@ -25,7 +19,9 @@
* Source form.
*/
class ManuscriptSourceType extends TermType {
- private ?LinkableMapper $mapper = null;
+ public function __construct(
+ private LinkableMapper $mapper,
+ ) {}
/**
* Add form fields to $builder.
@@ -35,9 +31,6 @@ public function buildForm(FormBuilderInterface $builder, array $options) : void
$builder->add('callNumber', TextType::class, [
'label' => 'Call Number',
'required' => false,
- 'attr' => [
- 'help_block' => '',
- ],
]);
$builder->add('sourceCategory', Select2EntityType::class, [
@@ -46,8 +39,7 @@ public function buildForm(FormBuilderInterface $builder, array $options) : void
'remote_route' => 'source_category_typeahead',
'allow_clear' => true,
'attr' => [
- 'help_block' => '',
- 'add_path' => 'source_category_new_popup',
+ 'add_path' => 'source_category_new',
'add_label' => 'Add SourceCategory',
],
]);
@@ -58,8 +50,7 @@ public function buildForm(FormBuilderInterface $builder, array $options) : void
'remote_route' => 'archive_typeahead',
'allow_clear' => true,
'attr' => [
- 'help_block' => '',
- 'add_path' => 'archive_new_popup',
+ 'add_path' => 'archive_new',
'add_label' => 'Add Archive',
],
]);
@@ -67,13 +58,6 @@ public function buildForm(FormBuilderInterface $builder, array $options) : void
$builder->setDataMapper($this->mapper);
}
- /**
- * @required
- */
- public function setMapper(LinkableMapper $mapper) : void {
- $this->mapper = $mapper;
- }
-
/**
* Define options for the form.
*
diff --git a/src/Form/Mapper/LsdMapper.php b/src/Form/Mapper/LsdMapper.php
index ac470ae..d523e06 100644
--- a/src/Form/Mapper/LsdMapper.php
+++ b/src/Form/Mapper/LsdMapper.php
@@ -2,23 +2,17 @@
declare(strict_types=1);
-/*
- * (c) 2022 Michael Joyce
- * This source file is subject to the GPL v2, bundled
- * with this source code in the file LICENSE.
- */
-
namespace App\Form\Mapper;
use App\Entity\Transaction;
use Symfony\Component\Form\DataMapperInterface;
use Symfony\Component\Form\Exception\UnexpectedTypeException;
-use Symfony\Component\Form\Extension\Core\DataMapper\PropertyPathMapper;
+use Symfony\Component\Form\Extension\Core\DataMapper\DataMapper;
use Symfony\Component\Form\FormInterface;
use Traversable;
-class LsdMapper extends PropertyPathMapper implements DataMapperInterface {
- public function mapDataToForms($viewData, $forms) : void {
+class LsdMapper extends DataMapper implements DataMapperInterface {
+ public function mapDataToForms(mixed $viewData, Traversable $forms) : void {
if (null === $viewData) {
return;
}
@@ -42,11 +36,7 @@ public function mapDataToForms($viewData, $forms) : void {
$formData['sd']->setData($sd);
}
- /**
- * @param FormInterface[]|Traversable $forms
- * @param Transaction $viewData
- */
- public function mapFormsToData($forms, &$viewData) : void {
+ public function mapFormsToData(Traversable $forms, mixed &$viewData) : void {
parent::mapFormsToData($forms, $viewData);
/** @var FormInterface[] $formData */
diff --git a/src/Form/MonarchType.php b/src/Form/MonarchType.php
index d250614..456bc84 100644
--- a/src/Form/MonarchType.php
+++ b/src/Form/MonarchType.php
@@ -2,12 +2,6 @@
declare(strict_types=1);
-/*
- * (c) 2022 Michael Joyce
- * This source file is subject to the GPL v2, bundled
- * with this source code in the file LICENSE.
- */
-
namespace App\Form;
use App\Entity\Monarch;
@@ -29,17 +23,17 @@ public function buildForm(FormBuilderInterface $builder, array $options) : void
$builder->add('startDate', TextType::class, [
'label' => 'Start Date',
'required' => true,
+ 'help' => 'Enter the date or earliest possible date.',
'attr' => [
'placeholder' => 'yyyy-mm-dd',
- 'help_block' => 'Enter the date or earliest possible date.',
],
]);
$builder->add('endDate', TextType::class, [
'label' => 'End Date',
'required' => true,
+ 'help' => 'Enter the latest possible date if the date is uncertain.',
'attr' => [
'placeholder' => 'yyyy-mm-dd',
- 'help_block' => 'Enter the latest possible date if the date is uncertain.',
],
]);
}
diff --git a/src/Form/NationType.php b/src/Form/NationType.php
index a2c0c04..0d68a79 100644
--- a/src/Form/NationType.php
+++ b/src/Form/NationType.php
@@ -2,12 +2,6 @@
declare(strict_types=1);
-/*
- * (c) 2022 Michael Joyce
- * This source file is subject to the GPL v2, bundled
- * with this source code in the file LICENSE.
- */
-
namespace App\Form;
use App\Entity\Nation;
diff --git a/src/Form/ParishType.php b/src/Form/ParishType.php
index 389d113..e1615a3 100644
--- a/src/Form/ParishType.php
+++ b/src/Form/ParishType.php
@@ -2,12 +2,6 @@
declare(strict_types=1);
-/*
- * (c) 2022 Michael Joyce
- * This source file is subject to the GPL v2, bundled
- * with this source code in the file LICENSE.
- */
-
namespace App\Form;
use App\Entity\Archdeaconry;
@@ -26,7 +20,9 @@
* Parish form.
*/
class ParishType extends TermType {
- private ?LinkableMapper $mapper = null;
+ public function __construct(
+ private LinkableMapper $mapper,
+ ) {}
/**
* Add form fields to $builder.
@@ -41,7 +37,6 @@ public function buildForm(FormBuilderInterface $builder, array $options) : void
'scale' => 8,
'required' => false,
'attr' => [
- 'help_block' => '',
'step' => 'any',
],
]);
@@ -52,7 +47,6 @@ public function buildForm(FormBuilderInterface $builder, array $options) : void
'scale' => 8,
'required' => false,
'attr' => [
- 'help_block' => '',
'step' => 'any',
],
]);
@@ -60,9 +54,7 @@ public function buildForm(FormBuilderInterface $builder, array $options) : void
$builder->add('address', TextareaType::class, [
'label' => 'Address',
'required' => false,
- 'attr' => [
- 'help_block' => 'Enter a street address of the parish church, if known',
- ],
+ 'help' => 'Enter a street address of the parish church, if known',
]);
$builder->add('archdeaconry', Select2EntityType::class, [
@@ -71,8 +63,7 @@ public function buildForm(FormBuilderInterface $builder, array $options) : void
'remote_route' => 'archdeaconry_typeahead',
'allow_clear' => true,
'attr' => [
- 'help_block' => '',
- 'add_path' => 'archdeaconry_new_popup',
+ 'add_path' => 'archdeaconry_new',
'add_label' => 'Add Archdeaconry',
],
]);
@@ -83,9 +74,9 @@ public function buildForm(FormBuilderInterface $builder, array $options) : void
'remote_route' => 'town_typeahead',
'allow_clear' => true,
'required' => false,
+ 'help' => 'Town or Ward if in London or blank for a rural parish',
'attr' => [
- 'help_block' => 'Town or Ward if in London or blank for a rural parish',
- 'add_path' => 'town_new_popup',
+ 'add_path' => 'town_new',
'add_label' => 'Add Town',
],
]);
@@ -93,13 +84,6 @@ public function buildForm(FormBuilderInterface $builder, array $options) : void
$builder->setDataMapper($this->mapper);
}
- /**
- * @required
- */
- public function setMapper(LinkableMapper $mapper) : void {
- $this->mapper = $mapper;
- }
-
/**
* Define options for the form.
*
diff --git a/src/Form/Partial/DatedType.php b/src/Form/Partial/DatedType.php
index 1ae8ac9..508b5cd 100644
--- a/src/Form/Partial/DatedType.php
+++ b/src/Form/Partial/DatedType.php
@@ -2,12 +2,6 @@
declare(strict_types=1);
-/*
- * (c) 2022 Michael Joyce
- * This source file is subject to the GPL v2, bundled
- * with this source code in the file LICENSE.
- */
-
namespace App\Form\Partial;
use Symfony\Component\Form\Extension\Core\Type\TextType;
@@ -18,25 +12,25 @@ public static function buildForm(FormBuilderInterface $builder, array $options)
$builder->add('startDate', TextType::class, [
'label' => 'Start Date',
'required' => true,
+ 'help' => 'Enter the date or earliest possible date.',
'attr' => [
'placeholder' => 'yyyy-mm-dd',
- 'help_block' => 'Enter the date or earliest possible date.',
],
]);
$builder->add('endDate', TextType::class, [
'label' => 'End Date',
'required' => false,
+ 'help' => 'Enter the latest possible date if the date is uncertain.',
'attr' => [
'placeholder' => 'yyyy-mm-dd',
- 'help_block' => 'Enter the latest possible date if the date is uncertain.',
],
]);
$builder->add('writtenDate', TextType::class, [
'label' => 'Written Date',
'required' => false,
+ 'help' => 'Transcribe the date as written.',
'attr' => [
'placeholder' => '',
- 'help_block' => 'Transcribe the date as written.',
],
]);
}
diff --git a/src/Form/Partial/NotesType.php b/src/Form/Partial/NotesType.php
index 2d67313..9712c85 100644
--- a/src/Form/Partial/NotesType.php
+++ b/src/Form/Partial/NotesType.php
@@ -2,12 +2,6 @@
declare(strict_types=1);
-/*
- * (c) 2022 Michael Joyce
- * This source file is subject to the GPL v2, bundled
- * with this source code in the file LICENSE.
- */
-
namespace App\Form\Partial;
use App\Entity\Archdeaconry;
@@ -24,10 +18,10 @@ class NotesType extends TermType {
*/
public static function add(FormBuilderInterface $builder, array $options) : void {
$builder->add('notes', TextareaType::class, [
- 'label' => 'Notes',
+ 'label' => 'Private Notes',
'required' => false,
+ 'help' => 'Private notes about the item. Never shown to the public.',
'attr' => [
- 'help_block' => 'Private notes about the item. Never shown to the public.',
'class' => 'tinymce',
],
]);
diff --git a/src/Form/PrintSourceType.php b/src/Form/PrintSourceType.php
index 67fb901..b701b79 100644
--- a/src/Form/PrintSourceType.php
+++ b/src/Form/PrintSourceType.php
@@ -2,12 +2,6 @@
declare(strict_types=1);
-/*
- * (c) 2022 Michael Joyce
- * This source file is subject to the GPL v2, bundled
- * with this source code in the file LICENSE.
- */
-
namespace App\Form;
use App\Entity\PrintSource;
@@ -26,7 +20,9 @@
* PrintSource form.
*/
class PrintSourceType extends AbstractType {
- private ?LinkableMapper $mapper = null;
+ public function __construct(
+ private LinkableMapper $mapper,
+ ) {}
/**
* Add form fields to $builder.
@@ -37,9 +33,6 @@ public function buildForm(FormBuilderInterface $builder, array $options) : void
$builder->add('title', TextType::class, [
'label' => 'Title',
'required' => true,
- 'attr' => [
- 'help_block' => '',
- ],
]);
$builder->add('sourceCategory', Select2EntityType::class, [
'label' => 'SourceCategory',
@@ -47,31 +40,21 @@ public function buildForm(FormBuilderInterface $builder, array $options) : void
'remote_route' => 'source_category_typeahead',
'allow_clear' => true,
'attr' => [
- 'help_block' => '',
- 'add_path' => 'source_category_new_popup',
+ 'add_path' => 'source_category_new',
'add_label' => 'Add SourceCategory',
],
]);
$builder->add('author', TextType::class, [
'label' => 'Author',
'required' => false,
- 'attr' => [
- 'help_block' => '',
- ],
]);
$builder->add('date', TextType::class, [
'label' => 'Date',
'required' => false,
- 'attr' => [
- 'help_block' => '',
- ],
]);
$builder->add('publisher', TextType::class, [
'label' => 'Publisher',
'required' => false,
- 'attr' => [
- 'help_block' => '',
- ],
]);
NotesType::add($builder, $options);
LinkableType::add($builder, $options);
@@ -89,11 +72,4 @@ public function configureOptions(OptionsResolver $resolver) : void {
'data_class' => PrintSource::class,
]);
}
-
- /**
- * @required
- */
- public function setMapper(LinkableMapper $mapper) : void {
- $this->mapper = $mapper;
- }
}
diff --git a/src/Form/ProvinceType.php b/src/Form/ProvinceType.php
index d8aabc8..d8d7a3c 100644
--- a/src/Form/ProvinceType.php
+++ b/src/Form/ProvinceType.php
@@ -2,16 +2,10 @@
declare(strict_types=1);
-/*
- * (c) 2022 Michael Joyce
- * This source file is subject to the GPL v2, bundled
- * with this source code in the file LICENSE.
- */
-
namespace App\Form;
use App\Entity\Nation;
- use App\Entity\Province;
+use App\Entity\Province;
use Nines\MediaBundle\Form\LinkableType;
use Nines\MediaBundle\Form\Mapper\LinkableMapper;
use Nines\UtilBundle\Form\TermType;
@@ -23,7 +17,9 @@
* Province form.
*/
class ProvinceType extends TermType {
- private ?LinkableMapper $mapper = null;
+ public function __construct(
+ private LinkableMapper $mapper,
+ ) {}
/**
* Add form fields to $builder.
@@ -36,8 +32,7 @@ public function buildForm(FormBuilderInterface $builder, array $options) : void
'remote_route' => 'nation_typeahead',
'allow_clear' => true,
'attr' => [
- 'help_block' => '',
- 'add_path' => 'nation_new_popup',
+ 'add_path' => 'nation_new',
'add_label' => 'Add Nation',
],
]);
@@ -45,13 +40,6 @@ public function buildForm(FormBuilderInterface $builder, array $options) : void
$builder->setDataMapper($this->mapper);
}
- /**
- * @required
- */
- public function setMapper(LinkableMapper $mapper) : void {
- $this->mapper = $mapper;
- }
-
/**
* Define options for the form.
*
diff --git a/src/Form/SourceCategoryType.php b/src/Form/SourceCategoryType.php
index 7fcc167..8abfedf 100644
--- a/src/Form/SourceCategoryType.php
+++ b/src/Form/SourceCategoryType.php
@@ -2,12 +2,6 @@
declare(strict_types=1);
-/*
- * (c) 2022 Michael Joyce
- * This source file is subject to the GPL v2, bundled
- * with this source code in the file LICENSE.
- */
-
namespace App\Form;
use App\Entity\SourceCategory;
diff --git a/src/Form/TownType.php b/src/Form/TownType.php
index 5052433..ac88f1b 100644
--- a/src/Form/TownType.php
+++ b/src/Form/TownType.php
@@ -2,12 +2,6 @@
declare(strict_types=1);
-/*
- * (c) 2022 Michael Joyce
- * This source file is subject to the GPL v2, bundled
- * with this source code in the file LICENSE.
- */
-
namespace App\Form;
use App\Entity\County;
@@ -24,7 +18,9 @@
* Town form.
*/
class TownType extends TermType {
- private ?LinkableMapper $mapper = null;
+ public function __construct(
+ private LinkableMapper $mapper,
+ ) {}
/**
* Add form fields to $builder.
@@ -41,9 +37,7 @@ public function buildForm(FormBuilderInterface $builder, array $options) : void
'No' => false,
],
'required' => true,
- 'attr' => [
- 'help_block' => 'Yes if this is a Ward in the City of London',
- ],
+ 'help' => 'Yes if this is a Ward in the City of London',
]);
$builder->add('county', Select2EntityType::class, [
@@ -52,8 +46,7 @@ public function buildForm(FormBuilderInterface $builder, array $options) : void
'remote_route' => 'county_typeahead',
'allow_clear' => true,
'attr' => [
- 'help_block' => '',
- 'add_path' => 'county_new_popup',
+ 'add_path' => 'county_new',
'add_label' => 'Add County',
],
]);
@@ -61,13 +54,6 @@ public function buildForm(FormBuilderInterface $builder, array $options) : void
$builder->setDataMapper($this->mapper);
}
- /**
- * @required
- */
- public function setMapper(LinkableMapper $mapper) : void {
- $this->mapper = $mapper;
- }
-
/**
* Define options for the form.
*
diff --git a/src/Form/TransactionCategoryType.php b/src/Form/TransactionCategoryType.php
index 80b2846..0270458 100644
--- a/src/Form/TransactionCategoryType.php
+++ b/src/Form/TransactionCategoryType.php
@@ -2,12 +2,6 @@
declare(strict_types=1);
-/*
- * (c) 2022 Michael Joyce
- * This source file is subject to the GPL v2, bundled
- * with this source code in the file LICENSE.
- */
-
namespace App\Form;
use App\Entity\TransactionCategory;
diff --git a/src/Form/TransactionType.php b/src/Form/TransactionType.php
index beeeb2f..c81e7c1 100644
--- a/src/Form/TransactionType.php
+++ b/src/Form/TransactionType.php
@@ -2,12 +2,6 @@
declare(strict_types=1);
-/*
- * (c) 2022 Michael Joyce
- * This source file is subject to the GPL v2, bundled
- * with this source code in the file LICENSE.
- */
-
namespace App\Form;
use App\Entity\Book;
@@ -82,40 +76,35 @@ public function buildForm(FormBuilderInterface $builder, array $options) : void
$builder->add('copies', NumberType::class, [
'label' => 'Copies',
'required' => false,
- 'attr' => [
- 'help_block' => '',
- ],
]);
$builder->add('location', TextType::class, [
'label' => 'Location',
'required' => false,
- 'attr' => [
- 'help_block' => 'Enter the location or parish if it is different from the parish you are working on. For example, if a book was purchased in Oxford for a London parish, enter “Oxford” or “Oxford, All Saints.”',
- ],
+ 'help' => 'Enter the location or parish if it is different from the parish you are working on. For example, if a book was purchased in Oxford for a London parish, enter “Oxford” or “Oxford, All Saints.”',
]);
$builder->add('transcription', TextareaType::class, [
'label' => 'Transcription',
'required' => false,
+ 'help' => 'Provide a semi-diplomatic transcript of the manuscript entry',
'attr' => [
- 'help_block' => 'Provide a semi-diplomatic transcript of the manuscript entry',
'class' => 'tinymce',
],
]);
$builder->add('modernTranscription', TextareaType::class, [
'label' => 'Modern English',
'required' => false,
+ 'help' => 'Provide a modern English equivalent of the manuscript entry',
'attr' => [
- 'help_block' => 'Provide a modern English equivalent of the manuscript entry',
'class' => 'tinymce',
],
]);
$builder->add('publicNotes', TextareaType::class, [
'label' => 'Public Notes',
'required' => false,
+ 'help' => 'Provide any contextual or descriptive notes about the physical appearance of the entry',
'attr' => [
- 'help_block' => 'Provide any contextual or descriptive notes about the physical appearance of the entry',
'class' => 'tinymce',
],
]);
@@ -129,8 +118,7 @@ public function buildForm(FormBuilderInterface $builder, array $options) : void
'page_limit' => 10,
'allow_clear' => true,
'attr' => [
- 'help_block' => '',
- 'add_path' => 'book_new_popup',
+ 'add_path' => 'book_new',
'add_label' => 'Add Book',
],
]);
@@ -142,8 +130,7 @@ public function buildForm(FormBuilderInterface $builder, array $options) : void
'allow_clear' => false,
'required' => true,
'attr' => [
- 'help_block' => '',
- 'add_path' => 'parish_new_popup',
+ 'add_path' => 'parish_new',
'add_label' => 'Add Parish',
],
]);
@@ -155,8 +142,7 @@ public function buildForm(FormBuilderInterface $builder, array $options) : void
'allow_clear' => true,
'required' => false,
'attr' => [
- 'help_block' => '',
- 'add_path' => 'manuscript_source_new_popup',
+ 'add_path' => 'manuscript_source_new',
'add_label' => 'Add MS Source',
],
]);
@@ -167,17 +153,14 @@ public function buildForm(FormBuilderInterface $builder, array $options) : void
'class' => PrintSource::class,
'remote_route' => 'print_source_typeahead',
'attr' => [
- 'help_block' => '',
- 'add_path' => 'print_source_new_popup',
+ 'add_path' => 'print_source_new',
'add_label' => 'Add Print Source',
],
]);
$builder->add('page', TextType::class, [
'label' => 'Page',
'required' => false,
- 'attr' => [
- 'help_block' => 'Enter a page number (p. 5) or folio location (fo. 2 verso).',
- ],
+ 'help' => 'Enter a page number (p. 5) or folio location (fo. 2 verso).',
]);
$builder->add('transactionCategories', EntityType::class, [
@@ -187,9 +170,9 @@ public function buildForm(FormBuilderInterface $builder, array $options) : void
'class' => TransactionCategory::class,
'choice_label' => 'label',
'query_builder' => fn (EntityRepository $r) => $r->createQueryBuilder('c')->orderBy('c.label'),
-
'attr' => [
- 'help_block' => 'Select categories by holding the Ctrl, Command, or Shift keys depending on your operating system.',
+ 'class' => 'select2-simple',
+ 'data-theme' => 'bootstrap-5',
],
]);
@@ -199,8 +182,7 @@ public function buildForm(FormBuilderInterface $builder, array $options) : void
'remote_route' => 'injunction_typeahead',
'allow_clear' => true,
'attr' => [
- 'help_block' => '',
- 'add_path' => 'injunction_new_popup',
+ 'add_path' => 'injunction_new',
'add_label' => 'Add Injunction',
],
]);
@@ -211,8 +193,7 @@ public function buildForm(FormBuilderInterface $builder, array $options) : void
'class' => Monarch::class,
'remote_route' => 'monarch_typeahead',
'attr' => [
- 'help_block' => '',
- 'add_path' => 'monarch_new_popup',
+ 'add_path' => 'monarch_new',
'add_label' => 'Add Monarch',
],
]);
diff --git a/src/Kernel.php b/src/Kernel.php
index 1cd0572..965d5dc 100644
--- a/src/Kernel.php
+++ b/src/Kernel.php
@@ -1,16 +1,14 @@
addResource(new FileResource($this->getProjectDir().'/config/bundles.php'));
- $container->setParameter('container.dumper.inline_class_loader', \PHP_VERSION_ID < 70400 || $this->debug);
- $container->setParameter('container.dumper.inline_factories', true);
- $confDir = $this->getProjectDir().'/config';
+ $parametersConfigurator = $containerConfigurator->parameters();
+ $parametersConfigurator->set('container.dumper.inline_class_loader', $this->debug);
+ $parametersConfigurator->set('container.dumper.inline_factories', true);
- $loader->load($confDir.'/{packages}/*'.self::CONFIG_EXTS, 'glob');
- $loader->load($confDir.'/{packages}/'.$this->environment.'/*'.self::CONFIG_EXTS, 'glob');
- $loader->load($confDir.'/{services}'.self::CONFIG_EXTS, 'glob');
- $loader->load($confDir.'/{services}_'.$this->environment.self::CONFIG_EXTS, 'glob');
+ $confDir = $this->getProjectDir().'/config';
+ $containerConfigurator->import($confDir.'/{packages}/*'.self::CONFIG_EXTS, 'glob');
+ $containerConfigurator->import($confDir.'/{packages}/'.$this->environment.'/*'.self::CONFIG_EXTS, 'glob');
+ $containerConfigurator->import($confDir.'/{services}'.self::CONFIG_EXTS, 'glob');
+ $containerConfigurator->import($confDir.'/{services}_'.$this->environment.self::CONFIG_EXTS, 'glob');
}
- protected function configureRoutes(RouteCollectionBuilder $routes): void
+ private function getBundlesPath(): string
{
- $confDir = $this->getProjectDir().'/config';
-
- $routes->import($confDir.'/{routes}/'.$this->environment.'/*'.self::CONFIG_EXTS, '/', 'glob');
- $routes->import($confDir.'/{routes}/*'.self::CONFIG_EXTS, '/', 'glob');
- $routes->import($confDir.'/{routes}'.self::CONFIG_EXTS, '/', 'glob');
+ return $this->getProjectDir().'/config/bundles.php';
}
}
diff --git a/src/Menu/Builder.php b/src/Menu/Builder.php
index 5c2b4ca..c48a3e6 100644
--- a/src/Menu/Builder.php
+++ b/src/Menu/Builder.php
@@ -2,12 +2,6 @@
declare(strict_types=1);
-/*
- * (c) 2022 Michael Joyce
- * This source file is subject to the GPL v2, bundled
- * with this source code in the file LICENSE.
- */
-
namespace App\Menu;
use Knp\Menu\ItemInterface;
@@ -17,60 +11,153 @@
* Class to build some menus for navigation.
*/
class Builder extends AbstractBuilder {
- /**
- * Build a menu for navigation.
- *
- * @return ItemInterface
- */
- public function mainMenu(array $options) {
- $menu = $this->dropdown('Browse');
- $menu->addChild('Archdeaconries & Courts', ['route' => 'archdeaconry_index']);
- $menu->addChild('Archives', ['route' => 'archive_index']);
- $menu->addChild('Books', ['route' => 'book_index']);
- $menu->addChild('Counties', ['route' => 'county_index']);
- $menu->addChild('Dioceses', ['route' => 'diocese_index']);
- $menu->addChild('Injunctions', ['route' => 'injunction_index']);
- $menu->addChild('Inventories', ['route' => 'inventory_index']);
- $menu->addChild('Manuscript Sources', ['route' => 'manuscript_source_index']);
- $menu->addChild('Monarchs', ['route' => 'monarch_index']);
- $menu->addChild('Nations', ['route' => 'nation_index']);
- $menu->addChild('Parishes', ['route' => 'parish_index']);
- $menu->addChild('Print Sources', ['route' => 'print_source_index']);
- $menu->addChild('Provinces', ['route' => 'province_index']);
- $menu->addChild('Towns', ['route' => 'town_index']);
- $menu->addChild('Transactions', ['route' => 'transaction_index']);
- $menu->addChild('Surviving Texts', ['route' => 'holding_index']);
-
- if ($this->hasRole('ROLE_CONTENT_ADMIN')) {
- $this->addDivider($menu);
- $menu->addChild('Formats', ['route' => 'format_index']);
- $menu->addChild('Source Categories', ['route' => 'source_category_index']);
- $menu->addChild('Transaction Categories', ['route' => 'transaction_category_index']);
- }
-
- return $menu->getParent();
- }
-
- /**
- * Build a menu for navigation.
- *
- * @return ItemInterface
- */
- public function footerMenu(array $options) {
+ public function mainMenu(array $options) : ItemInterface {
$menu = $this->factory->createItem('root');
$menu->setChildrenAttributes([
'class' => 'nav navbar-nav',
]);
- $menu->addChild('Home', [
- 'route' => 'homepage',
+ $browse = $menu->addChild('Browse', [
+ 'uri' => '#',
+ 'label' => 'Browse',
+ 'attributes' => [
+ 'class' => 'nav-item dropdown',
+ ],
+ 'linkAttributes' => [
+ 'class' => 'nav-link dropdown-toggle',
+ 'role' => 'button',
+ 'data-bs-toggle' => 'dropdown',
+ 'id' => 'browse-dropdown',
+ ],
+ 'childrenAttributes' => [
+ 'class' => 'dropdown-menu text-small shadow dropdown-menu-end',
+ 'aria-labelledby' => 'browse-dropdown',
+ ],
+ ]);
+ $browse->addChild('Archdeaconries & Courts', [
+ 'route' => 'archdeaconry_index',
+ 'linkAttributes' => [
+ 'class' => 'dropdown-item link-dark',
+ ],
+ ]);
+ $browse->addChild('Archives', [
+ 'route' => 'archive_index',
+ 'linkAttributes' => [
+ 'class' => 'dropdown-item link-dark',
+ ],
+ ]);
+ $browse->addChild('Books', [
+ 'route' => 'book_index',
+ 'linkAttributes' => [
+ 'class' => 'dropdown-item link-dark',
+ ],
+ ]);
+ $browse->addChild('Counties', [
+ 'route' => 'county_index',
+ 'linkAttributes' => [
+ 'class' => 'dropdown-item link-dark',
+ ],
+ ]);
+ $browse->addChild('Dioceses', [
+ 'route' => 'diocese_index',
+ 'linkAttributes' => [
+ 'class' => 'dropdown-item link-dark',
+ ],
]);
- $menu->addChild('Privacy', [
- 'route' => 'privacy',
+ $browse->addChild('Injunctions', [
+ 'route' => 'injunction_index',
+ 'linkAttributes' => [
+ 'class' => 'dropdown-item link-dark',
+ ],
]);
- $menu->addChild('GitHub', [
- 'uri' => 'https://github.com/sfu-dhil/bep',
+ $browse->addChild('Inventories', [
+ 'route' => 'inventory_index',
+ 'linkAttributes' => [
+ 'class' => 'dropdown-item link-dark',
+ ],
]);
+ $browse->addChild('Manuscript Sources', [
+ 'route' => 'manuscript_source_index',
+ 'linkAttributes' => [
+ 'class' => 'dropdown-item link-dark',
+ ],
+ ]);
+ $browse->addChild('Monarchs', [
+ 'route' => 'monarch_index',
+ 'linkAttributes' => [
+ 'class' => 'dropdown-item link-dark',
+ ],
+ ]);
+ $browse->addChild('Nations', [
+ 'route' => 'nation_index',
+ 'linkAttributes' => [
+ 'class' => 'dropdown-item link-dark',
+ ],
+ ]);
+ $browse->addChild('Parishes', [
+ 'route' => 'parish_index',
+ 'linkAttributes' => [
+ 'class' => 'dropdown-item link-dark',
+ ],
+ ]);
+ $browse->addChild('Print Sources', [
+ 'route' => 'print_source_index',
+ 'linkAttributes' => [
+ 'class' => 'dropdown-item link-dark',
+ ],
+ ]);
+ $browse->addChild('Provinces', [
+ 'route' => 'province_index',
+ 'linkAttributes' => [
+ 'class' => 'dropdown-item link-dark',
+ ],
+ ]);
+ $browse->addChild('Towns', [
+ 'route' => 'town_index',
+ 'linkAttributes' => [
+ 'class' => 'dropdown-item link-dark',
+ ],
+ ]);
+ $browse->addChild('Transactions', [
+ 'route' => 'transaction_index',
+ 'linkAttributes' => [
+ 'class' => 'dropdown-item link-dark',
+ ],
+ ]);
+ $browse->addChild('Surviving Texts', [
+ 'route' => 'holding_index',
+ 'linkAttributes' => [
+ 'class' => 'dropdown-item link-dark',
+ ],
+ ]);
+
+ if ($this->hasRole('ROLE_CONTENT_ADMIN')) {
+ $browse->addChild('divider1', [
+ 'label' => '',
+ 'attributes' => [
+ 'role' => 'separator',
+ 'class' => 'divider',
+ ],
+ ]);
+ $browse->addChild('Formats', [
+ 'route' => 'format_index',
+ 'linkAttributes' => [
+ 'class' => 'dropdown-item link-dark',
+ ],
+ ]);
+ $browse->addChild('Source Categories', [
+ 'route' => 'source_category_index',
+ 'linkAttributes' => [
+ 'class' => 'dropdown-item link-dark',
+ ],
+ ]);
+ $browse->addChild('Transaction Categories', [
+ 'route' => 'transaction_category_index',
+ 'linkAttributes' => [
+ 'class' => 'dropdown-item link-dark',
+ ],
+ ]);
+ }
return $menu;
}
diff --git a/src/Repository/ArchdeaconryRepository.php b/src/Repository/ArchdeaconryRepository.php
index 8675824..63045b6 100644
--- a/src/Repository/ArchdeaconryRepository.php
+++ b/src/Repository/ArchdeaconryRepository.php
@@ -2,12 +2,6 @@
declare(strict_types=1);
-/*
- * (c) 2022 Michael Joyce
- * This source file is subject to the GPL v2, bundled
- * with this source code in the file LICENSE.
- */
-
namespace App\Repository;
use App\Entity\Archdeaconry;
diff --git a/src/Repository/ArchiveRepository.php b/src/Repository/ArchiveRepository.php
index 7831904..1d63cfe 100644
--- a/src/Repository/ArchiveRepository.php
+++ b/src/Repository/ArchiveRepository.php
@@ -2,12 +2,6 @@
declare(strict_types=1);
-/*
- * (c) 2022 Michael Joyce
- * This source file is subject to the GPL v2, bundled
- * with this source code in the file LICENSE.
- */
-
namespace App\Repository;
use App\Entity\Archive;
diff --git a/src/Repository/BookRepository.php b/src/Repository/BookRepository.php
index d0aa9d4..b376bfe 100644
--- a/src/Repository/BookRepository.php
+++ b/src/Repository/BookRepository.php
@@ -2,12 +2,6 @@
declare(strict_types=1);
-/*
- * (c) 2022 Michael Joyce
- * This source file is subject to the GPL v2, bundled
- * with this source code in the file LICENSE.
- */
-
namespace App\Repository;
use App\Entity\Book;
@@ -20,6 +14,7 @@
* @method Book[] findAll()
* @method Book[] findBy(array $criteria, array $orderBy = null, $limit = null, $offset = null)
* @method null|Book findOneBy(array $criteria, array $orderBy = null)
+ *
* @phpstan-extends ServiceEntityRepository
*/
class BookRepository extends ServiceEntityRepository {
diff --git a/src/Repository/CountyRepository.php b/src/Repository/CountyRepository.php
index b095450..ab9e494 100644
--- a/src/Repository/CountyRepository.php
+++ b/src/Repository/CountyRepository.php
@@ -2,12 +2,6 @@
declare(strict_types=1);
-/*
- * (c) 2022 Michael Joyce
- * This source file is subject to the GPL v2, bundled
- * with this source code in the file LICENSE.
- */
-
namespace App\Repository;
use App\Entity\County;
diff --git a/src/Repository/DioceseRepository.php b/src/Repository/DioceseRepository.php
index cc61e52..31ad294 100644
--- a/src/Repository/DioceseRepository.php
+++ b/src/Repository/DioceseRepository.php
@@ -2,12 +2,6 @@
declare(strict_types=1);
-/*
- * (c) 2022 Michael Joyce
- * This source file is subject to the GPL v2, bundled
- * with this source code in the file LICENSE.
- */
-
namespace App\Repository;
use App\Entity\Diocese;
diff --git a/src/Repository/FormatRepository.php b/src/Repository/FormatRepository.php
index 8175a9d..aa8fc4d 100644
--- a/src/Repository/FormatRepository.php
+++ b/src/Repository/FormatRepository.php
@@ -2,12 +2,6 @@
declare(strict_types=1);
-/*
- * (c) 2022 Michael Joyce
- * This source file is subject to the GPL v2, bundled
- * with this source code in the file LICENSE.
- */
-
namespace App\Repository;
use App\Entity\Format;
diff --git a/src/Repository/HoldingRepository.php b/src/Repository/HoldingRepository.php
index 42ab682..890166d 100644
--- a/src/Repository/HoldingRepository.php
+++ b/src/Repository/HoldingRepository.php
@@ -2,12 +2,6 @@
declare(strict_types=1);
-/*
- * (c) 2022 Michael Joyce
- * This source file is subject to the GPL v2, bundled
- * with this source code in the file LICENSE.
- */
-
namespace App\Repository;
use App\Entity\Holding;
@@ -20,6 +14,7 @@
* @method Holding[] findAll()
* @method Holding[] findBy(array $criteria, array $orderBy = null, $limit = null, $offset = null)
* @method null|Holding findOneBy(array $criteria, array $orderBy = null)
+ *
* @phpstan-extends ServiceEntityRepository
*/
class HoldingRepository extends ServiceEntityRepository {
diff --git a/src/Repository/InjunctionRepository.php b/src/Repository/InjunctionRepository.php
index f8947fe..f2938a4 100644
--- a/src/Repository/InjunctionRepository.php
+++ b/src/Repository/InjunctionRepository.php
@@ -2,12 +2,6 @@
declare(strict_types=1);
-/*
- * (c) 2022 Michael Joyce
- * This source file is subject to the GPL v2, bundled
- * with this source code in the file LICENSE.
- */
-
namespace App\Repository;
use App\Entity\Injunction;
@@ -20,6 +14,7 @@
* @method Injunction[] findAll()
* @method Injunction[] findBy(array $criteria, array $orderBy = null, $limit = null, $offset = null)
* @method null|Injunction findOneBy(array $criteria, array $orderBy = null)
+ *
* @phpstan-extends ServiceEntityRepository
*/
class InjunctionRepository extends ServiceEntityRepository {
diff --git a/src/Repository/InventoryRepository.php b/src/Repository/InventoryRepository.php
index 3430171..3f3f92d 100644
--- a/src/Repository/InventoryRepository.php
+++ b/src/Repository/InventoryRepository.php
@@ -2,12 +2,6 @@
declare(strict_types=1);
-/*
- * (c) 2022 Michael Joyce
- * This source file is subject to the GPL v2, bundled
- * with this source code in the file LICENSE.
- */
-
namespace App\Repository;
use App\Entity\Inventory;
@@ -20,6 +14,7 @@
* @method Inventory[] findAll()
* @method Inventory[] findBy(array $criteria, array $orderBy = null, $limit = null, $offset = null)
* @method null|Inventory findOneBy(array $criteria, array $orderBy = null)
+ *
* @phpstan-extends ServiceEntityRepository
*/
class InventoryRepository extends ServiceEntityRepository {
diff --git a/src/Repository/ManuscriptSourceRepository.php b/src/Repository/ManuscriptSourceRepository.php
index 0b7d1f0..a187074 100644
--- a/src/Repository/ManuscriptSourceRepository.php
+++ b/src/Repository/ManuscriptSourceRepository.php
@@ -2,12 +2,6 @@
declare(strict_types=1);
-/*
- * (c) 2022 Michael Joyce
- * This source file is subject to the GPL v2, bundled
- * with this source code in the file LICENSE.
- */
-
namespace App\Repository;
use App\Entity\ManuscriptSource;
diff --git a/src/Repository/MonarchRepository.php b/src/Repository/MonarchRepository.php
index 71e23dd..3fefd22 100644
--- a/src/Repository/MonarchRepository.php
+++ b/src/Repository/MonarchRepository.php
@@ -2,12 +2,6 @@
declare(strict_types=1);
-/*
- * (c) 2022 Michael Joyce
- * This source file is subject to the GPL v2, bundled
- * with this source code in the file LICENSE.
- */
-
namespace App\Repository;
use App\Entity\Monarch;
diff --git a/src/Repository/NationRepository.php b/src/Repository/NationRepository.php
index 144a189..297d413 100644
--- a/src/Repository/NationRepository.php
+++ b/src/Repository/NationRepository.php
@@ -2,12 +2,6 @@
declare(strict_types=1);
-/*
- * (c) 2022 Michael Joyce
- * This source file is subject to the GPL v2, bundled
- * with this source code in the file LICENSE.
- */
-
namespace App\Repository;
use App\Entity\Nation;
diff --git a/src/Repository/ParishRepository.php b/src/Repository/ParishRepository.php
index 082a4a1..ce631db 100644
--- a/src/Repository/ParishRepository.php
+++ b/src/Repository/ParishRepository.php
@@ -2,12 +2,6 @@
declare(strict_types=1);
-/*
- * (c) 2022 Michael Joyce
- * This source file is subject to the GPL v2, bundled
- * with this source code in the file LICENSE.
- */
-
namespace App\Repository;
use App\Entity\Parish;
diff --git a/src/Repository/PrintSourceRepository.php b/src/Repository/PrintSourceRepository.php
index 63fbe25..c2df710 100644
--- a/src/Repository/PrintSourceRepository.php
+++ b/src/Repository/PrintSourceRepository.php
@@ -2,12 +2,6 @@
declare(strict_types=1);
-/*
- * (c) 2022 Michael Joyce
- * This source file is subject to the GPL v2, bundled
- * with this source code in the file LICENSE.
- */
-
namespace App\Repository;
use App\Entity\PrintSource;
@@ -20,6 +14,7 @@
* @method PrintSource[] findAll()
* @method PrintSource[] findBy(array $criteria, array $orderBy = null, $limit = null, $offset = null)
* @method null|PrintSource findOneBy(array $criteria, array $orderBy = null)
+ *
* @phpstan-extends ServiceEntityRepository
*/
class PrintSourceRepository extends ServiceEntityRepository {
diff --git a/src/Repository/ProvinceRepository.php b/src/Repository/ProvinceRepository.php
index 05f4fe0..4bbab12 100644
--- a/src/Repository/ProvinceRepository.php
+++ b/src/Repository/ProvinceRepository.php
@@ -2,12 +2,6 @@
declare(strict_types=1);
-/*
- * (c) 2022 Michael Joyce
- * This source file is subject to the GPL v2, bundled
- * with this source code in the file LICENSE.
- */
-
namespace App\Repository;
use App\Entity\Province;
diff --git a/src/Repository/SourceCategoryRepository.php b/src/Repository/SourceCategoryRepository.php
index c98cc2e..b9cdc74 100644
--- a/src/Repository/SourceCategoryRepository.php
+++ b/src/Repository/SourceCategoryRepository.php
@@ -2,12 +2,6 @@
declare(strict_types=1);
-/*
- * (c) 2022 Michael Joyce
- * This source file is subject to the GPL v2, bundled
- * with this source code in the file LICENSE.
- */
-
namespace App\Repository;
use App\Entity\SourceCategory;
diff --git a/src/Repository/TownRepository.php b/src/Repository/TownRepository.php
index e8fbd5b..ded1dfb 100644
--- a/src/Repository/TownRepository.php
+++ b/src/Repository/TownRepository.php
@@ -2,12 +2,6 @@
declare(strict_types=1);
-/*
- * (c) 2022 Michael Joyce
- * This source file is subject to the GPL v2, bundled
- * with this source code in the file LICENSE.
- */
-
namespace App\Repository;
use App\Entity\Town;
diff --git a/src/Repository/TransactionCategoryRepository.php b/src/Repository/TransactionCategoryRepository.php
index d610ecf..e607f26 100644
--- a/src/Repository/TransactionCategoryRepository.php
+++ b/src/Repository/TransactionCategoryRepository.php
@@ -2,12 +2,6 @@
declare(strict_types=1);
-/*
- * (c) 2022 Michael Joyce
- * This source file is subject to the GPL v2, bundled
- * with this source code in the file LICENSE.
- */
-
namespace App\Repository;
use App\Entity\TransactionCategory;
diff --git a/src/Repository/TransactionRepository.php b/src/Repository/TransactionRepository.php
index 780b379..cd32e00 100644
--- a/src/Repository/TransactionRepository.php
+++ b/src/Repository/TransactionRepository.php
@@ -2,12 +2,6 @@
declare(strict_types=1);
-/*
- * (c) 2022 Michael Joyce
- * This source file is subject to the GPL v2, bundled
- * with this source code in the file LICENSE.
- */
-
namespace App\Repository;
use App\Entity\Transaction;
@@ -20,6 +14,7 @@
* @method Transaction[] findAll()
* @method Transaction[] findBy(array $criteria, array $orderBy = null, $limit = null, $offset = null)
* @method null|Transaction findOneBy(array $criteria, array $orderBy = null)
+ *
* @phpstan-extends ServiceEntityRepository
*/
class TransactionRepository extends ServiceEntityRepository {
diff --git a/symfony.lock b/symfony.lock
index 5d57bcb..f4d52da 100644
--- a/symfony.lock
+++ b/symfony.lock
@@ -132,6 +132,15 @@
"egulias/email-validator": {
"version": "2.1.22"
},
+ "excelwebzone/recaptcha-bundle": {
+ "version": "1.5",
+ "recipe": {
+ "repo": "github.com/symfony/recipes-contrib",
+ "branch": "main",
+ "version": "1.5",
+ "ref": "fd4da7bc71749db65bc83abf5d164bfa9c839cf4"
+ }
+ },
"friendsofphp/php-cs-fixer": {
"version": "3.4",
"recipe": {
@@ -150,6 +159,15 @@
"friendsoftwig/twigcs": {
"version": "v5.1.0"
},
+ "google/recaptcha": {
+ "version": "1.3",
+ "recipe": {
+ "repo": "github.com/symfony/recipes-contrib",
+ "branch": "main",
+ "version": "1.1",
+ "ref": "e5a4aa21f2e98d7440ae9aab6b56e307f99dd084"
+ }
+ },
"guzzlehttp/guzzle": {
"version": "6.5.5"
},
@@ -353,6 +371,9 @@
"config/packages/sensio_framework_extra.yaml"
]
},
+ "sfu-dhil/nines": {
+ "version": "v6.3.16"
+ },
"solarium/solarium": {
"version": "6.1.3"
},
diff --git a/templates/archdeaconry/edit.html.twig b/templates/archdeaconry/edit.html.twig
index d2175d2..1d823ff 100644
--- a/templates/archdeaconry/edit.html.twig
+++ b/templates/archdeaconry/edit.html.twig
@@ -1,15 +1,14 @@
{% extends 'base.html.twig' %}
- {% block title %}Edit Archdeaconry or Peculiar Court {% endblock %}
+{% block title %}Edit Archdeaconry or Peculiar Court {% endblock %}
- {% block body %}
- Edit Archdeaconry or Peculiar Court
+{% block body %}
+ Edit Archdeaconry or Peculiar Court
- {% embed 'archdeaconry/partial/form.html.twig' %}
- {% endembed %}
+ {% embed 'archdeaconry/partial/form.html.twig' %}
+ {% endembed %}
+{% endblock %}
- {% endblock %}
-
- {% block javascripts %}
- {% include '@NinesEditor/editor/widget.html.twig' %}
- {% endblock %}
+{% block javascripts %}
+ {% include '@NinesEditor/editor/widget.html.twig' %}
+{% endblock %}
diff --git a/templates/archdeaconry/index.html.twig b/templates/archdeaconry/index.html.twig
index ba302f5..e3dc4cb 100644
--- a/templates/archdeaconry/index.html.twig
+++ b/templates/archdeaconry/index.html.twig
@@ -1,6 +1,6 @@
{% extends 'base.html.twig' %}
-{% block title %}Archdeaconry and Peculiar Court List{% endblock %}
+{% block title %}Archdeaconry and Peculiar Court List{% endblock %}
{% block pageheader %}
Archdeaconry and Peculiar Court List
@@ -9,25 +9,16 @@
{% endblock %}
-{% block body %}
-
-
+{% block action_buttons %}
+ {% if is_granted('ROLE_CONTENT_ADMIN') %}
+
+ New
+
+ {% endif %}
+{% endblock %}
- {% embed 'archdeaconry/partial/table.html.twig' %}
+{% block body %}
+ {% embed '@NinesUtil/term/partial/index.html.twig'
+ with {'terms': archdeaconries, 'path': 'archdeaconry_show'} %}
{% endembed %}
-
-
- {{ knp_pagination_render(archdeaconries) }}
-
-
{% endblock %}
diff --git a/templates/archdeaconry/new.html.twig b/templates/archdeaconry/new.html.twig
index f2cfa0a..c1bb940 100644
--- a/templates/archdeaconry/new.html.twig
+++ b/templates/archdeaconry/new.html.twig
@@ -1,15 +1,15 @@
{% extends 'base.html.twig' %}
- {% block title %}New Archdeaconry or Peculiar Court {% endblock %}
+{% block title %}New Archdeaconry or Peculiar Court {% endblock %}
- {% block body %}
- New Archdeaconry or Peculiar Court
+{% block body %}
+ New Archdeaconry or Peculiar Court
- {% embed 'archdeaconry/partial/form.html.twig' %}
- {% endembed %}
+ {% embed 'archdeaconry/partial/form.html.twig' %}
+ {% endembed %}
- {% endblock %}
+{% endblock %}
- {% block javascripts %}
- {% include '@NinesEditor/editor/widget.html.twig' %}
- {% endblock %}
+{% block javascripts %}
+ {% include '@NinesEditor/editor/widget.html.twig' %}
+{% endblock %}
diff --git a/templates/archdeaconry/new_popup.html.twig b/templates/archdeaconry/new_popup.html.twig
deleted file mode 100644
index f2f7172..0000000
--- a/templates/archdeaconry/new_popup.html.twig
+++ /dev/null
@@ -1,15 +0,0 @@
-{% extends 'popup.html.twig' %}
-
- {% block title %}New Archdeaconry or Peculiar Court {% endblock %}
-
- {% block body %}
- New Archdeaconry or Peculiar Court
-
- {% embed 'archdeaconry/partial/form.html.twig' %}
- {% endembed %}
-
- {% endblock %}
-
- {% block javascripts %}
- {% include '@NinesEditor/editor/widget.html.twig' %}
- {% endblock %}
diff --git a/templates/archdeaconry/partial/detail.html.twig b/templates/archdeaconry/partial/detail.html.twig
deleted file mode 100644
index ad07ea8..0000000
--- a/templates/archdeaconry/partial/detail.html.twig
+++ /dev/null
@@ -1,52 +0,0 @@
-{% embed '@NinesUtil/term/partial/show.html.twig' with {'term': archdeaconry} %}
- {% block callback %}
-
- Diocese |
-
- {% if archdeaconry.diocese %}
- {{ archdeaconry.diocese }}
- {% endif %}
- |
-
-
- Parishes |
-
- {% if archdeaconry.parishes|length > 0 %}
-
- {% for parish in archdeaconry.parishes %}
- -
-
- {{ parish }}
-
-
- {% endfor %}
-
- {% endif %}
- |
-
-
- Injunctions |
-
- {% if archdeaconry.injunctions|length > 0 %}
-
- {% endif %}
- |
-
-
- Links |
-
- {% embed '@NinesMedia/link/partial/list.html.twig' with {
- 'entity': archdeaconry } %}
- {% endembed %}
- |
-
- {% endblock %}
-{% endembed %}
diff --git a/templates/archdeaconry/partial/form.html.twig b/templates/archdeaconry/partial/form.html.twig
index fa255c3..99e8f67 100644
--- a/templates/archdeaconry/partial/form.html.twig
+++ b/templates/archdeaconry/partial/form.html.twig
@@ -1,15 +1,12 @@
{{ form_start(form) }}
{{ form_widget(form) }}
-
-
-
-
- {% if archdeaconry.id is null %}
-
Cancel
- {% else %}
-
Cancel
- {% endif %}
-
+
+
+ {% if archdeaconry.id is null %}
+
Cancel
+ {% else %}
+
Cancel
+ {% endif %}
{{ form_end(form) }}
diff --git a/templates/archdeaconry/partial/table.html.twig b/templates/archdeaconry/partial/table.html.twig
deleted file mode 100644
index d1450e5..0000000
--- a/templates/archdeaconry/partial/table.html.twig
+++ /dev/null
@@ -1,3 +0,0 @@
-{% embed '@NinesUtil/term/partial/index.html.twig'
- with {'terms': archdeaconries, 'path': 'archdeaconry_show'} %}
-{% endembed %}
diff --git a/templates/archdeaconry/search.html.twig b/templates/archdeaconry/search.html.twig
deleted file mode 100644
index e84dbc2..0000000
--- a/templates/archdeaconry/search.html.twig
+++ /dev/null
@@ -1,56 +0,0 @@
-{% extends 'base.html.twig' %}
-
-{% block title %}Archdeaconry & Peculiar Court Search{% endblock %}
-
- {% block pageheader %}
-
Archdeaconry & Peculiar Court Search
- {% if archdeaconries|length %}
-
- Displaying {{ archdeaconries|length }} archdeaconries of {{ archdeaconries.getTotalItemCount }} total.
-
- {% endif %}
- {% endblock %}
-
-{% block body %}
-
-
-
- {% if archdeaconries|length %}
-
- {% embed 'archdeaconry/partial/table.html.twig' %}
- {% endembed %}
-
-
- {{ knp_pagination_render(archdeaconries) }}
-
- {% endif %}
-
-{% endblock %}
-
diff --git a/templates/archdeaconry/show.html.twig b/templates/archdeaconry/show.html.twig
index 72a9b99..11e2d7e 100644
--- a/templates/archdeaconry/show.html.twig
+++ b/templates/archdeaconry/show.html.twig
@@ -6,25 +6,70 @@
Archdeaconry & Peculiar Court Details
{% endblock %}
-{% block body %}
-
+ {% block action_buttons %}
{% if is_granted('ROLE_CONTENT_ADMIN') %}
-
+
+ Edit
+
+
{% endif %}
+{% endblock %}
- {% embed 'archdeaconry/partial/detail.html.twig' %}
+{% block body %}
+ {% embed '@NinesUtil/term/partial/show.html.twig' with {'term': archdeaconry} %}
+ {% block callback %}
+
+ Diocese |
+
+ {% if archdeaconry.diocese %}
+ {{ archdeaconry.diocese }}
+ {% endif %}
+ |
+
+
+ Parishes |
+
+ {% if archdeaconry.parishes|length > 0 %}
+
+ {% for parish in archdeaconry.parishes %}
+ -
+
+ {{ parish }}
+
+
+ {% endfor %}
+
+ {% endif %}
+ |
+
+
+ Injunctions |
+
+ {% if archdeaconry.injunctions|length > 0 %}
+
+ {% endif %}
+ |
+
+
+ Links |
+
+ {% embed '@NinesMedia/link/partial/list.html.twig' with {
+ 'entity': archdeaconry } %}
+ {% endembed %}
+ |
+
+ {% endblock %}
{% endembed %}
-
{% endblock %}
diff --git a/templates/archive/edit.html.twig b/templates/archive/edit.html.twig
index 1ac927c..77d9ca9 100644
--- a/templates/archive/edit.html.twig
+++ b/templates/archive/edit.html.twig
@@ -1,15 +1,15 @@
{% extends 'base.html.twig' %}
- {% block title %}Edit Archive {% endblock %}
+{% block title %}Edit Archive {% endblock %}
- {% block body %}
-
Edit Archive
+{% block body %}
+
Edit Archive
- {% embed 'archive/partial/form.html.twig' %}
- {% endembed %}
+ {% embed 'archive/partial/form.html.twig' %}
+ {% endembed %}
- {% endblock %}
+{% endblock %}
- {% block javascripts %}
- {% include '@NinesEditor/editor/widget.html.twig' %}
- {% endblock %}
+{% block javascripts %}
+ {% include '@NinesEditor/editor/widget.html.twig' %}
+{% endblock %}
diff --git a/templates/archive/index.html.twig b/templates/archive/index.html.twig
index 748276a..dfae84c 100644
--- a/templates/archive/index.html.twig
+++ b/templates/archive/index.html.twig
@@ -9,25 +9,16 @@
{% endblock %}
-{% block body %}
-
-
+{% block action_buttons %}
+ {% if is_granted('ROLE_CONTENT_ADMIN') %}
+
+ New
+
+ {% endif %}
+{% endblock %}
- {% embed 'archive/partial/table.html.twig' %}
+{% block body %}
+ {% embed '@NinesUtil/term/partial/index.html.twig'
+ with {'terms': archives, 'path': 'archive_show'} %}
{% endembed %}
-
-
- {{ knp_pagination_render(archives) }}
-
-
{% endblock %}
diff --git a/templates/archive/new.html.twig b/templates/archive/new.html.twig
index 2a3fa19..c9d6ed7 100644
--- a/templates/archive/new.html.twig
+++ b/templates/archive/new.html.twig
@@ -1,15 +1,15 @@
{% extends 'base.html.twig' %}
- {% block title %}New Archive {% endblock %}
+{% block title %}New Archive {% endblock %}
- {% block body %}
-
New Archive
+{% block body %}
+
New Archive
- {% embed 'archive/partial/form.html.twig' %}
- {% endembed %}
+ {% embed 'archive/partial/form.html.twig' %}
+ {% endembed %}
- {% endblock %}
+{% endblock %}
- {% block javascripts %}
- {% include '@NinesEditor/editor/widget.html.twig' %}
- {% endblock %}
+{% block javascripts %}
+ {% include '@NinesEditor/editor/widget.html.twig' %}
+{% endblock %}
diff --git a/templates/archive/new_popup.html.twig b/templates/archive/new_popup.html.twig
deleted file mode 100644
index 9c25efa..0000000
--- a/templates/archive/new_popup.html.twig
+++ /dev/null
@@ -1,15 +0,0 @@
-{% extends 'popup.html.twig' %}
-
- {% block title %}New Archive {% endblock %}
-
- {% block body %}
-
New Archive
-
- {% embed 'archive/partial/form.html.twig' %}
- {% endembed %}
-
- {% endblock %}
-
- {% block javascripts %}
- {% include '@NinesEditor/editor/widget.html.twig' %}
- {% endblock %}
diff --git a/templates/archive/partial/detail.html.twig b/templates/archive/partial/detail.html.twig
deleted file mode 100644
index 1cbabc8..0000000
--- a/templates/archive/partial/detail.html.twig
+++ /dev/null
@@ -1,42 +0,0 @@
-{% embed '@NinesUtil/term/partial/show.html.twig' with {'term': archive} %}
- {% block callback %}
-
- Manuscript Sources |
-
- {% if archive.manuscriptSources|length > 0 %}
-
- {% for source in archive.manuscriptSources %}
- -
-
- {{ source }}
-
-
- {% endfor %}
-
- {% endif %}
- |
-
-
- Surviving Texts |
-
- {% if archive.holdings|length > 0 %}
-
- {% for holding in archive.holdings %}
- -
- {{ holding }}
-
- {% endfor %}
-
- {% endif %}
- |
-
-
- Links |
-
- {% embed '@NinesMedia/link/partial/list.html.twig' with {
- 'entity': archive } %}
- {% endembed %}
- |
-
- {% endblock %}
-{% endembed %}
diff --git a/templates/archive/partial/form.html.twig b/templates/archive/partial/form.html.twig
index 51c2733..4d16afe 100644
--- a/templates/archive/partial/form.html.twig
+++ b/templates/archive/partial/form.html.twig
@@ -1,15 +1,12 @@
{{ form_start(form) }}
{{ form_widget(form) }}
-
-
-
-
- {% if archive.id is null %}
-
Cancel
- {% else %}
-
Cancel
- {% endif %}
-
+
+
+ {% if archive.id is null %}
+
Cancel
+ {% else %}
+
Cancel
+ {% endif %}
{{ form_end(form) }}
diff --git a/templates/archive/partial/table.html.twig b/templates/archive/partial/table.html.twig
deleted file mode 100644
index f4484da..0000000
--- a/templates/archive/partial/table.html.twig
+++ /dev/null
@@ -1,3 +0,0 @@
-{% embed '@NinesUtil/term/partial/index.html.twig'
- with {'terms': archives, 'path': 'archive_show'} %}
-{% endembed %}
diff --git a/templates/archive/search.html.twig b/templates/archive/search.html.twig
deleted file mode 100644
index bd7d019..0000000
--- a/templates/archive/search.html.twig
+++ /dev/null
@@ -1,56 +0,0 @@
-{% extends 'base.html.twig' %}
-
-{% block title %}Archive Search{% endblock %}
-
- {% block pageheader %}
-
Archive Search
- {% if archives|length %}
-
- Displaying {{ archives|length }} archives of {{ archives.getTotalItemCount }} total.
-
- {% endif %}
- {% endblock %}
-
-{% block body %}
-
-
-
- {% if archives|length %}
-
- {% embed 'archive/partial/table.html.twig' %}
- {% endembed %}
-
-
- {{ knp_pagination_render(archives) }}
-
- {% endif %}
-
-{% endblock %}
-
diff --git a/templates/archive/show.html.twig b/templates/archive/show.html.twig
index 874591f..623a314 100644
--- a/templates/archive/show.html.twig
+++ b/templates/archive/show.html.twig
@@ -6,25 +6,60 @@
Archive Details
{% endblock %}
-{% block body %}
-
+ {% block action_buttons %}
{% if is_granted('ROLE_CONTENT_ADMIN') %}
-
+
+ Edit
+
+
{% endif %}
+{% endblock %}
- {% embed 'archive/partial/detail.html.twig' %}
+{% block body %}
+ {% embed '@NinesUtil/term/partial/show.html.twig' with {'term': archive} %}
+ {% block callback %}
+
+ Manuscript Sources |
+
+ {% if archive.manuscriptSources|length > 0 %}
+
+ {% for source in archive.manuscriptSources %}
+ -
+
+ {{ source }}
+
+
+ {% endfor %}
+
+ {% endif %}
+ |
+
+
+ Surviving Texts |
+
+ {% if archive.holdings|length > 0 %}
+
+ {% for holding in archive.holdings %}
+ -
+ {{ holding }}
+
+ {% endfor %}
+
+ {% endif %}
+ |
+
+
+ Links |
+
+ {% embed '@NinesMedia/link/partial/list.html.twig' with {
+ 'entity': archive } %}
+ {% endembed %}
+ |
+
+ {% endblock %}
{% endembed %}
-
{% endblock %}
diff --git a/templates/base.html.twig b/templates/base.html.twig
index 592f9c4..8ffa00d 100644
--- a/templates/base.html.twig
+++ b/templates/base.html.twig
@@ -2,40 +2,41 @@
-
-
+
+
{% block title %}Welcome{% endblock %} | Books in English Parishes
-
-
+
+
+
+
-
+
-
-
-
-
+
+
+
+
+
+
{% block styles %}
{% endblock %}
-