diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json
deleted file mode 100644
index 2cffb1ec3f..0000000000
--- a/.devcontainer/devcontainer.json
+++ /dev/null
@@ -1,40 +0,0 @@
-// For format details, see https://aka.ms/devcontainer.json. For config options, see the
-// README at: https://github.com/devcontainers/templates/tree/main/src/php
-{
- "name": "PHP",
- // Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile
- "image": "mcr.microsoft.com/devcontainers/php:1-8.4-bullseye",
-
- // Features to add to the dev container. More info: https://containers.dev/features.
- "features": {
- "ghcr.io/devcontainers/features/github-cli:1": {},
- "ghcr.io/devcontainers/features/node:2": {}
- },
-
- // Configure tool-specific properties.
- "customizations": {
- // Configure properties specific to VS Code.
- "vscode": {
- "extensions": [
- "DEVSENSE.composer-php-vscode",
- "editorconfig.editorconfig",
- "ms-vscode.makefile-tools"
- ]
- }
- },
-
- // Use 'forwardPorts' to make a list of ports inside the container available locally.
- "forwardPorts": [
- 8080
- ],
-
- // Use 'postCreateCommand' to run commands after the container is created.
- "postCreateCommand": "sudo .devcontainer/post-create.sh && sudo chmod a+x \"$(pwd)\" && sudo ln -s \"$(pwd)\" /var/www/html",
- "waitFor": "postCreateCommand",
- "postAttachCommand": {
- "Server": "apache2ctl start"
- }
-
- // Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root.
- // "remoteUser": "root"
-}
diff --git a/.devcontainer/post-create.sh b/.devcontainer/post-create.sh
deleted file mode 100755
index c7161b9344..0000000000
--- a/.devcontainer/post-create.sh
+++ /dev/null
@@ -1,7 +0,0 @@
-#!/usr/bin/env bash
-
-test -f composer.json && composer install
-
-sed -i 's/Listen 80$//' /etc/apache2/ports.conf \
- && sed -i 's//ServerName 127.0.0.1\n/' /etc/apache2/sites-enabled/000-default.conf \
- && rm -rf /var/www/html
diff --git a/.editorconfig b/.editorconfig
deleted file mode 100644
index 96497cb17d..0000000000
--- a/.editorconfig
+++ /dev/null
@@ -1,18 +0,0 @@
-root = true
-
-[*]
-charset = utf-8
-insert_final_newline = true
-trim_trailing_whitespace = true
-
-[*.js]
-indent_size = 2
-indent_style = space
-
-[*.yaml]
-indent_size = 2
-indent_style = space
-
-[Makefile]
-indent_size = 4
-indent_style = tab
diff --git a/.gitattributes b/.gitattributes
deleted file mode 100644
index 0f4fe64008..0000000000
--- a/.gitattributes
+++ /dev/null
@@ -1,2 +0,0 @@
-# iCalendar needs CRLF line endings, Git index and working tree will have CRLF
-/backend/events/* -text
diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS
deleted file mode 100644
index 9919274261..0000000000
--- a/.github/CODEOWNERS
+++ /dev/null
@@ -1 +0,0 @@
-* @saundefined @sy-records @sgolemon @derickr
diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md
deleted file mode 100644
index 28456451f9..0000000000
--- a/.github/CONTRIBUTING.md
+++ /dev/null
@@ -1,166 +0,0 @@
-# CONTRIBUTING
-
-Anybody who programs in PHP can be a contributing member of the community that
-develops and deploys www.php.net; the task of deploying the www.php.net website is a never-ending one.
-
-You don't need any special access to download, debug and begin submitting
-code, tests or documentation.
-
-## Index
-
-* [Pull requests](#pull-requests)
-* [Filing bugs](#filing-bugs)
-* [Feature requests](#feature-requests)
-* [Writing tests](#writing-tests)
-* [Getting help](#getting-help)
-* [Checklist for submitting contribution](#checklist-for-submitting-contribution)
-* [What happens after submitting contribution?](#what-happens-after-submitting-contribution)
-* [What happens when your contribution is applied?](#what-happens-when-your-contribution-is-applied)
-* [Git commit rules](#git-commit-rules)
-
-## Pull requests
-
-www.php.net welcomes pull requests to [add tests](#writing-tests), fix bugs and to
-implement features. Please be sure to include tests as appropriate!
-
-If your pull request exhibits conflicts with the base branch, please resolve
-them by using `git rebase` instead of `git merge`.
-
-Fork the official www.php.net repository and send a pull request. A notification will be
-sent to the pull request mailing list. Sending a note to [PHP php.net internal infrastructure discussion](mailto:php-webmaster@lists.php.net) may help getting more feedback and quicker turnaround.
-
-## Filing bugs
-
-Bugs can be filed on [GitHub Issues](https://github.com/php/web-php/issues).
-
-Where possible, please include a self-contained reproduction case!
-
-## Feature requests
-
-Feature requests can be filed on [GitHub Issues](https://github.com/php/web-php/issues).
-
-## Writing tests
-
-We love getting new tests! www.php.net is a fairly old project and improving test coverage is
-a huge win for every www.php.net user.
-
-[Our QA site includes a page detailing how to write test cases.](https://qa.php.net/write-test.php)
-
-Submitting test scripts helps us to understand what functionality has changed.
-It is important for the stability and maintainability of www.php.net that tests are
-comprehensive.
-
-## Getting help
-
-If you are having trouble contributing to www.php.net, or just want to talk to a human
-about what you're working on, you can contact us via the
-[PHP php.net internal infrastructure discussion](mailto:php-webmaster@lists.php.net).
-
-## Checklist for submitting contribution
-
-- Update git source just before running your final `diff` and before testing.
-- Create test scripts.
-- Run
-
- ```shell
- make tests
- ```
-
- to check your change doesn't break other features.
-- Run
-
- ```shell
- make coding-standards
- ```
-
- to automatically fix coding standard issues.
-- Run
-
- ```shell
- make static-analysis
- ```
-
- to run a static analysis or, if applicable, run
-
- ```shell
- make static-analysis-baseline
- ```
-
- to regenerate the baseline.
-- Review the change once more just before submitting it.
-
-## What happens after submitting contribution?
-
-If your change is easy to review and obviously has no side-effects, it might be
-committed relatively quickly.
-
-Because www.php.net is a volunteer-driven effort, more complex changes will require
-patience on your side. If you do not receive feedback in a few days, consider
-bumping. Before doing this think about these questions:
-
-- Did I send the patch to the right mailing list?
-- Did I review the mailing list archives to see if these kind of changes had
- been discussed before?
-- Did I explain my change clearly?
-- Is my change too hard to review? If so, why?
-
-## What happens when your contribution is applied?
-
-Your name will likely be included in the Git commit log.
-
-## Git commit rules
-
-This section refers to contributors that have Git push access and make commit
-changes themselves. We'll assume you're basically familiar with Git, but feel
-free to post your questions on the mailing list. Please have a look at the more
-detailed [information on Git](https://git-scm.com/).
-
-www.php.net is developed through the efforts of a large number of people. Collaboration
-is a Good Thing(tm), and Git lets us do this. Thus, following some basic rules
-with regards to Git usage will:
-
-- Make everybody happier, especially those responsible for maintaining the website.
-- Keep the changes consistently well documented and easily trackable.
-- Prevent some of those 'Oops' moments.
-- Increase the general level of good will on planet Earth.
-
-Having said that, here are the organizational rules:
-
-1. Respect other people working on the project.
-
-2. Discuss any significant changes on the list before committing.
-
-3. If you "strongly disagree" about something another person did, don't start
- fighting publicly - take it up in private email.
-
-4. If you don't know how to do something, ask first!
-
-5. Test your changes before committing them. We mean it. Really. To do so use
-
- ```shell
- make tests
- ```
-
-5. Fix coding standard issues before committing code. To do so use
-
- ```shell
- make coding-standards
- ```
-
-6. Run
-
- ```shell
- make static-analysis
- ```
-
-to run a static analysis or, if applicable, run
-
- ```shell
- make static-analysis-baseline
- ```
-
-to regenerate the baseline.
-
-7. Use reasonable commit messages.
-
-Thank you for contributing to https://www.php.net!
diff --git a/.github/ISSUE_TEMPLATE/bug-report.yml b/.github/ISSUE_TEMPLATE/bug-report.yml
deleted file mode 100644
index 47076371cf..0000000000
--- a/.github/ISSUE_TEMPLATE/bug-report.yml
+++ /dev/null
@@ -1,62 +0,0 @@
-name: "Bug Report"
-description: "Report a bug to help us improve"
-labels: ["Bug", "Status: Needs Triage"]
-
-body:
- - type: markdown
- attributes:
- value: |
- Thanks for taking the time to fill out this bug report!
- Please provide as much detail as possible.
-
- - type: input
- id: page_url
- attributes:
- label: Affected Page URL
- description: The exact page address where the bug occurs
- placeholder: e.g. https://www.php.net/manual/en/function.date.php
- validations:
- required: true
-
- - type: textarea
- id: bug_description
- attributes:
- label: "Describe the bug"
- description: "A clear and concise description of what the bug is."
- placeholder: "Describe the issue here..."
- validations:
- required: true
-
- - type: textarea
- id: steps_to_reproduce
- attributes:
- label: "Steps to reproduce"
- description: "Explain how to reproduce the behavior."
- placeholder: |
- 1. Go to '...'
- 2. Click on '....'
- 3. Scroll down to '....'
- 4. See error
- validations:
- required: true
-
- - type: textarea
- id: expected_behavior
- attributes:
- label: "Expected behavior"
- description: "What did you expect to happen?"
- placeholder: "A clear and concise description..."
- validations:
- required: true
-
- - type: textarea
- id: screenshots
- attributes:
- label: "Screenshots"
- description: "If applicable, add screenshots to help explain your problem."
-
- - type: textarea
- id: additional_context
- attributes:
- label: "Additional context"
- description: "Add any other context about the problem here."
diff --git a/.github/ISSUE_TEMPLATE/download-page.yml b/.github/ISSUE_TEMPLATE/download-page.yml
deleted file mode 100644
index f0df85e84b..0000000000
--- a/.github/ISSUE_TEMPLATE/download-page.yml
+++ /dev/null
@@ -1,37 +0,0 @@
-name: "Download Page"
-description: "Suggest an idea for the downloads page"
-labels: ["Page: downloads"]
-
-body:
- - type: markdown
- attributes:
- value: |
- Thanks for taking the time to suggest an improvement or idea for the **Downloads Page**.
- Please provide as much detail as possible so we can understand your suggestion.
- Please **do not** use this issue tracker for reporting issues with installing PHP, as
- this is not a support forum. Instead head to [our support page](https://www.php.net/support.php).
-
- - type: input
- id: summary
- attributes:
- label: Summary
- description: A brief description of your idea
- placeholder: e.g. Add a new section for legacy downloads
- validations:
- required: true
-
- - type: textarea
- id: details
- attributes:
- label: Details
- description: Explain your idea in detail. What problem does it solve? How should it look or work?
- placeholder: Write your detailed suggestion here...
- validations:
- required: true
-
- - type: textarea
- id: additional
- attributes:
- label: Additional context
- description: Add any other context, screenshots, or references about the idea here.
- placeholder: e.g. Related links, mockups, etc.
diff --git a/.github/dependabot.yaml b/.github/dependabot.yaml
deleted file mode 100644
index fb8b26f5f1..0000000000
--- a/.github/dependabot.yaml
+++ /dev/null
@@ -1,40 +0,0 @@
-# https://docs.github.com/en/github/administering-a-repository/configuration-options-for-dependency-updates
-
-version: 2
-
-updates:
- - package-ecosystem: "composer"
- allow:
- - dependency-type: "development"
- commit-message:
- include: "scope"
- prefix: "composer"
- directory: "/"
- labels:
- - "dependency"
- open-pull-requests-limit: 10
- schedule:
- interval: "weekly"
- versioning-strategy: "increase"
-
- - package-ecosystem: "github-actions"
- commit-message:
- include: "scope"
- prefix: "github-actions"
- directory: "/"
- labels:
- - "dependency"
- open-pull-requests-limit: 10
- schedule:
- interval: "weekly"
-
- - package-ecosystem: "devcontainers"
- commit-message:
- include: "scope"
- prefix: "devcontainers"
- directory: "/"
- labels:
- - "dependency"
- open-pull-requests-limit: 10
- schedule:
- interval: "weekly"
diff --git a/.github/workflows/close-needs-feedback.yml b/.github/workflows/close-needs-feedback.yml
deleted file mode 100644
index 27231303f1..0000000000
--- a/.github/workflows/close-needs-feedback.yml
+++ /dev/null
@@ -1,24 +0,0 @@
-name: Close old issues that need feedback
-
-on:
- schedule:
- - cron: "0 0 * * *"
-
-permissions:
- contents: read
-
-jobs:
- build:
- if: github.repository_owner == 'php'
- runs-on: ubuntu-latest
- permissions:
- issues: write
- pull-requests: write
- steps:
- - name: Close old issues that need feedback
- uses: dwieeb/needs-reply@v2
- with:
- repo-token: ${{ secrets.GITHUB_TOKEN }}
- issue-label: "Status: Needs Feedback"
- days-before-close: 14
- close-message: "No feedback was provided. The issue is being suspended because we assume that you are no longer experiencing the problem. If this is not the case and you are able to provide the information that was requested earlier, please do so. Thank you."
diff --git a/.github/workflows/integrate.yaml b/.github/workflows/integrate.yaml
deleted file mode 100644
index 42103b874c..0000000000
--- a/.github/workflows/integrate.yaml
+++ /dev/null
@@ -1,203 +0,0 @@
-# https://docs.github.com/en/actions
-
-name: "Integrate"
-
-on:
- pull_request: null
- push:
- branches:
- - "master"
-
-jobs:
- code-coverage:
- name: "Code Coverage"
-
- runs-on: "ubuntu-latest"
-
- strategy:
- matrix:
- php-version:
- - "8.4"
-
- steps:
- - name: "Checkout"
- uses: "actions/checkout@v7"
-
- - name: "Set up PHP"
- uses: "shivammathur/setup-php@v2"
- with:
- coverage: "xdebug"
- extensions: "none, curl, dom, json, mbstring, tokenizer, xml, xmlwriter, iconv"
- php-version: "${{ matrix.php-version }}"
-
- - name: "Set up problem matchers for PHP"
- run: "echo \"::add-matcher::${{ runner.tool_cache }}/php.json\""
-
- - name: "Set up problem matchers for phpunit/phpunit"
- run: "echo \"::add-matcher::${{ runner.tool_cache }}/phpunit.json\""
-
- - name: "Determine composer cache directory"
- run: "echo \"COMPOSER_CACHE_DIR=$(composer config cache-dir)\" >> $GITHUB_ENV"
-
- - name: "Cache dependencies installed with composer"
- uses: "actions/cache@v6"
- with:
- path: "${{ env.COMPOSER_CACHE_DIR }}"
- key: "php-${{ matrix.php-version }}-composer-${{ hashFiles('composer.lock') }}"
- restore-keys: "php-${{ matrix.php-version }}-composer-"
-
- - name: "Install dependencies with composer"
- run: "composer install --ansi --no-interaction --no-progress"
-
- - name: "Collect code coverage from running unit tests with phpunit/phpunit"
- env:
- XDEBUG_MODE: "coverage"
- run: "vendor/bin/phpunit --colors=always --configuration=tests/phpunit.xml --coverage-text --testsuite=unit"
-
- coding-standards:
- name: "Coding Standards"
-
- runs-on: "ubuntu-latest"
-
- strategy:
- matrix:
- php-version:
- - "8.4"
-
- steps:
- - name: "Checkout"
- uses: "actions/checkout@v7"
-
- - name: "Set up PHP"
- uses: "shivammathur/setup-php@v2"
- with:
- coverage: "none"
- extensions: "none, curl, dom, json, mbstring, tokenizer, xml, xmlwriter, iconv"
- php-version: "${{ matrix.php-version }}"
-
- - name: "Set up problem matchers for PHP"
- run: "echo \"::add-matcher::${{ runner.tool_cache }}/php.json\""
-
- - name: "Validate composer.json and composer.lock"
- run: "composer validate --ansi --strict"
-
- - name: "Determine composer cache directory"
- run: "echo \"COMPOSER_CACHE_DIR=$(composer config cache-dir)\" >> $GITHUB_ENV"
-
- - name: "Cache dependencies installed with composer"
- uses: "actions/cache@v6"
- with:
- path: "${{ env.COMPOSER_CACHE_DIR }}"
- key: "php-${{ matrix.php-version }}-composer-${{ hashFiles('composer.lock') }}"
- restore-keys: "php-${{ matrix.php-version }}-composer-"
-
- - name: "Install dependencies with composer"
- run: "composer install --ansi --no-interaction --no-progress"
-
- - name: "Run friendsofphp/php-cs-fixer"
- run: "vendor/bin/php-cs-fixer check --diff --show-progress=dots --verbose --ansi"
-
- - name: "Get libxml2-utils"
- run: |
- set -x
- export DEBIAN_FRONTEND=noninteractive
- sudo apt-get update -y | true
- sudo apt-get install -y libxml2-utils
-
- - name: "Validate XML files"
- run: "for a in $(find . -name '*.xml'); do xmllint --quiet --noout $a; done"
-
- static-analysis:
- name: "Static Analysis"
-
- runs-on: "ubuntu-latest"
-
- strategy:
- matrix:
- php-version:
- - "8.4"
-
- dependencies:
- - "locked"
-
- steps:
- - name: "Checkout"
- uses: "actions/checkout@v7"
-
- - name: "Set up PHP"
- uses: "shivammathur/setup-php@v2"
- with:
- coverage: "none"
- extensions: "none, curl, dom, json, mbstring, tokenizer, xml, xmlwriter, iconv"
- php-version: "${{ matrix.php-version }}"
-
- - name: "Set up problem matchers for PHP"
- run: "echo \"::add-matcher::${{ runner.tool_cache }}/php.json\""
-
- - name: "Determine composer cache directory"
- run: "echo \"COMPOSER_CACHE_DIR=$(composer config cache-dir)\" >> $GITHUB_ENV"
-
- - name: "Cache dependencies installed with composer"
- uses: "actions/cache@v6"
- with:
- path: "${{ env.COMPOSER_CACHE_DIR }}"
- key: "php-${{ matrix.php-version }}-composer-${{ hashFiles('composer.lock') }}"
- restore-keys: "php-${{ matrix.php-version }}-composer-"
-
- - name: "Install dependencies with composer"
- run: "composer install --ansi --no-interaction --no-progress"
-
- - name: "Run static analysis"
- run: "vendor/bin/phpstan"
-
- tests:
- name: "Tests"
-
- runs-on: "ubuntu-latest"
-
- strategy:
- matrix:
- php-version:
- - "8.4"
-
- env:
- HTTP_HOST: "localhost:8080"
-
- steps:
- - name: "Checkout"
- uses: "actions/checkout@v7"
-
- - name: "Set up PHP"
- uses: "shivammathur/setup-php@v2"
- with:
- coverage: "none"
- extensions: "none, curl, dom, json, mbstring, tokenizer, xml, xmlwriter, iconv"
- php-version: "${{ matrix.php-version }}"
-
- - name: "Set up problem matchers for PHP"
- run: "echo \"::add-matcher::${{ runner.tool_cache }}/php.json\""
-
- - name: "Set up problem matchers for phpunit/phpunit"
- run: "echo \"::add-matcher::${{ runner.tool_cache }}/phpunit.json\""
-
- - name: "Determine composer cache directory"
- run: "echo \"COMPOSER_CACHE_DIR=$(composer config cache-dir)\" >> $GITHUB_ENV"
-
- - name: "Cache dependencies installed with composer"
- uses: "actions/cache@v6"
- with:
- path: "${{ env.COMPOSER_CACHE_DIR }}"
- key: "php-${{ matrix.php-version }}-composer-${{ hashFiles('composer.lock') }}"
- restore-keys: "php-${{ matrix.php-version }}-composer-"
-
- - name: "Install dependencies with composer"
- run: "composer install --ansi --no-interaction --no-progress"
-
- - name: "Run unit tests with phpunit/phpunit"
- run: "vendor/bin/phpunit --colors=always --configuration=tests/phpunit.xml --testsuite=unit"
-
-# - name: "Start built-in web server for PHP"
-# run: "php -S ${{ env.HTTP_HOST }} .router.php &"
-
-# - name: "Run end-to-end tests with phpunit/phpunit"
-# run: "vendor/bin/phpunit --colors=always --configuration=tests/phpunit.xml --testsuite=end-to-end"
diff --git a/.github/workflows/pr-closed.yml b/.github/workflows/pr-closed.yml
deleted file mode 100644
index 44aa93c3cb..0000000000
--- a/.github/workflows/pr-closed.yml
+++ /dev/null
@@ -1,18 +0,0 @@
-name: Remove preview PR
-on:
- pull_request_target:
- types: [ closed ]
-
-jobs:
- build:
- runs-on: "ubuntu-22.04"
- if: github.repository_owner == 'php'
- steps:
- - uses: appleboy/ssh-action@v1.2.5
- with:
- host: ${{ secrets.PREVIEW_REMOTE_HOST }}
- username: ${{ secrets.PREVIEW_REMOTE_USER }}
- key: ${{ secrets.PREVIEW_SSH_KEY }}
- script: |
- bash /home/thephpfoundation/scripts/pr_closed.sh web-php ${{ github.event.number }}
- bash /home/thephpfoundation/scripts/pr_closed.sh web-php-regression-report ${{ github.event.number }}
diff --git a/.github/workflows/preview-deploy.yml b/.github/workflows/preview-deploy.yml
deleted file mode 100644
index e8745b8e2d..0000000000
--- a/.github/workflows/preview-deploy.yml
+++ /dev/null
@@ -1,126 +0,0 @@
-name: Preview Deploy
-on:
- workflow_run:
- workflows: ["Preview Tests"]
- types:
- - completed
-
-# workflow_run needs explicit perms for PR comments.
-permissions:
- contents: read
- issues: write
- pull-requests: write
-
-jobs:
- deploy:
- runs-on: "ubuntu-22.04"
- if: >
- github.repository_owner == 'php' &&
- github.event.workflow_run.event == 'pull_request'
-
- steps:
- - name: Download PR number
- uses: actions/download-artifact@v8
- with:
- name: pr-number.txt
- path: ./pr-number-artifact/
- github-token: ${{ secrets.GITHUB_TOKEN }}
- run-id: ${{ github.event.workflow_run.id }}
-
- - name: Set PR number
- id: pr-number
- run: |
- PR_NUMBER=$(cat ./pr-number-artifact/pr-number.txt)
- echo "pr_number=$PR_NUMBER" >> $GITHUB_OUTPUT
-
- - name: Download PR code as artifact
- uses: actions/download-artifact@v8
- with:
- name: pr-code
- path: ./
- github-token: ${{ secrets.GITHUB_TOKEN }}
- run-id: ${{ github.event.workflow_run.id }}
-
- - name: Deploy preview
- uses: easingthemes/ssh-deploy@main
- with:
- REMOTE_HOST: ${{ secrets.PREVIEW_REMOTE_HOST }}
- REMOTE_USER: ${{ secrets.PREVIEW_REMOTE_USER }}
- SSH_PRIVATE_KEY: ${{ secrets.PREVIEW_SSH_KEY }}
- SOURCE: "./"
- TARGET: "/home/thephpfoundation/preview/web-php-pr-${{ steps.pr-number.outputs.pr_number }}/public"
- SCRIPT_BEFORE: bash /home/thephpfoundation/scripts/pr_created_pre.sh web-php ${{ steps.pr-number.outputs.pr_number }}
- SCRIPT_AFTER: bash /home/thephpfoundation/scripts/pr_created.sh web-php ${{ steps.pr-number.outputs.pr_number }}
-
- - name: Find existing preview comment
- uses: peter-evans/find-comment@v4
- id: fc
- with:
- issue-number: ${{ steps.pr-number.outputs.pr_number }}
- comment-author: 'github-actions[bot]'
- body-includes: 'Preview for commit'
-
- - name: Create or update preview comment
- uses: peter-evans/create-or-update-comment@v5
- with:
- issue-number: ${{ steps.pr-number.outputs.pr_number }}
- comment-id: ${{ steps.fc.outputs.comment-id }}
- edit-mode: 'replace'
- body: |
- 🚀 Preview for commit ${{ github.event.workflow_run.head_sha }} is available at https://web-php-pr-${{ steps.pr-number.outputs.pr_number }}.preview.thephp.foundation
-
- deploy-regression-report:
- runs-on: "ubuntu-22.04"
- if: >
- github.repository_owner == 'php' &&
- github.event.workflow_run.event == 'pull_request'
-
- steps:
- - name: Download PR number
- uses: actions/download-artifact@v8
- with:
- name: pr-number.txt
- path: ./pr-number-artifact/
- github-token: ${{ secrets.GITHUB_TOKEN }}
- run-id: ${{ github.event.workflow_run.id }}
-
- - name: Set PR number
- id: pr-number
- run: |
- PR_NUMBER=$(cat ./pr-number-artifact/pr-number.txt)
- echo "pr_number=$PR_NUMBER" >> $GITHUB_OUTPUT
-
- - name: Download regression report
- uses: actions/download-artifact@v8
- with:
- name: playwright-report
- path: ./playwright-report/
- github-token: ${{ secrets.GITHUB_TOKEN }}
- run-id: ${{ github.event.workflow_run.id }}
-
- - name: Deploy regression report
- uses: easingthemes/ssh-deploy@main
- with:
- REMOTE_HOST: ${{ secrets.PREVIEW_REMOTE_HOST }}
- REMOTE_USER: ${{ secrets.PREVIEW_REMOTE_USER }}
- SSH_PRIVATE_KEY: ${{ secrets.PREVIEW_SSH_KEY }}
- SOURCE: "./playwright-report/"
- TARGET: "/home/thephpfoundation/preview/web-php-regression-report-pr-${{ steps.pr-number.outputs.pr_number }}/public"
- SCRIPT_BEFORE: bash /home/thephpfoundation/scripts/pr_created_pre.sh web-php-regression-report ${{ steps.pr-number.outputs.pr_number }}
-
- - name: Find regression report comment
- uses: peter-evans/find-comment@v4
- id: snapshot
- with:
- issue-number: ${{ steps.pr-number.outputs.pr_number }}
- comment-author: 'github-actions[bot]'
- body-includes: 'Regression report for commit'
-
- - name: Create or update regression report comment
- uses: peter-evans/create-or-update-comment@v5
- with:
- issue-number: ${{ steps.pr-number.outputs.pr_number }}
- comment-id: ${{ steps.snapshot.outputs.comment-id }}
- edit-mode: 'replace'
- body: |
- 📊 Regression report for commit ${{ github.event.workflow_run.head_sha }} is at https://web-php-regression-report-pr-${{ steps.pr-number.outputs.pr_number }}.preview.thephp.foundation
diff --git a/.github/workflows/preview-tests.yml b/.github/workflows/preview-tests.yml
deleted file mode 100644
index f91b279128..0000000000
--- a/.github/workflows/preview-tests.yml
+++ /dev/null
@@ -1,89 +0,0 @@
-name: Preview Tests
-on:
- pull_request:
- types: [ labeled ]
-
-jobs:
- tests_e2e:
- name: "E2E Tests"
- runs-on: "ubuntu-latest"
- if: "github.repository_owner == 'php' && contains(github.event.pull_request.labels.*.name, 'Status: Preview Allowed')"
-
- strategy:
- matrix:
- php-version:
- - "8.4"
- node-version:
- - "22.x"
-
- env:
- HTTP_HOST: "localhost:8080"
-
- steps:
- - uses: actions/checkout@v7
- with:
- ref: "refs/pull/${{ github.event.number }}/merge"
-
- - name: Save PR number
- run: echo ${{ github.event.number }} > pr-number.txt
-
- - name: Upload PR code as artifact
- uses: actions/upload-artifact@v7
- with:
- name: pr-code
- path: ./
- retention-days: 1
-
- - name: Upload PR number artifact
- uses: actions/upload-artifact@v7
- with:
- name: pr-number.txt
- path: ./pr-number.txt
- retention-days: 1
-
- - uses: shivammathur/setup-php@v2
- with:
- coverage: "none"
- extensions: "none, curl, dom, json, mbstring, tokenizer, xml, xmlwriter, iconv"
- php-version: "${{ matrix.php-version }}"
-
- - name: Use Node.js ${{ matrix.node-version }}
- uses: actions/setup-node@v7
- with:
- node-version: ${{ matrix.node-version }}
-
- - name: "Set up problem matchers for PHP"
- run: "echo \"::add-matcher::${{ runner.tool_cache }}/php.json\""
-
- - name: "Set up problem matchers for phpunit/phpunit"
- run: "echo \"::add-matcher::${{ runner.tool_cache }}/phpunit.json\""
-
- - name: "Determine composer cache directory"
- run: "echo \"COMPOSER_CACHE_DIR=$(composer config cache-dir)\" >> $GITHUB_ENV"
-
- - name: "Cache dependencies installed with composer"
- uses: actions/cache@v6
- with:
- path: "${{ env.COMPOSER_CACHE_DIR }}"
- key: "php-${{ matrix.php-version }}-composer-${{ hashFiles('composer.lock') }}"
- restore-keys: "php-${{ matrix.php-version }}-composer-"
-
- - name: "Install dependencies with composer"
- run: "composer install --ansi --no-interaction --no-progress"
-
- - name: "Install dependencies"
- run: "yarn install"
-
- - name: "Install Playwright"
- run: "npx playwright install"
-
- - name: "Run E2E tests"
- run: "make tests_e2e"
-
- - name: Upload playwright report
- uses: actions/upload-artifact@v7
- if: ${{ !cancelled() }}
- with:
- name: playwright-report
- path: ./playwright-report/
- retention-days: 7
diff --git a/.github/workflows/remove-needs-feedback.yml b/.github/workflows/remove-needs-feedback.yml
deleted file mode 100644
index 8d1ff3e0a0..0000000000
--- a/.github/workflows/remove-needs-feedback.yml
+++ /dev/null
@@ -1,24 +0,0 @@
-name: Remove needs feedback label
-
-on:
- issue_comment:
- types:
- - created
-
-permissions:
- contents: read
-
-jobs:
- build:
- if: "github.repository_owner == 'php' && contains(github.event.issue.labels.*.name, 'Status: Needs Feedback') && github.event.issue.user.login == github.event.sender.login"
- runs-on: ubuntu-latest
- permissions:
- issues: write
- pull-requests: write
- steps:
- - uses: actions-ecosystem/action-remove-labels@v1
- with:
- labels: "Status: Needs Feedback"
- - uses: actions-ecosystem/action-add-labels@v1
- with:
- labels: "Status: Needs Triage"
diff --git a/.gitignore b/.gitignore
deleted file mode 100644
index f59a0e8c75..0000000000
--- a/.gitignore
+++ /dev/null
@@ -1,13 +0,0 @@
-/.build/
-/.php-cs-fixer.php
-/vendor/
-
-backend/mirror.gif
-backend/mirror.png
-backend/mirror.jpg
-backend/GeoIP.dat
-node_modules/
-/test-results/
-/playwright-report/
-/blob-report/
-/playwright/.cache/
diff --git a/.gitmodules b/.gitmodules
deleted file mode 100644
index e69de29bb2..0000000000
diff --git a/.php-cs-fixer.dist.php b/.php-cs-fixer.dist.php
deleted file mode 100644
index 49f50d793b..0000000000
--- a/.php-cs-fixer.dist.php
+++ /dev/null
@@ -1,72 +0,0 @@
-in(__DIR__);
-
-$config = new PhpCsFixer\Config();
-
-$finder = $config->getFinder()
- ->ignoreDotFiles(false)
- ->in([
- __DIR__ . '/src',
- __DIR__ . '/tests',
- ]);
-
-$config
- ->setCacheFile(__DIR__ . '/.build/php-cs-fixer/php-cs-fixer.cache')
- ->setRiskyAllowed(true)
- ->setRules([
- 'array_indentation' => true,
- 'array_syntax' => true,
- 'binary_operator_spaces' => true,
- 'blank_line_after_namespace' => true,
- 'blank_line_after_opening_tag' => true,
- 'class_attributes_separation' => true,
- 'class_definition' => true,
- 'concat_space' => [
- 'spacing' => 'one',
- ],
- 'constant_case' => true,
- 'elseif' => true,
- 'function_declaration' => true,
- 'include' => true,
- 'increment_style' => [
- 'style' => 'post',
- ],
- 'indentation_type' => true,
- 'is_null' => true,
- 'line_ending' => true,
- 'modifier_keywords' => true,
- 'new_with_parentheses' => true,
- 'no_extra_blank_lines' => true,
- 'no_mixed_echo_print' => true,
- 'no_singleline_whitespace_before_semicolons' => true,
- 'no_spaces_after_function_name' => true,
- 'no_superfluous_elseif' => true,
- 'no_trailing_whitespace' => true,
- 'ordered_class_elements' => true,
- 'random_api_migration' => true,
- 'single_space_around_construct' => [
- 'constructs_contain_a_single_space' => [
- 'yield_from',
- ],
- 'constructs_preceded_by_a_single_space' => [],
- 'constructs_followed_by_a_single_space' => [],
- ],
- 'strict_param' => true,
- 'switch_case_space' => true,
- 'ternary_operator_spaces' => true,
- 'trailing_comma_in_multiline' => [
- 'elements' => [
- 'arguments',
- 'arrays',
- 'match',
- 'parameters',
- ],
- ],
- 'trim_array_spaces' => true,
- 'unary_operator_spaces' => true,
- 'void_return' => true,
- 'whitespace_after_comma_in_array' => true,
- ]);
-
-return $config;
diff --git a/Makefile b/Makefile
deleted file mode 100644
index a99a403775..0000000000
--- a/Makefile
+++ /dev/null
@@ -1,44 +0,0 @@
-.EXPORT_ALL_VARIABLES:
-
-HTTP_HOST:=localhost:8080
-CORES?=$(shell (nproc || sysctl -n hw.ncpu) 2> /dev/null)
-
-.PHONY: it
-it: coding-standards static-analysis tests ## Runs all the targets
-
-.PHONY: code-coverage
-code-coverage: vendor ## Collects code coverage from running unit tests with phpunit/phpunit
- vendor/bin/phpunit --configuration=tests/phpunit.xml --coverage-text --testsuite=unit
-
-.PHONY: coding-standards
-coding-standards: vendor ## Fixes code style issues with friendsofphp/php-cs-fixer
- vendor/bin/php-cs-fixer fix --diff --show-progress=dots --verbose
-
-.PHONY: help
-help: ## Displays this list of targets with descriptions
- @grep -E '^[a-zA-Z0-9_-]+:.*?## .*$$' $(MAKEFILE_LIST) | sort | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[32m%-30s\033[0m %s\n", $$1, $$2}'
-
-.PHONY: static-analysis
-static-analysis: vendor ## Runs a static code analysis
- vendor/bin/phpstan
-
-.PHONY: static-analysis-baseline
-static-analysis-baseline: vendor ## Generates a baseline for static analysis
- vendor/bin/phpstan --generate-baseline
-
-.PHONY: tests
-tests: vendor ## Runs unit and end-to-end tests with phpunit/phpunit
- vendor/bin/phpunit --configuration=tests/phpunit.xml --testsuite=unit
- rm -rf tests/server.log
- tests/server start;
- vendor/bin/phpunit --configuration=tests/phpunit.xml --testsuite=end-to-end;
- tests/server stop
-
-tests_e2e:
- tests/server start;
- npx playwright test
- tests/server stop
-
-vendor: composer.json composer.lock
- composer validate --strict
- composer install --no-interaction --no-progress
diff --git a/README.md b/README.md
deleted file mode 100644
index 2566481b53..0000000000
--- a/README.md
+++ /dev/null
@@ -1,43 +0,0 @@
-[](https://github.com/php/web-php/actions/workflows/integrate.yaml)
-
-## Local development
-
-This is the git repository for the official www.php.net website.
-
-To setup a local mirror of the website, clone the repository:
-
-```
-git clone https://github.com/php/web-php.git
-```
-
-Change into `web-php`:
-
-```
-cd web-php/public
-```
-
-Start the built-in web server:
-
-```
-php -S localhost:8080 .router.php
-```
-
-This repository includes most (generated) files that are required for normal
-operation of this website, such as
-
- - News & events data
- - Several manual pages (and a translation), see manual/{en,ja}/
- - User contributed notes for manual pages
- - A "router" for the builtin PHP webserver
-
-How to set up a full local mirror is described in our Wiki:
-https://wiki.php.net/web/mirror
-
-## Code requirements
-
-Code must function on a vanilla PHP 8.4 installation.
-Please keep this in mind before filing a pull request.
-
-## Contributing
-
-Please have a look at [`CONTRIBUTING.md`](.github/CONTRIBUTING.md).
diff --git a/assets/sprites.psd b/assets/sprites.psd
new file mode 100644
index 0000000000..f497c46bfb
Binary files /dev/null and b/assets/sprites.psd differ
diff --git a/bin/bumpRelease b/bin/bumpRelease
deleted file mode 100755
index f03c2c6da9..0000000000
--- a/bin/bumpRelease
+++ /dev/null
@@ -1,42 +0,0 @@
-#!/usr/bin/env php
- "/releases/" . str_replace(".", "_", $version) . ".php");
-}
-
-$OLDRELEASES[$major] = array_merge(
- array($version => $info),
- $OLDRELEASES[$major] ?? []
-);
-
-file_put_contents(__DIR__ . "/../include/releases.inc", [
- " 400,
- 'height' => 250
-];
-
-// Create an entry!
-if (!file_exists(Entry::ARCHIVE_FILE_ABS)) {
- fwrite(STDERR, "Can't find " . Entry::ARCHIVE_FILE_REL . ", are you sure you are in phpweb/?\n");
- exit(1);
-}
-
-if ($_SERVER['argc'] > 1) {
- // getopt based non-interactive mode
- $entry = parseOptions();
-} else {
- // Classic interactive prompts
- $entry = getEntry();
-}
-
-$entry->save()->updateArchiveXML();
-
-fwrite(STDOUT, "File saved.\nPlease git diff " . Entry::ARCHIVE_FILE_REL . " and sanity-check the changes before committing\n");
-fwrite(STDOUT, "NOTE: Remember to git add " . Entry::ARCHIVE_ENTRIES_REL . $entry->getId() . ".xml !!\n");
-
-// Implementation functions
-
-function getEntry(): Entry {
- $entry = new Entry;
- $entry->setTitle(getTitle());
- $entry->setCategories(selectCategories());
- if ($entry->isConference()) {
- $entry->setConfTime(getConfTime());
- }
-
- $image = getImage();
- $entry->setImage($image['path'] ?? '', $image['title'] ?? '', $image['link'] ?? '');
-
- $entry->setContent(getContent());
-
- return $entry;
-}
-
-function getTitle(): string {
- do {
- fwrite(STDOUT, "Please type in the title: ");
- $title = rtrim(fgets(STDIN));
- } while(strlen($title)<3);
-
- return $title;
-}
-
-function selectCategories(): array { for(;;) {
- $ids = array_keys(Entry::CATEGORIES);
-
- fwrite(STDOUT, "Categories:\n");
- foreach($ids as $n => $id) {
- fprintf(STDOUT, "\t%d: %-11s\t [%s]\n", $n, Entry::CATEGORIES[$id], $id);
- }
- fwrite(STDOUT, "Please select appropriate categories, seperated with space: ");
-
- // Filter to 0..n-1, then map to short names.
- $cat = array_map(
- function ($c) use ($ids) {
- return $ids[$c];
- },
- array_filter(
- explode(" ", rtrim(fgets(STDIN))),
- function ($c) {
- return is_numeric($c) && ($c >= 0) && ($c < count(Entry::CATEGORIES));
- })
- );
-
- // Special case, we don't allow items in both 'cfp' and 'conferences'.
- if (count(array_intersect($cat, ['cfp', 'conferences'])) >= 2) {
- fwrite(STDERR, "Pick either a CfP OR a conference\n");
- continue;
- }
-
- if (count($cat) == 0) {
- fwrite(STDERR, "You have to pick at least one category\n");
- continue;
- }
-
- return $cat;
-}}
-
-function getConfTime(): int { for(;;) {
- fwrite(STDOUT, "When does the conference start/cfp end? (strtotime() compatible syntax): ");
-
- $t = strtotime(fgets(STDIN));
- if (!$t) {
- fwrite(STDERR, "I told you I would run it through strtotime()!\n");
- continue;
- }
-
- return $t;
-}}
-
-function getImage(): ?array {
- global $imageRestriction;
-
- fwrite(STDOUT, "Will a picture be accompanying this entry?(y/N) ");
- $yn = fgets(STDIN);
-
-
- if (strtoupper($yn[0]) !== "Y") {
- return NULL;
- }
-
- for ($isValidImage = false; !$isValidImage;) {
- fwrite(STDOUT, "Enter the image name (note: the image has to exist in './images/news'): ");
- $path = basename(rtrim(fgets(STDIN)));
-
- if (true === file_exists(Entry::PHPWEB . "/images/news/$path")) {
- $isValidImage = true;
-
- if (extension_loaded('gd')) {
- break;
- }
-
- $imageSizes = getimagesize("./images/news/$path");
-
- if (($imageSizes[0] > $imageRestriction['width']) || ($imageSizes[1] > $imageRestriction['height'])) {
- fwrite(STDOUT, "Provided image has a higher size than recommended (" . implode(' by ', $imageRestriction) . "). Continue with this image?(y/N) ");
- $ynImg = fgets(STDIN);
- if (strtoupper($ynImg[0]) !== "Y") {
- $isValidImage = false;
- }
- }
- }
- }
-
- fwrite(STDOUT, "Image title: ");
- $title = rtrim(fgets(STDIN));
-
- fwrite(STDOUT, "Link (when clicked on the image): ");
- $via = rtrim(fgets(STDIN));
-
- return [
- 'title' => $title,
- 'link' => $via,
- 'path' => $path,
- ];
-}
-
-function getContent(): string {
- fwrite(STDOUT, "And at last; paste/write your news item here.\nTo end it, hit .\n");
- $news = "\n";
- while(($line = rtrim(fgets(STDIN))) != ".") {
- $news .= " $line\n";
- }
-
- return $news;
-}
-
-function parseOptions(): Entry {
- $opts = getopt('h', [
- 'help',
- 'title:',
- 'category:',
- 'conf-time:',
- 'image-path:',
- 'image-title:',
- 'image-link:',
- 'content:',
- 'content-file:',
- ]);
- if (isset($opts['h']) || isset($opts['help'])) {
- echo "Usage: {$_SERVER['argv'][0]} --title 'Name of event' --category cfp ( --content 'text' | --content-file '-') [...options]\n\n";
- echo " --title 'value' The title of the entry (required)\n";
- echo " --category 'value' 'frontpage', 'release', 'cfp', or 'conference' (required; may repeat)\n";
- echo " --conf-time 'value' When the event will be occurign (cfp and conference categories only)\n";
- echo " --content 'value' Text content for the entry, may include XHTML\n";
- echo " --content-file 'value' Name of file to load content from, may not be specified with --content\n";
- echo " --image-path 'value' Basename of image file in " . Entry::IMAGE_PATH_REL . "\n";
- echo " --image-title 'value' Title for the image provided\n";
- echo " --image-link 'value' URI to direct to when clicking the image\n";
- exit(0);
- }
-
- $entry = new Entry;
- if (!isset($opts['title'])) {
- fwrite(STDERR, "--title required\n");
- exit(1);
- }
- $entry->setTitle($opts['title']);
-
- if (empty($opts['category'])) {
- fwrite(STDERR, "--category required\n");
- exit(1);
- }
- if (is_string($opts['category'])) {
- $opts['category'] = [ $opts['category'] ];
- }
- foreach ($opts['category'] as $cat) {
- $entry->addCategory($cat);
- }
- if ($entry->isConference()) {
- if (empty($opts['conf-time'])) {
- fwrite(STDERR, "--conf-time required for conferences\n");
- exit(1);
- }
- $t = strtotime($opts['conf-time']);
- if (!is_int($t)) {
- fwrite(STDERR, "Error parsing --conf-time\n");
- exit(1);
- }
- $entry->setConfTime($t);
- } elseif (!empty($opts['conf-time'])) {
- fwrite(STDERR, "--conf-time not allowed with non-conference events\n");
- exit(1);
- }
-
- $entry->setImage($opts['image-path'] ?? '', $opts['image-title'] ?? '', $opts['image-link'] ?? '');
-
- if (isset($opts['content'])) {
- if (isset($opts['content-file'])) {
- fwrite(STDERR, "--content and --content-file may not be specified together\n");
- exit(1);
- }
- $entry->setContent($opts['content']);
- } elseif (isset($opts['content-file'])) {
- if ($opts['content-file'] === '-') {
- $entry->setContent(stream_get_contents(STDIN));
- } else {
- $entry->setContent(file_get_contents($opts['content-file']));
- }
- } else {
- fwrite(STDERR, "--content or --content-file required\n");
- exit(1);
- }
-
- return $entry;
-}
diff --git a/bin/createReleaseEntry b/bin/createReleaseEntry
deleted file mode 100755
index b7b81bed6d..0000000000
--- a/bin/createReleaseEntry
+++ /dev/null
@@ -1,74 +0,0 @@
-#!/usr/bin/env php
-The PHP development team announces the immediate availability of PHP $version. This is a $security release.
-
-All PHP $branch users are encouraged to upgrade to this version.
-
-For source downloads of PHP $version please visit our downloads page,
-Windows source and binaries can also be found there.
-The list of changes is recorded in the ChangeLog.
-
-EOD;
-
-// Mint the news XML entry.
-$entry = (new Entry)
- ->setTitle("PHP $version Released!")
- ->setCategories(['releases','frontpage'])
- ->setContent($template);
-
-$entry->save()->updateArchiveXML();
-$addedFiles = [Entry::ARCHIVE_ENTRIES_REL . $entry->getId() . '.xml'];
-
-// Mint the releases/x_y_z.php archive.
-const RELEASES_REL = 'releases/';
-const RELEASES_ABS = __DIR__ . '/../' . RELEASES_REL;
-if (isset($opts['r'])) {
- $release = strtr($version, '.', '_') . '.php';
- file_put_contents(RELEASES_ABS . $release, " true, 'cache_control' => 30 * 60]);
-?>
-PHP $version Release Announcement
-
-$template
-
-Version $version
-
-
-HEAD;
-
-$bug_map = [
- '/Fixed bug #([0-9]+)/' => '',
- '/Fixed PECL bug #([0-9]+)/' => '',
- '/Implemented FR #([0-9]+)/' => '',
- '/GitHub PR #([0-9]+)/' => '',
- '/GH-([0-9]+)/' => '',
- '/GHSA-([0-9a-z]{4}-[0-9a-z]{4}-[0-9a-z]{4})/'
- => '',
-];
-
-foreach($entries as $module => $items) {
- echo "- $module:\n
\n";
- foreach($items as $item) {
- // strip author
- $item = preg_replace('/(\.(\s+\(CVE-\d+-\d+\))?)\s+\(.+?\)\s*$/', '\\1', $item);
- // encode HTML
- $item = htmlspecialchars($item, ENT_NOQUOTES);
- // convert bug numbers
- $item = preg_replace(array_keys($bug_map), array_values($bug_map), $item);
- echo " - $item
\n";
- }
- echo "
\n";
-}
-echo "
\n\n\n";
-
-if ($changelog) {
- $contents = ob_get_clean();
-
- $log = file_get_contents($changelog);
- if (empty($log)) {
- fprintf(STDERR, "Unable to read $changelog\n");
- exit(1);
- }
-
- $parts = explode('.', $version, 3);
- if (count($parts) < 2) {
- fprintf(STDERR, "Unable to parse branch from $version\n");
- exit(1);
- }
-
- $tag = "";
- if (strpos($log, $tag) === false) {
- fprintf(STDERR, "Unable to find branch tag in ChangeLog\n");
- exit(1);
- }
-
- $log = str_replace($tag, "$tag\n\n$contents", $log);
- file_put_contents($changelog, $log);
-}
diff --git a/composer.json b/composer.json
deleted file mode 100644
index 51d3e1f6ae..0000000000
--- a/composer.json
+++ /dev/null
@@ -1,40 +0,0 @@
-{
- "name": "php/web-php",
- "description": "The www.php.net site.",
- "license": "proprietary",
- "type": "project",
- "homepage": "https://www.php.net/",
- "support": {
- "source": "https://github.com/php/web-php"
- },
- "require": {
- "php": "~8.4.0"
- },
- "require-dev": {
- "ext-curl": "*",
- "friendsofphp/php-cs-fixer": "^3.95.18",
- "phpstan/extension-installer": "^1.4",
- "phpstan/phpstan": "^2.2",
- "phpstan/phpstan-phpunit": "^2.0",
- "phpunit/phpunit": "^11.5.50"
- },
- "autoload": {
- "psr-4": {
- "phpweb\\": "src/"
- }
- },
- "autoload-dev": {
- "psr-4": {
- "phpweb\\Test\\": "tests/"
- }
- },
- "config": {
- "platform": {
- "php": "8.4.0"
- },
- "sort-packages": true,
- "allow-plugins": {
- "phpstan/extension-installer": true
- }
- }
-}
diff --git a/composer.lock b/composer.lock
deleted file mode 100644
index 71194cf0f0..0000000000
--- a/composer.lock
+++ /dev/null
@@ -1,4643 +0,0 @@
-{
- "_readme": [
- "This file locks the dependencies of your project to a known state",
- "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
- "This file is @generated automatically"
- ],
- "content-hash": "66f95196f6d2f23b9bbcf5edb4b17d69",
- "packages": [],
- "packages-dev": [
- {
- "name": "clue/ndjson-react",
- "version": "v1.3.0",
- "source": {
- "type": "git",
- "url": "https://github.com/clue/reactphp-ndjson.git",
- "reference": "392dc165fce93b5bb5c637b67e59619223c931b0"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/clue/reactphp-ndjson/zipball/392dc165fce93b5bb5c637b67e59619223c931b0",
- "reference": "392dc165fce93b5bb5c637b67e59619223c931b0",
- "shasum": ""
- },
- "require": {
- "php": ">=5.3",
- "react/stream": "^1.2"
- },
- "require-dev": {
- "phpunit/phpunit": "^9.5 || ^5.7 || ^4.8.35",
- "react/event-loop": "^1.2"
- },
- "type": "library",
- "autoload": {
- "psr-4": {
- "Clue\\React\\NDJson\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Christian Lück",
- "email": "christian@clue.engineering"
- }
- ],
- "description": "Streaming newline-delimited JSON (NDJSON) parser and encoder for ReactPHP.",
- "homepage": "https://github.com/clue/reactphp-ndjson",
- "keywords": [
- "NDJSON",
- "json",
- "jsonlines",
- "newline",
- "reactphp",
- "streaming"
- ],
- "support": {
- "issues": "https://github.com/clue/reactphp-ndjson/issues",
- "source": "https://github.com/clue/reactphp-ndjson/tree/v1.3.0"
- },
- "funding": [
- {
- "url": "https://clue.engineering/support",
- "type": "custom"
- },
- {
- "url": "https://github.com/clue",
- "type": "github"
- }
- ],
- "time": "2022-12-23T10:58:28+00:00"
- },
- {
- "name": "composer/pcre",
- "version": "3.4.0",
- "source": {
- "type": "git",
- "url": "https://github.com/composer/pcre.git",
- "reference": "d5a341b3fb61f3001970940afb1d332968a183ed"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/composer/pcre/zipball/d5a341b3fb61f3001970940afb1d332968a183ed",
- "reference": "d5a341b3fb61f3001970940afb1d332968a183ed",
- "shasum": ""
- },
- "require": {
- "php": "^7.4 || ^8.0"
- },
- "conflict": {
- "phpstan/phpstan": "<2.2.2"
- },
- "require-dev": {
- "phpstan/phpstan": "^2",
- "phpstan/phpstan-deprecation-rules": "^2",
- "phpstan/phpstan-strict-rules": "^2",
- "phpunit/phpunit": "^9"
- },
- "type": "library",
- "extra": {
- "phpstan": {
- "includes": [
- "extension.neon"
- ]
- },
- "branch-alias": {
- "dev-main": "3.x-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "Composer\\Pcre\\": "src"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Jordi Boggiano",
- "email": "j.boggiano@seld.be",
- "homepage": "http://seld.be"
- }
- ],
- "description": "PCRE wrapping library that offers type-safe preg_* replacements.",
- "keywords": [
- "PCRE",
- "preg",
- "regex",
- "regular expression"
- ],
- "support": {
- "issues": "https://github.com/composer/pcre/issues",
- "source": "https://github.com/composer/pcre/tree/3.4.0"
- },
- "funding": [
- {
- "url": "https://packagist.com",
- "type": "custom"
- },
- {
- "url": "https://github.com/composer",
- "type": "github"
- }
- ],
- "time": "2026-06-07T11:47:49+00:00"
- },
- {
- "name": "composer/semver",
- "version": "3.4.4",
- "source": {
- "type": "git",
- "url": "https://github.com/composer/semver.git",
- "reference": "198166618906cb2de69b95d7d47e5fa8aa1b2b95"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/composer/semver/zipball/198166618906cb2de69b95d7d47e5fa8aa1b2b95",
- "reference": "198166618906cb2de69b95d7d47e5fa8aa1b2b95",
- "shasum": ""
- },
- "require": {
- "php": "^5.3.2 || ^7.0 || ^8.0"
- },
- "require-dev": {
- "phpstan/phpstan": "^1.11",
- "symfony/phpunit-bridge": "^3 || ^7"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-main": "3.x-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "Composer\\Semver\\": "src"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Nils Adermann",
- "email": "naderman@naderman.de",
- "homepage": "http://www.naderman.de"
- },
- {
- "name": "Jordi Boggiano",
- "email": "j.boggiano@seld.be",
- "homepage": "http://seld.be"
- },
- {
- "name": "Rob Bast",
- "email": "rob.bast@gmail.com",
- "homepage": "http://robbast.nl"
- }
- ],
- "description": "Semver library that offers utilities, version constraint parsing and validation.",
- "keywords": [
- "semantic",
- "semver",
- "validation",
- "versioning"
- ],
- "support": {
- "irc": "ircs://irc.libera.chat:6697/composer",
- "issues": "https://github.com/composer/semver/issues",
- "source": "https://github.com/composer/semver/tree/3.4.4"
- },
- "funding": [
- {
- "url": "https://packagist.com",
- "type": "custom"
- },
- {
- "url": "https://github.com/composer",
- "type": "github"
- }
- ],
- "time": "2025-08-20T19:15:30+00:00"
- },
- {
- "name": "composer/xdebug-handler",
- "version": "3.0.5",
- "source": {
- "type": "git",
- "url": "https://github.com/composer/xdebug-handler.git",
- "reference": "6c1925561632e83d60a44492e0b344cf48ab85ef"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/composer/xdebug-handler/zipball/6c1925561632e83d60a44492e0b344cf48ab85ef",
- "reference": "6c1925561632e83d60a44492e0b344cf48ab85ef",
- "shasum": ""
- },
- "require": {
- "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",
- "phpunit/phpunit": "^8.5 || ^9.6 || ^10.5"
- },
- "type": "library",
- "autoload": {
- "psr-4": {
- "Composer\\XdebugHandler\\": "src"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "John Stevenson",
- "email": "john-stevenson@blueyonder.co.uk"
- }
- ],
- "description": "Restarts a process without Xdebug.",
- "keywords": [
- "Xdebug",
- "performance"
- ],
- "support": {
- "irc": "ircs://irc.libera.chat:6697/composer",
- "issues": "https://github.com/composer/xdebug-handler/issues",
- "source": "https://github.com/composer/xdebug-handler/tree/3.0.5"
- },
- "funding": [
- {
- "url": "https://packagist.com",
- "type": "custom"
- },
- {
- "url": "https://github.com/composer",
- "type": "github"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/composer/composer",
- "type": "tidelift"
- }
- ],
- "time": "2024-05-06T16:37:16+00:00"
- },
- {
- "name": "ergebnis/agent-detector",
- "version": "1.2.0",
- "source": {
- "type": "git",
- "url": "https://github.com/ergebnis/agent-detector.git",
- "reference": "e211f17928c8b95a51e06040792d57f5462fb271"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/ergebnis/agent-detector/zipball/e211f17928c8b95a51e06040792d57f5462fb271",
- "reference": "e211f17928c8b95a51e06040792d57f5462fb271",
- "shasum": ""
- },
- "require": {
- "php": "~7.4.0 || ~8.0.0 || ~8.1.0 || ~8.2.0 || ~8.3.0 || ~8.4.0 || ~8.5.0 || ~8.6.0"
- },
- "require-dev": {
- "ergebnis/composer-normalize": "^2.51.0",
- "ergebnis/license": "^2.7.0",
- "ergebnis/php-cs-fixer-config": "^6.60.2",
- "ergebnis/phpstan-rules": "^2.13.1",
- "ergebnis/phpunit-slow-test-detector": "^2.24.0",
- "ergebnis/rector-rules": "^1.18.1",
- "fakerphp/faker": "^1.24.1",
- "infection/infection": "^0.26.6",
- "phpstan/extension-installer": "^1.4.3",
- "phpstan/phpstan": "^2.1.54",
- "phpstan/phpstan-deprecation-rules": "^2.0.4",
- "phpstan/phpstan-phpunit": "^2.0.16",
- "phpstan/phpstan-strict-rules": "^2.0.10",
- "phpunit/phpunit": "^9.6.34",
- "rector/rector": "^2.4.2"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-main": "1.2-dev"
- },
- "composer-normalize": {
- "indent-size": 2,
- "indent-style": "space"
- }
- },
- "autoload": {
- "psr-4": {
- "Ergebnis\\AgentDetector\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Andreas Möller",
- "email": "am@localheinz.com",
- "homepage": "https://localheinz.com"
- }
- ],
- "description": "Provides a detector for detecting the presence of an agent.",
- "homepage": "https://github.com/ergebnis/agent-detector",
- "support": {
- "issues": "https://github.com/ergebnis/agent-detector/issues",
- "security": "https://github.com/ergebnis/agent-detector/blob/main/.github/SECURITY.md",
- "source": "https://github.com/ergebnis/agent-detector"
- },
- "time": "2026-05-07T08:19:07+00:00"
- },
- {
- "name": "evenement/evenement",
- "version": "v3.0.2",
- "source": {
- "type": "git",
- "url": "https://github.com/igorw/evenement.git",
- "reference": "0a16b0d71ab13284339abb99d9d2bd813640efbc"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/igorw/evenement/zipball/0a16b0d71ab13284339abb99d9d2bd813640efbc",
- "reference": "0a16b0d71ab13284339abb99d9d2bd813640efbc",
- "shasum": ""
- },
- "require": {
- "php": ">=7.0"
- },
- "require-dev": {
- "phpunit/phpunit": "^9 || ^6"
- },
- "type": "library",
- "autoload": {
- "psr-4": {
- "Evenement\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Igor Wiedler",
- "email": "igor@wiedler.ch"
- }
- ],
- "description": "Événement is a very simple event dispatching library for PHP",
- "keywords": [
- "event-dispatcher",
- "event-emitter"
- ],
- "support": {
- "issues": "https://github.com/igorw/evenement/issues",
- "source": "https://github.com/igorw/evenement/tree/v3.0.2"
- },
- "time": "2023-08-08T05:53:35+00:00"
- },
- {
- "name": "fidry/cpu-core-counter",
- "version": "1.3.0",
- "source": {
- "type": "git",
- "url": "https://github.com/theofidry/cpu-core-counter.git",
- "reference": "db9508f7b1474469d9d3c53b86f817e344732678"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/theofidry/cpu-core-counter/zipball/db9508f7b1474469d9d3c53b86f817e344732678",
- "reference": "db9508f7b1474469d9d3c53b86f817e344732678",
- "shasum": ""
- },
- "require": {
- "php": "^7.2 || ^8.0"
- },
- "require-dev": {
- "fidry/makefile": "^0.2.0",
- "fidry/php-cs-fixer-config": "^1.1.2",
- "phpstan/extension-installer": "^1.2.0",
- "phpstan/phpstan": "^2.0",
- "phpstan/phpstan-deprecation-rules": "^2.0.0",
- "phpstan/phpstan-phpunit": "^2.0",
- "phpstan/phpstan-strict-rules": "^2.0",
- "phpunit/phpunit": "^8.5.31 || ^9.5.26",
- "webmozarts/strict-phpunit": "^7.5"
- },
- "type": "library",
- "autoload": {
- "psr-4": {
- "Fidry\\CpuCoreCounter\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Théo FIDRY",
- "email": "theo.fidry@gmail.com"
- }
- ],
- "description": "Tiny utility to get the number of CPU cores.",
- "keywords": [
- "CPU",
- "core"
- ],
- "support": {
- "issues": "https://github.com/theofidry/cpu-core-counter/issues",
- "source": "https://github.com/theofidry/cpu-core-counter/tree/1.3.0"
- },
- "funding": [
- {
- "url": "https://github.com/theofidry",
- "type": "github"
- }
- ],
- "time": "2025-08-14T07:29:31+00:00"
- },
- {
- "name": "friendsofphp/php-cs-fixer",
- "version": "v3.95.18",
- "source": {
- "type": "git",
- "url": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer.git",
- "reference": "a8b4e4216faabf67f4e96110ee99a48c96e4e683"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/PHP-CS-Fixer/PHP-CS-Fixer/zipball/a8b4e4216faabf67f4e96110ee99a48c96e4e683",
- "reference": "a8b4e4216faabf67f4e96110ee99a48c96e4e683",
- "shasum": ""
- },
- "require": {
- "clue/ndjson-react": "^1.3",
- "composer/semver": "^3.4",
- "composer/xdebug-handler": "^3.0.5",
- "ergebnis/agent-detector": "^1.2",
- "ext-filter": "*",
- "ext-hash": "*",
- "ext-json": "*",
- "ext-tokenizer": "*",
- "fidry/cpu-core-counter": "^1.3",
- "php": "^7.4 || ^8.0",
- "react/child-process": "^0.6.6",
- "react/event-loop": "^1.5",
- "react/socket": "^1.16",
- "react/stream": "^1.4",
- "sebastian/diff": "^4.0.6 || ^5.1.1 || ^6.0.2 || ^7.0 || ^8.0 || ^9.0",
- "symfony/console": "^5.4.47 || ^6.4.24 || ^7.0 || ^8.0",
- "symfony/event-dispatcher": "^5.4.45 || ^6.4.24 || ^7.0 || ^8.0",
- "symfony/filesystem": "^5.4.45 || ^6.4.24 || ^7.0 || ^8.0",
- "symfony/finder": "^5.4.45 || ^6.4.24 || ^7.0 || ^8.0",
- "symfony/options-resolver": "^5.4.45 || ^6.4.24 || ^7.0 || ^8.0",
- "symfony/polyfill-mbstring": "^1.37",
- "symfony/polyfill-php80": "^1.37",
- "symfony/polyfill-php81": "^1.37",
- "symfony/polyfill-php84": "^1.37",
- "symfony/process": "^5.4.47 || ^6.4.24 || ^7.2 || ^8.0",
- "symfony/stopwatch": "^5.4.45 || ^6.4.24 || ^7.0 || ^8.0"
- },
- "require-dev": {
- "facile-it/paraunit": "^1.3.1 || ^2.11.0",
- "infection/infection": "^0.32.7",
- "justinrainbow/json-schema": "^6.10.0",
- "keradus/cli-executor": "^2.3",
- "mikey179/vfsstream": "^1.6.12",
- "php-coveralls/php-coveralls": "^2.9.1",
- "php-cs-fixer/phpunit-constraint-isidenticalstring": "^1.8",
- "php-cs-fixer/phpunit-constraint-xmlmatchesxsd": "^1.8",
- "phpunit/phpunit": "^9.6.35 || ^10.5.64 || ^11.5.56 || ^12.5.31 || ^13.0.6",
- "symfony/polyfill-php85": "^1.38",
- "symfony/var-dumper": "^5.4.48 || ^6.4.36 || ^7.4.8 || ^8.1.1",
- "symfony/yaml": "^5.4.53 || ^6.4.41 || ^7.4.13 || ^8.1.1"
- },
- "suggest": {
- "ext-dom": "For handling output formats in XML",
- "ext-mbstring": "For handling non-UTF8 characters."
- },
- "bin": [
- "php-cs-fixer"
- ],
- "type": "application",
- "autoload": {
- "psr-4": {
- "PhpCsFixer\\": "src/"
- },
- "exclude-from-classmap": [
- "src/**/Internal/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Fabien Potencier",
- "email": "fabien@symfony.com"
- },
- {
- "name": "Dariusz Rumiński",
- "email": "dariusz.ruminski@gmail.com"
- }
- ],
- "description": "A tool to automatically fix PHP code style",
- "keywords": [
- "Static code analysis",
- "fixer",
- "standards",
- "static analysis"
- ],
- "support": {
- "issues": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues",
- "source": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/tree/v3.95.18"
- },
- "funding": [
- {
- "url": "https://github.com/keradus",
- "type": "github"
- }
- ],
- "time": "2026-07-30T15:46:02+00:00"
- },
- {
- "name": "myclabs/deep-copy",
- "version": "1.13.4",
- "source": {
- "type": "git",
- "url": "https://github.com/myclabs/DeepCopy.git",
- "reference": "07d290f0c47959fd5eed98c95ee5602db07e0b6a"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/07d290f0c47959fd5eed98c95ee5602db07e0b6a",
- "reference": "07d290f0c47959fd5eed98c95ee5602db07e0b6a",
- "shasum": ""
- },
- "require": {
- "php": "^7.1 || ^8.0"
- },
- "conflict": {
- "doctrine/collections": "<1.6.8",
- "doctrine/common": "<2.13.3 || >=3 <3.2.2"
- },
- "require-dev": {
- "doctrine/collections": "^1.6.8",
- "doctrine/common": "^2.13.3 || ^3.2.2",
- "phpspec/prophecy": "^1.10",
- "phpunit/phpunit": "^7.5.20 || ^8.5.23 || ^9.5.13"
- },
- "type": "library",
- "autoload": {
- "files": [
- "src/DeepCopy/deep_copy.php"
- ],
- "psr-4": {
- "DeepCopy\\": "src/DeepCopy/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "description": "Create deep copies (clones) of your objects",
- "keywords": [
- "clone",
- "copy",
- "duplicate",
- "object",
- "object graph"
- ],
- "support": {
- "issues": "https://github.com/myclabs/DeepCopy/issues",
- "source": "https://github.com/myclabs/DeepCopy/tree/1.13.4"
- },
- "funding": [
- {
- "url": "https://tidelift.com/funding/github/packagist/myclabs/deep-copy",
- "type": "tidelift"
- }
- ],
- "time": "2025-08-01T08:46:24+00:00"
- },
- {
- "name": "nikic/php-parser",
- "version": "v5.7.0",
- "source": {
- "type": "git",
- "url": "https://github.com/nikic/PHP-Parser.git",
- "reference": "dca41cd15c2ac9d055ad70dbfd011130757d1f82"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/dca41cd15c2ac9d055ad70dbfd011130757d1f82",
- "reference": "dca41cd15c2ac9d055ad70dbfd011130757d1f82",
- "shasum": ""
- },
- "require": {
- "ext-ctype": "*",
- "ext-json": "*",
- "ext-tokenizer": "*",
- "php": ">=7.4"
- },
- "require-dev": {
- "ircmaxell/php-yacc": "^0.0.7",
- "phpunit/phpunit": "^9.0"
- },
- "bin": [
- "bin/php-parse"
- ],
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "5.x-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "PhpParser\\": "lib/PhpParser"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "BSD-3-Clause"
- ],
- "authors": [
- {
- "name": "Nikita Popov"
- }
- ],
- "description": "A PHP parser written in PHP",
- "keywords": [
- "parser",
- "php"
- ],
- "support": {
- "issues": "https://github.com/nikic/PHP-Parser/issues",
- "source": "https://github.com/nikic/PHP-Parser/tree/v5.7.0"
- },
- "time": "2025-12-06T11:56:16+00:00"
- },
- {
- "name": "phar-io/manifest",
- "version": "2.0.4",
- "source": {
- "type": "git",
- "url": "https://github.com/phar-io/manifest.git",
- "reference": "54750ef60c58e43759730615a392c31c80e23176"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/phar-io/manifest/zipball/54750ef60c58e43759730615a392c31c80e23176",
- "reference": "54750ef60c58e43759730615a392c31c80e23176",
- "shasum": ""
- },
- "require": {
- "ext-dom": "*",
- "ext-libxml": "*",
- "ext-phar": "*",
- "ext-xmlwriter": "*",
- "phar-io/version": "^3.0.1",
- "php": "^7.2 || ^8.0"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "2.0.x-dev"
- }
- },
- "autoload": {
- "classmap": [
- "src/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "BSD-3-Clause"
- ],
- "authors": [
- {
- "name": "Arne Blankerts",
- "email": "arne@blankerts.de",
- "role": "Developer"
- },
- {
- "name": "Sebastian Heuer",
- "email": "sebastian@phpeople.de",
- "role": "Developer"
- },
- {
- "name": "Sebastian Bergmann",
- "email": "sebastian@phpunit.de",
- "role": "Developer"
- }
- ],
- "description": "Component for reading phar.io manifest information from a PHP Archive (PHAR)",
- "support": {
- "issues": "https://github.com/phar-io/manifest/issues",
- "source": "https://github.com/phar-io/manifest/tree/2.0.4"
- },
- "funding": [
- {
- "url": "https://github.com/theseer",
- "type": "github"
- }
- ],
- "time": "2024-03-03T12:33:53+00:00"
- },
- {
- "name": "phar-io/version",
- "version": "3.2.1",
- "source": {
- "type": "git",
- "url": "https://github.com/phar-io/version.git",
- "reference": "4f7fd7836c6f332bb2933569e566a0d6c4cbed74"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/phar-io/version/zipball/4f7fd7836c6f332bb2933569e566a0d6c4cbed74",
- "reference": "4f7fd7836c6f332bb2933569e566a0d6c4cbed74",
- "shasum": ""
- },
- "require": {
- "php": "^7.2 || ^8.0"
- },
- "type": "library",
- "autoload": {
- "classmap": [
- "src/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "BSD-3-Clause"
- ],
- "authors": [
- {
- "name": "Arne Blankerts",
- "email": "arne@blankerts.de",
- "role": "Developer"
- },
- {
- "name": "Sebastian Heuer",
- "email": "sebastian@phpeople.de",
- "role": "Developer"
- },
- {
- "name": "Sebastian Bergmann",
- "email": "sebastian@phpunit.de",
- "role": "Developer"
- }
- ],
- "description": "Library for handling version information and constraints",
- "support": {
- "issues": "https://github.com/phar-io/version/issues",
- "source": "https://github.com/phar-io/version/tree/3.2.1"
- },
- "time": "2022-02-21T01:04:05+00:00"
- },
- {
- "name": "phpstan/extension-installer",
- "version": "1.4.3",
- "source": {
- "type": "git",
- "url": "https://github.com/phpstan/extension-installer.git",
- "reference": "85e90b3942d06b2326fba0403ec24fe912372936"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/phpstan/extension-installer/zipball/85e90b3942d06b2326fba0403ec24fe912372936",
- "reference": "85e90b3942d06b2326fba0403ec24fe912372936",
- "shasum": ""
- },
- "require": {
- "composer-plugin-api": "^2.0",
- "php": "^7.2 || ^8.0",
- "phpstan/phpstan": "^1.9.0 || ^2.0"
- },
- "require-dev": {
- "composer/composer": "^2.0",
- "php-parallel-lint/php-parallel-lint": "^1.2.0",
- "phpstan/phpstan-strict-rules": "^0.11 || ^0.12 || ^1.0"
- },
- "type": "composer-plugin",
- "extra": {
- "class": "PHPStan\\ExtensionInstaller\\Plugin"
- },
- "autoload": {
- "psr-4": {
- "PHPStan\\ExtensionInstaller\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "description": "Composer plugin for automatic installation of PHPStan extensions",
- "keywords": [
- "dev",
- "static analysis"
- ],
- "support": {
- "issues": "https://github.com/phpstan/extension-installer/issues",
- "source": "https://github.com/phpstan/extension-installer/tree/1.4.3"
- },
- "time": "2024-09-04T20:21:43+00:00"
- },
- {
- "name": "phpstan/phpstan",
- "version": "2.2.7",
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/phpstan/phpstan/zipball/692db47b9dddb0487934e5236e77d48594aef921",
- "reference": "692db47b9dddb0487934e5236e77d48594aef921",
- "shasum": ""
- },
- "require": {
- "php": "^7.4|^8.0"
- },
- "conflict": {
- "phpstan/phpstan-shim": "*"
- },
- "bin": [
- "phpstan",
- "phpstan.phar"
- ],
- "type": "library",
- "autoload": {
- "files": [
- "bootstrap.php"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Ondřej Mirtes"
- },
- {
- "name": "Markus Staab"
- },
- {
- "name": "Vincent Langlet"
- }
- ],
- "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",
- "security": "https://github.com/phpstan/phpstan/security/policy",
- "source": "https://github.com/phpstan/phpstan-src"
- },
- "funding": [
- {
- "url": "https://github.com/ondrejmirtes",
- "type": "github"
- },
- {
- "url": "https://github.com/phpstan",
- "type": "github"
- }
- ],
- "time": "2026-07-29T17:39:32+00:00"
- },
- {
- "name": "phpstan/phpstan-phpunit",
- "version": "2.0.18",
- "source": {
- "type": "git",
- "url": "https://github.com/phpstan/phpstan-phpunit.git",
- "reference": "f5dc20ff8082d02339b60cab68ec3eb0d859fb30"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/phpstan/phpstan-phpunit/zipball/f5dc20ff8082d02339b60cab68ec3eb0d859fb30",
- "reference": "f5dc20ff8082d02339b60cab68ec3eb0d859fb30",
- "shasum": ""
- },
- "require": {
- "phar-io/version": "^3.2",
- "php": "^7.4 || ^8.0",
- "phpstan/phpstan": "^2.2.3"
- },
- "conflict": {
- "phpunit/phpunit": "<7.0"
- },
- "require-dev": {
- "nikic/php-parser": "^5",
- "php-parallel-lint/php-parallel-lint": "^1.2",
- "phpstan/phpstan-deprecation-rules": "^2.0",
- "phpstan/phpstan-strict-rules": "^2.0",
- "phpunit/phpunit": "^9.6",
- "shipmonk/name-collision-detector": "^2.1"
- },
- "type": "phpstan-extension",
- "extra": {
- "phpstan": {
- "includes": [
- "extension.neon",
- "rules.neon"
- ]
- }
- },
- "autoload": {
- "psr-4": {
- "PHPStan\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "description": "PHPUnit extensions and rules for PHPStan",
- "keywords": [
- "static analysis"
- ],
- "support": {
- "issues": "https://github.com/phpstan/phpstan-phpunit/issues",
- "source": "https://github.com/phpstan/phpstan-phpunit/tree/2.0.18"
- },
- "time": "2026-07-04T12:16:09+00:00"
- },
- {
- "name": "phpunit/php-code-coverage",
- "version": "11.0.12",
- "source": {
- "type": "git",
- "url": "https://github.com/sebastianbergmann/php-code-coverage.git",
- "reference": "2c1ed04922802c15e1de5d7447b4856de949cf56"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/2c1ed04922802c15e1de5d7447b4856de949cf56",
- "reference": "2c1ed04922802c15e1de5d7447b4856de949cf56",
- "shasum": ""
- },
- "require": {
- "ext-dom": "*",
- "ext-libxml": "*",
- "ext-xmlwriter": "*",
- "nikic/php-parser": "^5.7.0",
- "php": ">=8.2",
- "phpunit/php-file-iterator": "^5.1.0",
- "phpunit/php-text-template": "^4.0.1",
- "sebastian/code-unit-reverse-lookup": "^4.0.1",
- "sebastian/complexity": "^4.0.1",
- "sebastian/environment": "^7.2.1",
- "sebastian/lines-of-code": "^3.0.1",
- "sebastian/version": "^5.0.2",
- "theseer/tokenizer": "^1.3.1"
- },
- "require-dev": {
- "phpunit/phpunit": "^11.5.46"
- },
- "suggest": {
- "ext-pcov": "PHP extension that provides line coverage",
- "ext-xdebug": "PHP extension that provides line coverage as well as branch and path coverage"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-main": "11.0.x-dev"
- }
- },
- "autoload": {
- "classmap": [
- "src/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "BSD-3-Clause"
- ],
- "authors": [
- {
- "name": "Sebastian Bergmann",
- "email": "sebastian@phpunit.de",
- "role": "lead"
- }
- ],
- "description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.",
- "homepage": "https://github.com/sebastianbergmann/php-code-coverage",
- "keywords": [
- "coverage",
- "testing",
- "xunit"
- ],
- "support": {
- "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues",
- "security": "https://github.com/sebastianbergmann/php-code-coverage/security/policy",
- "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/11.0.12"
- },
- "funding": [
- {
- "url": "https://github.com/sebastianbergmann",
- "type": "github"
- },
- {
- "url": "https://liberapay.com/sebastianbergmann",
- "type": "liberapay"
- },
- {
- "url": "https://thanks.dev/u/gh/sebastianbergmann",
- "type": "thanks_dev"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/phpunit/php-code-coverage",
- "type": "tidelift"
- }
- ],
- "time": "2025-12-24T07:01:01+00:00"
- },
- {
- "name": "phpunit/php-file-iterator",
- "version": "5.1.1",
- "source": {
- "type": "git",
- "url": "https://github.com/sebastianbergmann/php-file-iterator.git",
- "reference": "2f3a64888c814fc235386b7387dd5b5ed92ad903"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/2f3a64888c814fc235386b7387dd5b5ed92ad903",
- "reference": "2f3a64888c814fc235386b7387dd5b5ed92ad903",
- "shasum": ""
- },
- "require": {
- "php": ">=8.2"
- },
- "require-dev": {
- "phpunit/phpunit": "^11.3"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-main": "5.1-dev"
- }
- },
- "autoload": {
- "classmap": [
- "src/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "BSD-3-Clause"
- ],
- "authors": [
- {
- "name": "Sebastian Bergmann",
- "email": "sebastian@phpunit.de",
- "role": "lead"
- }
- ],
- "description": "FilterIterator implementation that filters files based on a list of suffixes.",
- "homepage": "https://github.com/sebastianbergmann/php-file-iterator/",
- "keywords": [
- "filesystem",
- "iterator"
- ],
- "support": {
- "issues": "https://github.com/sebastianbergmann/php-file-iterator/issues",
- "security": "https://github.com/sebastianbergmann/php-file-iterator/security/policy",
- "source": "https://github.com/sebastianbergmann/php-file-iterator/tree/5.1.1"
- },
- "funding": [
- {
- "url": "https://github.com/sebastianbergmann",
- "type": "github"
- },
- {
- "url": "https://liberapay.com/sebastianbergmann",
- "type": "liberapay"
- },
- {
- "url": "https://thanks.dev/u/gh/sebastianbergmann",
- "type": "thanks_dev"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/phpunit/php-file-iterator",
- "type": "tidelift"
- }
- ],
- "time": "2026-02-02T13:52:54+00:00"
- },
- {
- "name": "phpunit/php-invoker",
- "version": "5.0.1",
- "source": {
- "type": "git",
- "url": "https://github.com/sebastianbergmann/php-invoker.git",
- "reference": "c1ca3814734c07492b3d4c5f794f4b0995333da2"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/php-invoker/zipball/c1ca3814734c07492b3d4c5f794f4b0995333da2",
- "reference": "c1ca3814734c07492b3d4c5f794f4b0995333da2",
- "shasum": ""
- },
- "require": {
- "php": ">=8.2"
- },
- "require-dev": {
- "ext-pcntl": "*",
- "phpunit/phpunit": "^11.0"
- },
- "suggest": {
- "ext-pcntl": "*"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-main": "5.0-dev"
- }
- },
- "autoload": {
- "classmap": [
- "src/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "BSD-3-Clause"
- ],
- "authors": [
- {
- "name": "Sebastian Bergmann",
- "email": "sebastian@phpunit.de",
- "role": "lead"
- }
- ],
- "description": "Invoke callables with a timeout",
- "homepage": "https://github.com/sebastianbergmann/php-invoker/",
- "keywords": [
- "process"
- ],
- "support": {
- "issues": "https://github.com/sebastianbergmann/php-invoker/issues",
- "security": "https://github.com/sebastianbergmann/php-invoker/security/policy",
- "source": "https://github.com/sebastianbergmann/php-invoker/tree/5.0.1"
- },
- "funding": [
- {
- "url": "https://github.com/sebastianbergmann",
- "type": "github"
- }
- ],
- "time": "2024-07-03T05:07:44+00:00"
- },
- {
- "name": "phpunit/php-text-template",
- "version": "4.0.1",
- "source": {
- "type": "git",
- "url": "https://github.com/sebastianbergmann/php-text-template.git",
- "reference": "3e0404dc6b300e6bf56415467ebcb3fe4f33e964"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/3e0404dc6b300e6bf56415467ebcb3fe4f33e964",
- "reference": "3e0404dc6b300e6bf56415467ebcb3fe4f33e964",
- "shasum": ""
- },
- "require": {
- "php": ">=8.2"
- },
- "require-dev": {
- "phpunit/phpunit": "^11.0"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-main": "4.0-dev"
- }
- },
- "autoload": {
- "classmap": [
- "src/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "BSD-3-Clause"
- ],
- "authors": [
- {
- "name": "Sebastian Bergmann",
- "email": "sebastian@phpunit.de",
- "role": "lead"
- }
- ],
- "description": "Simple template engine.",
- "homepage": "https://github.com/sebastianbergmann/php-text-template/",
- "keywords": [
- "template"
- ],
- "support": {
- "issues": "https://github.com/sebastianbergmann/php-text-template/issues",
- "security": "https://github.com/sebastianbergmann/php-text-template/security/policy",
- "source": "https://github.com/sebastianbergmann/php-text-template/tree/4.0.1"
- },
- "funding": [
- {
- "url": "https://github.com/sebastianbergmann",
- "type": "github"
- }
- ],
- "time": "2024-07-03T05:08:43+00:00"
- },
- {
- "name": "phpunit/php-timer",
- "version": "7.0.1",
- "source": {
- "type": "git",
- "url": "https://github.com/sebastianbergmann/php-timer.git",
- "reference": "3b415def83fbcb41f991d9ebf16ae4ad8b7837b3"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/3b415def83fbcb41f991d9ebf16ae4ad8b7837b3",
- "reference": "3b415def83fbcb41f991d9ebf16ae4ad8b7837b3",
- "shasum": ""
- },
- "require": {
- "php": ">=8.2"
- },
- "require-dev": {
- "phpunit/phpunit": "^11.0"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-main": "7.0-dev"
- }
- },
- "autoload": {
- "classmap": [
- "src/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "BSD-3-Clause"
- ],
- "authors": [
- {
- "name": "Sebastian Bergmann",
- "email": "sebastian@phpunit.de",
- "role": "lead"
- }
- ],
- "description": "Utility class for timing",
- "homepage": "https://github.com/sebastianbergmann/php-timer/",
- "keywords": [
- "timer"
- ],
- "support": {
- "issues": "https://github.com/sebastianbergmann/php-timer/issues",
- "security": "https://github.com/sebastianbergmann/php-timer/security/policy",
- "source": "https://github.com/sebastianbergmann/php-timer/tree/7.0.1"
- },
- "funding": [
- {
- "url": "https://github.com/sebastianbergmann",
- "type": "github"
- }
- ],
- "time": "2024-07-03T05:09:35+00:00"
- },
- {
- "name": "phpunit/phpunit",
- "version": "11.5.55",
- "source": {
- "type": "git",
- "url": "https://github.com/sebastianbergmann/phpunit.git",
- "reference": "adc7262fccc12de2b30f12a8aa0b33775d814f00"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/adc7262fccc12de2b30f12a8aa0b33775d814f00",
- "reference": "adc7262fccc12de2b30f12a8aa0b33775d814f00",
- "shasum": ""
- },
- "require": {
- "ext-dom": "*",
- "ext-json": "*",
- "ext-libxml": "*",
- "ext-mbstring": "*",
- "ext-xml": "*",
- "ext-xmlwriter": "*",
- "myclabs/deep-copy": "^1.13.4",
- "phar-io/manifest": "^2.0.4",
- "phar-io/version": "^3.2.1",
- "php": ">=8.2",
- "phpunit/php-code-coverage": "^11.0.12",
- "phpunit/php-file-iterator": "^5.1.1",
- "phpunit/php-invoker": "^5.0.1",
- "phpunit/php-text-template": "^4.0.1",
- "phpunit/php-timer": "^7.0.1",
- "sebastian/cli-parser": "^3.0.2",
- "sebastian/code-unit": "^3.0.3",
- "sebastian/comparator": "^6.3.3",
- "sebastian/diff": "^6.0.2",
- "sebastian/environment": "^7.2.1",
- "sebastian/exporter": "^6.3.2",
- "sebastian/global-state": "^7.0.2",
- "sebastian/object-enumerator": "^6.0.1",
- "sebastian/recursion-context": "^6.0.3",
- "sebastian/type": "^5.1.3",
- "sebastian/version": "^5.0.2",
- "staabm/side-effects-detector": "^1.0.5"
- },
- "suggest": {
- "ext-soap": "To be able to generate mocks based on WSDL files"
- },
- "bin": [
- "phpunit"
- ],
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-main": "11.5-dev"
- }
- },
- "autoload": {
- "files": [
- "src/Framework/Assert/Functions.php"
- ],
- "classmap": [
- "src/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "BSD-3-Clause"
- ],
- "authors": [
- {
- "name": "Sebastian Bergmann",
- "email": "sebastian@phpunit.de",
- "role": "lead"
- }
- ],
- "description": "The PHP Unit Testing framework.",
- "homepage": "https://phpunit.de/",
- "keywords": [
- "phpunit",
- "testing",
- "xunit"
- ],
- "support": {
- "issues": "https://github.com/sebastianbergmann/phpunit/issues",
- "security": "https://github.com/sebastianbergmann/phpunit/security/policy",
- "source": "https://github.com/sebastianbergmann/phpunit/tree/11.5.55"
- },
- "funding": [
- {
- "url": "https://phpunit.de/sponsors.html",
- "type": "custom"
- },
- {
- "url": "https://github.com/sebastianbergmann",
- "type": "github"
- },
- {
- "url": "https://liberapay.com/sebastianbergmann",
- "type": "liberapay"
- },
- {
- "url": "https://thanks.dev/u/gh/sebastianbergmann",
- "type": "thanks_dev"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/phpunit/phpunit",
- "type": "tidelift"
- }
- ],
- "time": "2026-02-18T12:37:06+00:00"
- },
- {
- "name": "psr/container",
- "version": "2.0.2",
- "source": {
- "type": "git",
- "url": "https://github.com/php-fig/container.git",
- "reference": "c71ecc56dfe541dbd90c5360474fbc405f8d5963"
- },
- "dist": {
- "type": "zip",
- "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/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "PHP-FIG",
- "homepage": "https://www.php-fig.org/"
- }
- ],
- "description": "Common Container Interface (PHP FIG PSR-11)",
- "homepage": "https://github.com/php-fig/container",
- "keywords": [
- "PSR-11",
- "container",
- "container-interface",
- "container-interop",
- "psr"
- ],
- "support": {
- "issues": "https://github.com/php-fig/container/issues",
- "source": "https://github.com/php-fig/container/tree/2.0.2"
- },
- "time": "2021-11-05T16:47:00+00:00"
- },
- {
- "name": "psr/event-dispatcher",
- "version": "1.0.0",
- "source": {
- "type": "git",
- "url": "https://github.com/php-fig/event-dispatcher.git",
- "reference": "dbefd12671e8a14ec7f180cab83036ed26714bb0"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/php-fig/event-dispatcher/zipball/dbefd12671e8a14ec7f180cab83036ed26714bb0",
- "reference": "dbefd12671e8a14ec7f180cab83036ed26714bb0",
- "shasum": ""
- },
- "require": {
- "php": ">=7.2.0"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.0.x-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "Psr\\EventDispatcher\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "PHP-FIG",
- "homepage": "http://www.php-fig.org/"
- }
- ],
- "description": "Standard interfaces for event handling.",
- "keywords": [
- "events",
- "psr",
- "psr-14"
- ],
- "support": {
- "issues": "https://github.com/php-fig/event-dispatcher/issues",
- "source": "https://github.com/php-fig/event-dispatcher/tree/1.0.0"
- },
- "time": "2019-01-08T18:20:26+00:00"
- },
- {
- "name": "psr/log",
- "version": "3.0.2",
- "source": {
- "type": "git",
- "url": "https://github.com/php-fig/log.git",
- "reference": "f16e1d5863e37f8d8c2a01719f5b34baa2b714d3"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/php-fig/log/zipball/f16e1d5863e37f8d8c2a01719f5b34baa2b714d3",
- "reference": "f16e1d5863e37f8d8c2a01719f5b34baa2b714d3",
- "shasum": ""
- },
- "require": {
- "php": ">=8.0.0"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "3.x-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "Psr\\Log\\": "src"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "PHP-FIG",
- "homepage": "https://www.php-fig.org/"
- }
- ],
- "description": "Common interface for logging libraries",
- "homepage": "https://github.com/php-fig/log",
- "keywords": [
- "log",
- "psr",
- "psr-3"
- ],
- "support": {
- "source": "https://github.com/php-fig/log/tree/3.0.2"
- },
- "time": "2024-09-11T13:17:53+00:00"
- },
- {
- "name": "react/cache",
- "version": "v1.2.0",
- "source": {
- "type": "git",
- "url": "https://github.com/reactphp/cache.git",
- "reference": "d47c472b64aa5608225f47965a484b75c7817d5b"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/reactphp/cache/zipball/d47c472b64aa5608225f47965a484b75c7817d5b",
- "reference": "d47c472b64aa5608225f47965a484b75c7817d5b",
- "shasum": ""
- },
- "require": {
- "php": ">=5.3.0",
- "react/promise": "^3.0 || ^2.0 || ^1.1"
- },
- "require-dev": {
- "phpunit/phpunit": "^9.5 || ^5.7 || ^4.8.35"
- },
- "type": "library",
- "autoload": {
- "psr-4": {
- "React\\Cache\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Christian Lück",
- "email": "christian@clue.engineering",
- "homepage": "https://clue.engineering/"
- },
- {
- "name": "Cees-Jan Kiewiet",
- "email": "reactphp@ceesjankiewiet.nl",
- "homepage": "https://wyrihaximus.net/"
- },
- {
- "name": "Jan Sorgalla",
- "email": "jsorgalla@gmail.com",
- "homepage": "https://sorgalla.com/"
- },
- {
- "name": "Chris Boden",
- "email": "cboden@gmail.com",
- "homepage": "https://cboden.dev/"
- }
- ],
- "description": "Async, Promise-based cache interface for ReactPHP",
- "keywords": [
- "cache",
- "caching",
- "promise",
- "reactphp"
- ],
- "support": {
- "issues": "https://github.com/reactphp/cache/issues",
- "source": "https://github.com/reactphp/cache/tree/v1.2.0"
- },
- "funding": [
- {
- "url": "https://opencollective.com/reactphp",
- "type": "open_collective"
- }
- ],
- "time": "2022-11-30T15:59:55+00:00"
- },
- {
- "name": "react/child-process",
- "version": "v0.6.7",
- "source": {
- "type": "git",
- "url": "https://github.com/reactphp/child-process.git",
- "reference": "970f0e71945556422ee4570ccbabaedc3cf04ad3"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/reactphp/child-process/zipball/970f0e71945556422ee4570ccbabaedc3cf04ad3",
- "reference": "970f0e71945556422ee4570ccbabaedc3cf04ad3",
- "shasum": ""
- },
- "require": {
- "evenement/evenement": "^3.0 || ^2.0 || ^1.0",
- "php": ">=5.3.0",
- "react/event-loop": "^1.2",
- "react/stream": "^1.4"
- },
- "require-dev": {
- "phpunit/phpunit": "^9.6 || ^5.7 || ^4.8.36",
- "react/socket": "^1.16",
- "sebastian/environment": "^5.0 || ^3.0 || ^2.0 || ^1.0"
- },
- "type": "library",
- "autoload": {
- "psr-4": {
- "React\\ChildProcess\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Christian Lück",
- "email": "christian@clue.engineering",
- "homepage": "https://clue.engineering/"
- },
- {
- "name": "Cees-Jan Kiewiet",
- "email": "reactphp@ceesjankiewiet.nl",
- "homepage": "https://wyrihaximus.net/"
- },
- {
- "name": "Jan Sorgalla",
- "email": "jsorgalla@gmail.com",
- "homepage": "https://sorgalla.com/"
- },
- {
- "name": "Chris Boden",
- "email": "cboden@gmail.com",
- "homepage": "https://cboden.dev/"
- }
- ],
- "description": "Event-driven library for executing child processes with ReactPHP.",
- "keywords": [
- "event-driven",
- "process",
- "reactphp"
- ],
- "support": {
- "issues": "https://github.com/reactphp/child-process/issues",
- "source": "https://github.com/reactphp/child-process/tree/v0.6.7"
- },
- "funding": [
- {
- "url": "https://opencollective.com/reactphp",
- "type": "open_collective"
- }
- ],
- "time": "2025-12-23T15:25:20+00:00"
- },
- {
- "name": "react/dns",
- "version": "v1.14.0",
- "source": {
- "type": "git",
- "url": "https://github.com/reactphp/dns.git",
- "reference": "7562c05391f42701c1fccf189c8225fece1cd7c3"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/reactphp/dns/zipball/7562c05391f42701c1fccf189c8225fece1cd7c3",
- "reference": "7562c05391f42701c1fccf189c8225fece1cd7c3",
- "shasum": ""
- },
- "require": {
- "php": ">=5.3.0",
- "react/cache": "^1.0 || ^0.6 || ^0.5",
- "react/event-loop": "^1.2",
- "react/promise": "^3.2 || ^2.7 || ^1.2.1"
- },
- "require-dev": {
- "phpunit/phpunit": "^9.6 || ^5.7 || ^4.8.36",
- "react/async": "^4.3 || ^3 || ^2",
- "react/promise-timer": "^1.11"
- },
- "type": "library",
- "autoload": {
- "psr-4": {
- "React\\Dns\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Christian Lück",
- "email": "christian@clue.engineering",
- "homepage": "https://clue.engineering/"
- },
- {
- "name": "Cees-Jan Kiewiet",
- "email": "reactphp@ceesjankiewiet.nl",
- "homepage": "https://wyrihaximus.net/"
- },
- {
- "name": "Jan Sorgalla",
- "email": "jsorgalla@gmail.com",
- "homepage": "https://sorgalla.com/"
- },
- {
- "name": "Chris Boden",
- "email": "cboden@gmail.com",
- "homepage": "https://cboden.dev/"
- }
- ],
- "description": "Async DNS resolver for ReactPHP",
- "keywords": [
- "async",
- "dns",
- "dns-resolver",
- "reactphp"
- ],
- "support": {
- "issues": "https://github.com/reactphp/dns/issues",
- "source": "https://github.com/reactphp/dns/tree/v1.14.0"
- },
- "funding": [
- {
- "url": "https://opencollective.com/reactphp",
- "type": "open_collective"
- }
- ],
- "time": "2025-11-18T19:34:28+00:00"
- },
- {
- "name": "react/event-loop",
- "version": "v1.6.0",
- "source": {
- "type": "git",
- "url": "https://github.com/reactphp/event-loop.git",
- "reference": "ba276bda6083df7e0050fd9b33f66ad7a4ac747a"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/reactphp/event-loop/zipball/ba276bda6083df7e0050fd9b33f66ad7a4ac747a",
- "reference": "ba276bda6083df7e0050fd9b33f66ad7a4ac747a",
- "shasum": ""
- },
- "require": {
- "php": ">=5.3.0"
- },
- "require-dev": {
- "phpunit/phpunit": "^9.6 || ^5.7 || ^4.8.36"
- },
- "suggest": {
- "ext-pcntl": "For signal handling support when using the StreamSelectLoop"
- },
- "type": "library",
- "autoload": {
- "psr-4": {
- "React\\EventLoop\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Christian Lück",
- "email": "christian@clue.engineering",
- "homepage": "https://clue.engineering/"
- },
- {
- "name": "Cees-Jan Kiewiet",
- "email": "reactphp@ceesjankiewiet.nl",
- "homepage": "https://wyrihaximus.net/"
- },
- {
- "name": "Jan Sorgalla",
- "email": "jsorgalla@gmail.com",
- "homepage": "https://sorgalla.com/"
- },
- {
- "name": "Chris Boden",
- "email": "cboden@gmail.com",
- "homepage": "https://cboden.dev/"
- }
- ],
- "description": "ReactPHP's core reactor event loop that libraries can use for evented I/O.",
- "keywords": [
- "asynchronous",
- "event-loop"
- ],
- "support": {
- "issues": "https://github.com/reactphp/event-loop/issues",
- "source": "https://github.com/reactphp/event-loop/tree/v1.6.0"
- },
- "funding": [
- {
- "url": "https://opencollective.com/reactphp",
- "type": "open_collective"
- }
- ],
- "time": "2025-11-17T20:46:25+00:00"
- },
- {
- "name": "react/promise",
- "version": "v3.3.0",
- "source": {
- "type": "git",
- "url": "https://github.com/reactphp/promise.git",
- "reference": "23444f53a813a3296c1368bb104793ce8d88f04a"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/reactphp/promise/zipball/23444f53a813a3296c1368bb104793ce8d88f04a",
- "reference": "23444f53a813a3296c1368bb104793ce8d88f04a",
- "shasum": ""
- },
- "require": {
- "php": ">=7.1.0"
- },
- "require-dev": {
- "phpstan/phpstan": "1.12.28 || 1.4.10",
- "phpunit/phpunit": "^9.6 || ^7.5"
- },
- "type": "library",
- "autoload": {
- "files": [
- "src/functions_include.php"
- ],
- "psr-4": {
- "React\\Promise\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Jan Sorgalla",
- "email": "jsorgalla@gmail.com",
- "homepage": "https://sorgalla.com/"
- },
- {
- "name": "Christian Lück",
- "email": "christian@clue.engineering",
- "homepage": "https://clue.engineering/"
- },
- {
- "name": "Cees-Jan Kiewiet",
- "email": "reactphp@ceesjankiewiet.nl",
- "homepage": "https://wyrihaximus.net/"
- },
- {
- "name": "Chris Boden",
- "email": "cboden@gmail.com",
- "homepage": "https://cboden.dev/"
- }
- ],
- "description": "A lightweight implementation of CommonJS Promises/A for PHP",
- "keywords": [
- "promise",
- "promises"
- ],
- "support": {
- "issues": "https://github.com/reactphp/promise/issues",
- "source": "https://github.com/reactphp/promise/tree/v3.3.0"
- },
- "funding": [
- {
- "url": "https://opencollective.com/reactphp",
- "type": "open_collective"
- }
- ],
- "time": "2025-08-19T18:57:03+00:00"
- },
- {
- "name": "react/socket",
- "version": "v1.17.0",
- "source": {
- "type": "git",
- "url": "https://github.com/reactphp/socket.git",
- "reference": "ef5b17b81f6f60504c539313f94f2d826c5faa08"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/reactphp/socket/zipball/ef5b17b81f6f60504c539313f94f2d826c5faa08",
- "reference": "ef5b17b81f6f60504c539313f94f2d826c5faa08",
- "shasum": ""
- },
- "require": {
- "evenement/evenement": "^3.0 || ^2.0 || ^1.0",
- "php": ">=5.3.0",
- "react/dns": "^1.13",
- "react/event-loop": "^1.2",
- "react/promise": "^3.2 || ^2.6 || ^1.2.1",
- "react/stream": "^1.4"
- },
- "require-dev": {
- "phpunit/phpunit": "^9.6 || ^5.7 || ^4.8.36",
- "react/async": "^4.3 || ^3.3 || ^2",
- "react/promise-stream": "^1.4",
- "react/promise-timer": "^1.11"
- },
- "type": "library",
- "autoload": {
- "psr-4": {
- "React\\Socket\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Christian Lück",
- "email": "christian@clue.engineering",
- "homepage": "https://clue.engineering/"
- },
- {
- "name": "Cees-Jan Kiewiet",
- "email": "reactphp@ceesjankiewiet.nl",
- "homepage": "https://wyrihaximus.net/"
- },
- {
- "name": "Jan Sorgalla",
- "email": "jsorgalla@gmail.com",
- "homepage": "https://sorgalla.com/"
- },
- {
- "name": "Chris Boden",
- "email": "cboden@gmail.com",
- "homepage": "https://cboden.dev/"
- }
- ],
- "description": "Async, streaming plaintext TCP/IP and secure TLS socket server and client connections for ReactPHP",
- "keywords": [
- "Connection",
- "Socket",
- "async",
- "reactphp",
- "stream"
- ],
- "support": {
- "issues": "https://github.com/reactphp/socket/issues",
- "source": "https://github.com/reactphp/socket/tree/v1.17.0"
- },
- "funding": [
- {
- "url": "https://opencollective.com/reactphp",
- "type": "open_collective"
- }
- ],
- "time": "2025-11-19T20:47:34+00:00"
- },
- {
- "name": "react/stream",
- "version": "v1.4.0",
- "source": {
- "type": "git",
- "url": "https://github.com/reactphp/stream.git",
- "reference": "1e5b0acb8fe55143b5b426817155190eb6f5b18d"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/reactphp/stream/zipball/1e5b0acb8fe55143b5b426817155190eb6f5b18d",
- "reference": "1e5b0acb8fe55143b5b426817155190eb6f5b18d",
- "shasum": ""
- },
- "require": {
- "evenement/evenement": "^3.0 || ^2.0 || ^1.0",
- "php": ">=5.3.8",
- "react/event-loop": "^1.2"
- },
- "require-dev": {
- "clue/stream-filter": "~1.2",
- "phpunit/phpunit": "^9.6 || ^5.7 || ^4.8.36"
- },
- "type": "library",
- "autoload": {
- "psr-4": {
- "React\\Stream\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Christian Lück",
- "email": "christian@clue.engineering",
- "homepage": "https://clue.engineering/"
- },
- {
- "name": "Cees-Jan Kiewiet",
- "email": "reactphp@ceesjankiewiet.nl",
- "homepage": "https://wyrihaximus.net/"
- },
- {
- "name": "Jan Sorgalla",
- "email": "jsorgalla@gmail.com",
- "homepage": "https://sorgalla.com/"
- },
- {
- "name": "Chris Boden",
- "email": "cboden@gmail.com",
- "homepage": "https://cboden.dev/"
- }
- ],
- "description": "Event-driven readable and writable streams for non-blocking I/O in ReactPHP",
- "keywords": [
- "event-driven",
- "io",
- "non-blocking",
- "pipe",
- "reactphp",
- "readable",
- "stream",
- "writable"
- ],
- "support": {
- "issues": "https://github.com/reactphp/stream/issues",
- "source": "https://github.com/reactphp/stream/tree/v1.4.0"
- },
- "funding": [
- {
- "url": "https://opencollective.com/reactphp",
- "type": "open_collective"
- }
- ],
- "time": "2024-06-11T12:45:25+00:00"
- },
- {
- "name": "sebastian/cli-parser",
- "version": "3.0.2",
- "source": {
- "type": "git",
- "url": "https://github.com/sebastianbergmann/cli-parser.git",
- "reference": "15c5dd40dc4f38794d383bb95465193f5e0ae180"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/cli-parser/zipball/15c5dd40dc4f38794d383bb95465193f5e0ae180",
- "reference": "15c5dd40dc4f38794d383bb95465193f5e0ae180",
- "shasum": ""
- },
- "require": {
- "php": ">=8.2"
- },
- "require-dev": {
- "phpunit/phpunit": "^11.0"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-main": "3.0-dev"
- }
- },
- "autoload": {
- "classmap": [
- "src/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "BSD-3-Clause"
- ],
- "authors": [
- {
- "name": "Sebastian Bergmann",
- "email": "sebastian@phpunit.de",
- "role": "lead"
- }
- ],
- "description": "Library for parsing CLI options",
- "homepage": "https://github.com/sebastianbergmann/cli-parser",
- "support": {
- "issues": "https://github.com/sebastianbergmann/cli-parser/issues",
- "security": "https://github.com/sebastianbergmann/cli-parser/security/policy",
- "source": "https://github.com/sebastianbergmann/cli-parser/tree/3.0.2"
- },
- "funding": [
- {
- "url": "https://github.com/sebastianbergmann",
- "type": "github"
- }
- ],
- "time": "2024-07-03T04:41:36+00:00"
- },
- {
- "name": "sebastian/code-unit",
- "version": "3.0.3",
- "source": {
- "type": "git",
- "url": "https://github.com/sebastianbergmann/code-unit.git",
- "reference": "54391c61e4af8078e5b276ab082b6d3c54c9ad64"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/code-unit/zipball/54391c61e4af8078e5b276ab082b6d3c54c9ad64",
- "reference": "54391c61e4af8078e5b276ab082b6d3c54c9ad64",
- "shasum": ""
- },
- "require": {
- "php": ">=8.2"
- },
- "require-dev": {
- "phpunit/phpunit": "^11.5"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-main": "3.0-dev"
- }
- },
- "autoload": {
- "classmap": [
- "src/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "BSD-3-Clause"
- ],
- "authors": [
- {
- "name": "Sebastian Bergmann",
- "email": "sebastian@phpunit.de",
- "role": "lead"
- }
- ],
- "description": "Collection of value objects that represent the PHP code units",
- "homepage": "https://github.com/sebastianbergmann/code-unit",
- "support": {
- "issues": "https://github.com/sebastianbergmann/code-unit/issues",
- "security": "https://github.com/sebastianbergmann/code-unit/security/policy",
- "source": "https://github.com/sebastianbergmann/code-unit/tree/3.0.3"
- },
- "funding": [
- {
- "url": "https://github.com/sebastianbergmann",
- "type": "github"
- }
- ],
- "time": "2025-03-19T07:56:08+00:00"
- },
- {
- "name": "sebastian/code-unit-reverse-lookup",
- "version": "4.0.1",
- "source": {
- "type": "git",
- "url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git",
- "reference": "183a9b2632194febd219bb9246eee421dad8d45e"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/183a9b2632194febd219bb9246eee421dad8d45e",
- "reference": "183a9b2632194febd219bb9246eee421dad8d45e",
- "shasum": ""
- },
- "require": {
- "php": ">=8.2"
- },
- "require-dev": {
- "phpunit/phpunit": "^11.0"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-main": "4.0-dev"
- }
- },
- "autoload": {
- "classmap": [
- "src/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "BSD-3-Clause"
- ],
- "authors": [
- {
- "name": "Sebastian Bergmann",
- "email": "sebastian@phpunit.de"
- }
- ],
- "description": "Looks up which function or method a line of code belongs to",
- "homepage": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/",
- "support": {
- "issues": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/issues",
- "security": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/security/policy",
- "source": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/tree/4.0.1"
- },
- "funding": [
- {
- "url": "https://github.com/sebastianbergmann",
- "type": "github"
- }
- ],
- "time": "2024-07-03T04:45:54+00:00"
- },
- {
- "name": "sebastian/comparator",
- "version": "6.3.3",
- "source": {
- "type": "git",
- "url": "https://github.com/sebastianbergmann/comparator.git",
- "reference": "2c95e1e86cb8dd41beb8d502057d1081ccc8eca9"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/2c95e1e86cb8dd41beb8d502057d1081ccc8eca9",
- "reference": "2c95e1e86cb8dd41beb8d502057d1081ccc8eca9",
- "shasum": ""
- },
- "require": {
- "ext-dom": "*",
- "ext-mbstring": "*",
- "php": ">=8.2",
- "sebastian/diff": "^6.0",
- "sebastian/exporter": "^6.0"
- },
- "require-dev": {
- "phpunit/phpunit": "^11.4"
- },
- "suggest": {
- "ext-bcmath": "For comparing BcMath\\Number objects"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-main": "6.3-dev"
- }
- },
- "autoload": {
- "classmap": [
- "src/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "BSD-3-Clause"
- ],
- "authors": [
- {
- "name": "Sebastian Bergmann",
- "email": "sebastian@phpunit.de"
- },
- {
- "name": "Jeff Welch",
- "email": "whatthejeff@gmail.com"
- },
- {
- "name": "Volker Dusch",
- "email": "github@wallbash.com"
- },
- {
- "name": "Bernhard Schussek",
- "email": "bschussek@2bepublished.at"
- }
- ],
- "description": "Provides the functionality to compare PHP values for equality",
- "homepage": "https://github.com/sebastianbergmann/comparator",
- "keywords": [
- "comparator",
- "compare",
- "equality"
- ],
- "support": {
- "issues": "https://github.com/sebastianbergmann/comparator/issues",
- "security": "https://github.com/sebastianbergmann/comparator/security/policy",
- "source": "https://github.com/sebastianbergmann/comparator/tree/6.3.3"
- },
- "funding": [
- {
- "url": "https://github.com/sebastianbergmann",
- "type": "github"
- },
- {
- "url": "https://liberapay.com/sebastianbergmann",
- "type": "liberapay"
- },
- {
- "url": "https://thanks.dev/u/gh/sebastianbergmann",
- "type": "thanks_dev"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/sebastian/comparator",
- "type": "tidelift"
- }
- ],
- "time": "2026-01-24T09:26:40+00:00"
- },
- {
- "name": "sebastian/complexity",
- "version": "4.0.1",
- "source": {
- "type": "git",
- "url": "https://github.com/sebastianbergmann/complexity.git",
- "reference": "ee41d384ab1906c68852636b6de493846e13e5a0"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/complexity/zipball/ee41d384ab1906c68852636b6de493846e13e5a0",
- "reference": "ee41d384ab1906c68852636b6de493846e13e5a0",
- "shasum": ""
- },
- "require": {
- "nikic/php-parser": "^5.0",
- "php": ">=8.2"
- },
- "require-dev": {
- "phpunit/phpunit": "^11.0"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-main": "4.0-dev"
- }
- },
- "autoload": {
- "classmap": [
- "src/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "BSD-3-Clause"
- ],
- "authors": [
- {
- "name": "Sebastian Bergmann",
- "email": "sebastian@phpunit.de",
- "role": "lead"
- }
- ],
- "description": "Library for calculating the complexity of PHP code units",
- "homepage": "https://github.com/sebastianbergmann/complexity",
- "support": {
- "issues": "https://github.com/sebastianbergmann/complexity/issues",
- "security": "https://github.com/sebastianbergmann/complexity/security/policy",
- "source": "https://github.com/sebastianbergmann/complexity/tree/4.0.1"
- },
- "funding": [
- {
- "url": "https://github.com/sebastianbergmann",
- "type": "github"
- }
- ],
- "time": "2024-07-03T04:49:50+00:00"
- },
- {
- "name": "sebastian/diff",
- "version": "6.0.2",
- "source": {
- "type": "git",
- "url": "https://github.com/sebastianbergmann/diff.git",
- "reference": "b4ccd857127db5d41a5b676f24b51371d76d8544"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/b4ccd857127db5d41a5b676f24b51371d76d8544",
- "reference": "b4ccd857127db5d41a5b676f24b51371d76d8544",
- "shasum": ""
- },
- "require": {
- "php": ">=8.2"
- },
- "require-dev": {
- "phpunit/phpunit": "^11.0",
- "symfony/process": "^4.2 || ^5"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-main": "6.0-dev"
- }
- },
- "autoload": {
- "classmap": [
- "src/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "BSD-3-Clause"
- ],
- "authors": [
- {
- "name": "Sebastian Bergmann",
- "email": "sebastian@phpunit.de"
- },
- {
- "name": "Kore Nordmann",
- "email": "mail@kore-nordmann.de"
- }
- ],
- "description": "Diff implementation",
- "homepage": "https://github.com/sebastianbergmann/diff",
- "keywords": [
- "diff",
- "udiff",
- "unidiff",
- "unified diff"
- ],
- "support": {
- "issues": "https://github.com/sebastianbergmann/diff/issues",
- "security": "https://github.com/sebastianbergmann/diff/security/policy",
- "source": "https://github.com/sebastianbergmann/diff/tree/6.0.2"
- },
- "funding": [
- {
- "url": "https://github.com/sebastianbergmann",
- "type": "github"
- }
- ],
- "time": "2024-07-03T04:53:05+00:00"
- },
- {
- "name": "sebastian/environment",
- "version": "7.2.1",
- "source": {
- "type": "git",
- "url": "https://github.com/sebastianbergmann/environment.git",
- "reference": "a5c75038693ad2e8d4b6c15ba2403532647830c4"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/a5c75038693ad2e8d4b6c15ba2403532647830c4",
- "reference": "a5c75038693ad2e8d4b6c15ba2403532647830c4",
- "shasum": ""
- },
- "require": {
- "php": ">=8.2"
- },
- "require-dev": {
- "phpunit/phpunit": "^11.3"
- },
- "suggest": {
- "ext-posix": "*"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-main": "7.2-dev"
- }
- },
- "autoload": {
- "classmap": [
- "src/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "BSD-3-Clause"
- ],
- "authors": [
- {
- "name": "Sebastian Bergmann",
- "email": "sebastian@phpunit.de"
- }
- ],
- "description": "Provides functionality to handle HHVM/PHP environments",
- "homepage": "https://github.com/sebastianbergmann/environment",
- "keywords": [
- "Xdebug",
- "environment",
- "hhvm"
- ],
- "support": {
- "issues": "https://github.com/sebastianbergmann/environment/issues",
- "security": "https://github.com/sebastianbergmann/environment/security/policy",
- "source": "https://github.com/sebastianbergmann/environment/tree/7.2.1"
- },
- "funding": [
- {
- "url": "https://github.com/sebastianbergmann",
- "type": "github"
- },
- {
- "url": "https://liberapay.com/sebastianbergmann",
- "type": "liberapay"
- },
- {
- "url": "https://thanks.dev/u/gh/sebastianbergmann",
- "type": "thanks_dev"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/sebastian/environment",
- "type": "tidelift"
- }
- ],
- "time": "2025-05-21T11:55:47+00:00"
- },
- {
- "name": "sebastian/exporter",
- "version": "6.3.2",
- "source": {
- "type": "git",
- "url": "https://github.com/sebastianbergmann/exporter.git",
- "reference": "70a298763b40b213ec087c51c739efcaa90bcd74"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/70a298763b40b213ec087c51c739efcaa90bcd74",
- "reference": "70a298763b40b213ec087c51c739efcaa90bcd74",
- "shasum": ""
- },
- "require": {
- "ext-mbstring": "*",
- "php": ">=8.2",
- "sebastian/recursion-context": "^6.0"
- },
- "require-dev": {
- "phpunit/phpunit": "^11.3"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-main": "6.3-dev"
- }
- },
- "autoload": {
- "classmap": [
- "src/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "BSD-3-Clause"
- ],
- "authors": [
- {
- "name": "Sebastian Bergmann",
- "email": "sebastian@phpunit.de"
- },
- {
- "name": "Jeff Welch",
- "email": "whatthejeff@gmail.com"
- },
- {
- "name": "Volker Dusch",
- "email": "github@wallbash.com"
- },
- {
- "name": "Adam Harvey",
- "email": "aharvey@php.net"
- },
- {
- "name": "Bernhard Schussek",
- "email": "bschussek@gmail.com"
- }
- ],
- "description": "Provides the functionality to export PHP variables for visualization",
- "homepage": "https://www.github.com/sebastianbergmann/exporter",
- "keywords": [
- "export",
- "exporter"
- ],
- "support": {
- "issues": "https://github.com/sebastianbergmann/exporter/issues",
- "security": "https://github.com/sebastianbergmann/exporter/security/policy",
- "source": "https://github.com/sebastianbergmann/exporter/tree/6.3.2"
- },
- "funding": [
- {
- "url": "https://github.com/sebastianbergmann",
- "type": "github"
- },
- {
- "url": "https://liberapay.com/sebastianbergmann",
- "type": "liberapay"
- },
- {
- "url": "https://thanks.dev/u/gh/sebastianbergmann",
- "type": "thanks_dev"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/sebastian/exporter",
- "type": "tidelift"
- }
- ],
- "time": "2025-09-24T06:12:51+00:00"
- },
- {
- "name": "sebastian/global-state",
- "version": "7.0.2",
- "source": {
- "type": "git",
- "url": "https://github.com/sebastianbergmann/global-state.git",
- "reference": "3be331570a721f9a4b5917f4209773de17f747d7"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/3be331570a721f9a4b5917f4209773de17f747d7",
- "reference": "3be331570a721f9a4b5917f4209773de17f747d7",
- "shasum": ""
- },
- "require": {
- "php": ">=8.2",
- "sebastian/object-reflector": "^4.0",
- "sebastian/recursion-context": "^6.0"
- },
- "require-dev": {
- "ext-dom": "*",
- "phpunit/phpunit": "^11.0"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-main": "7.0-dev"
- }
- },
- "autoload": {
- "classmap": [
- "src/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "BSD-3-Clause"
- ],
- "authors": [
- {
- "name": "Sebastian Bergmann",
- "email": "sebastian@phpunit.de"
- }
- ],
- "description": "Snapshotting of global state",
- "homepage": "https://www.github.com/sebastianbergmann/global-state",
- "keywords": [
- "global state"
- ],
- "support": {
- "issues": "https://github.com/sebastianbergmann/global-state/issues",
- "security": "https://github.com/sebastianbergmann/global-state/security/policy",
- "source": "https://github.com/sebastianbergmann/global-state/tree/7.0.2"
- },
- "funding": [
- {
- "url": "https://github.com/sebastianbergmann",
- "type": "github"
- }
- ],
- "time": "2024-07-03T04:57:36+00:00"
- },
- {
- "name": "sebastian/lines-of-code",
- "version": "3.0.1",
- "source": {
- "type": "git",
- "url": "https://github.com/sebastianbergmann/lines-of-code.git",
- "reference": "d36ad0d782e5756913e42ad87cb2890f4ffe467a"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/lines-of-code/zipball/d36ad0d782e5756913e42ad87cb2890f4ffe467a",
- "reference": "d36ad0d782e5756913e42ad87cb2890f4ffe467a",
- "shasum": ""
- },
- "require": {
- "nikic/php-parser": "^5.0",
- "php": ">=8.2"
- },
- "require-dev": {
- "phpunit/phpunit": "^11.0"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-main": "3.0-dev"
- }
- },
- "autoload": {
- "classmap": [
- "src/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "BSD-3-Clause"
- ],
- "authors": [
- {
- "name": "Sebastian Bergmann",
- "email": "sebastian@phpunit.de",
- "role": "lead"
- }
- ],
- "description": "Library for counting the lines of code in PHP source code",
- "homepage": "https://github.com/sebastianbergmann/lines-of-code",
- "support": {
- "issues": "https://github.com/sebastianbergmann/lines-of-code/issues",
- "security": "https://github.com/sebastianbergmann/lines-of-code/security/policy",
- "source": "https://github.com/sebastianbergmann/lines-of-code/tree/3.0.1"
- },
- "funding": [
- {
- "url": "https://github.com/sebastianbergmann",
- "type": "github"
- }
- ],
- "time": "2024-07-03T04:58:38+00:00"
- },
- {
- "name": "sebastian/object-enumerator",
- "version": "6.0.1",
- "source": {
- "type": "git",
- "url": "https://github.com/sebastianbergmann/object-enumerator.git",
- "reference": "f5b498e631a74204185071eb41f33f38d64608aa"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/f5b498e631a74204185071eb41f33f38d64608aa",
- "reference": "f5b498e631a74204185071eb41f33f38d64608aa",
- "shasum": ""
- },
- "require": {
- "php": ">=8.2",
- "sebastian/object-reflector": "^4.0",
- "sebastian/recursion-context": "^6.0"
- },
- "require-dev": {
- "phpunit/phpunit": "^11.0"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-main": "6.0-dev"
- }
- },
- "autoload": {
- "classmap": [
- "src/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "BSD-3-Clause"
- ],
- "authors": [
- {
- "name": "Sebastian Bergmann",
- "email": "sebastian@phpunit.de"
- }
- ],
- "description": "Traverses array structures and object graphs to enumerate all referenced objects",
- "homepage": "https://github.com/sebastianbergmann/object-enumerator/",
- "support": {
- "issues": "https://github.com/sebastianbergmann/object-enumerator/issues",
- "security": "https://github.com/sebastianbergmann/object-enumerator/security/policy",
- "source": "https://github.com/sebastianbergmann/object-enumerator/tree/6.0.1"
- },
- "funding": [
- {
- "url": "https://github.com/sebastianbergmann",
- "type": "github"
- }
- ],
- "time": "2024-07-03T05:00:13+00:00"
- },
- {
- "name": "sebastian/object-reflector",
- "version": "4.0.1",
- "source": {
- "type": "git",
- "url": "https://github.com/sebastianbergmann/object-reflector.git",
- "reference": "6e1a43b411b2ad34146dee7524cb13a068bb35f9"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/6e1a43b411b2ad34146dee7524cb13a068bb35f9",
- "reference": "6e1a43b411b2ad34146dee7524cb13a068bb35f9",
- "shasum": ""
- },
- "require": {
- "php": ">=8.2"
- },
- "require-dev": {
- "phpunit/phpunit": "^11.0"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-main": "4.0-dev"
- }
- },
- "autoload": {
- "classmap": [
- "src/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "BSD-3-Clause"
- ],
- "authors": [
- {
- "name": "Sebastian Bergmann",
- "email": "sebastian@phpunit.de"
- }
- ],
- "description": "Allows reflection of object attributes, including inherited and non-public ones",
- "homepage": "https://github.com/sebastianbergmann/object-reflector/",
- "support": {
- "issues": "https://github.com/sebastianbergmann/object-reflector/issues",
- "security": "https://github.com/sebastianbergmann/object-reflector/security/policy",
- "source": "https://github.com/sebastianbergmann/object-reflector/tree/4.0.1"
- },
- "funding": [
- {
- "url": "https://github.com/sebastianbergmann",
- "type": "github"
- }
- ],
- "time": "2024-07-03T05:01:32+00:00"
- },
- {
- "name": "sebastian/recursion-context",
- "version": "6.0.3",
- "source": {
- "type": "git",
- "url": "https://github.com/sebastianbergmann/recursion-context.git",
- "reference": "f6458abbf32a6c8174f8f26261475dc133b3d9dc"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/f6458abbf32a6c8174f8f26261475dc133b3d9dc",
- "reference": "f6458abbf32a6c8174f8f26261475dc133b3d9dc",
- "shasum": ""
- },
- "require": {
- "php": ">=8.2"
- },
- "require-dev": {
- "phpunit/phpunit": "^11.3"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-main": "6.0-dev"
- }
- },
- "autoload": {
- "classmap": [
- "src/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "BSD-3-Clause"
- ],
- "authors": [
- {
- "name": "Sebastian Bergmann",
- "email": "sebastian@phpunit.de"
- },
- {
- "name": "Jeff Welch",
- "email": "whatthejeff@gmail.com"
- },
- {
- "name": "Adam Harvey",
- "email": "aharvey@php.net"
- }
- ],
- "description": "Provides functionality to recursively process PHP variables",
- "homepage": "https://github.com/sebastianbergmann/recursion-context",
- "support": {
- "issues": "https://github.com/sebastianbergmann/recursion-context/issues",
- "security": "https://github.com/sebastianbergmann/recursion-context/security/policy",
- "source": "https://github.com/sebastianbergmann/recursion-context/tree/6.0.3"
- },
- "funding": [
- {
- "url": "https://github.com/sebastianbergmann",
- "type": "github"
- },
- {
- "url": "https://liberapay.com/sebastianbergmann",
- "type": "liberapay"
- },
- {
- "url": "https://thanks.dev/u/gh/sebastianbergmann",
- "type": "thanks_dev"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/sebastian/recursion-context",
- "type": "tidelift"
- }
- ],
- "time": "2025-08-13T04:42:22+00:00"
- },
- {
- "name": "sebastian/type",
- "version": "5.1.3",
- "source": {
- "type": "git",
- "url": "https://github.com/sebastianbergmann/type.git",
- "reference": "f77d2d4e78738c98d9a68d2596fe5e8fa380f449"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/f77d2d4e78738c98d9a68d2596fe5e8fa380f449",
- "reference": "f77d2d4e78738c98d9a68d2596fe5e8fa380f449",
- "shasum": ""
- },
- "require": {
- "php": ">=8.2"
- },
- "require-dev": {
- "phpunit/phpunit": "^11.3"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-main": "5.1-dev"
- }
- },
- "autoload": {
- "classmap": [
- "src/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "BSD-3-Clause"
- ],
- "authors": [
- {
- "name": "Sebastian Bergmann",
- "email": "sebastian@phpunit.de",
- "role": "lead"
- }
- ],
- "description": "Collection of value objects that represent the types of the PHP type system",
- "homepage": "https://github.com/sebastianbergmann/type",
- "support": {
- "issues": "https://github.com/sebastianbergmann/type/issues",
- "security": "https://github.com/sebastianbergmann/type/security/policy",
- "source": "https://github.com/sebastianbergmann/type/tree/5.1.3"
- },
- "funding": [
- {
- "url": "https://github.com/sebastianbergmann",
- "type": "github"
- },
- {
- "url": "https://liberapay.com/sebastianbergmann",
- "type": "liberapay"
- },
- {
- "url": "https://thanks.dev/u/gh/sebastianbergmann",
- "type": "thanks_dev"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/sebastian/type",
- "type": "tidelift"
- }
- ],
- "time": "2025-08-09T06:55:48+00:00"
- },
- {
- "name": "sebastian/version",
- "version": "5.0.2",
- "source": {
- "type": "git",
- "url": "https://github.com/sebastianbergmann/version.git",
- "reference": "c687e3387b99f5b03b6caa64c74b63e2936ff874"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/c687e3387b99f5b03b6caa64c74b63e2936ff874",
- "reference": "c687e3387b99f5b03b6caa64c74b63e2936ff874",
- "shasum": ""
- },
- "require": {
- "php": ">=8.2"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-main": "5.0-dev"
- }
- },
- "autoload": {
- "classmap": [
- "src/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "BSD-3-Clause"
- ],
- "authors": [
- {
- "name": "Sebastian Bergmann",
- "email": "sebastian@phpunit.de",
- "role": "lead"
- }
- ],
- "description": "Library that helps with managing the version number of Git-hosted PHP projects",
- "homepage": "https://github.com/sebastianbergmann/version",
- "support": {
- "issues": "https://github.com/sebastianbergmann/version/issues",
- "security": "https://github.com/sebastianbergmann/version/security/policy",
- "source": "https://github.com/sebastianbergmann/version/tree/5.0.2"
- },
- "funding": [
- {
- "url": "https://github.com/sebastianbergmann",
- "type": "github"
- }
- ],
- "time": "2024-10-09T05:16:32+00:00"
- },
- {
- "name": "staabm/side-effects-detector",
- "version": "1.0.5",
- "source": {
- "type": "git",
- "url": "https://github.com/staabm/side-effects-detector.git",
- "reference": "d8334211a140ce329c13726d4a715adbddd0a163"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/staabm/side-effects-detector/zipball/d8334211a140ce329c13726d4a715adbddd0a163",
- "reference": "d8334211a140ce329c13726d4a715adbddd0a163",
- "shasum": ""
- },
- "require": {
- "ext-tokenizer": "*",
- "php": "^7.4 || ^8.0"
- },
- "require-dev": {
- "phpstan/extension-installer": "^1.4.3",
- "phpstan/phpstan": "^1.12.6",
- "phpunit/phpunit": "^9.6.21",
- "symfony/var-dumper": "^5.4.43",
- "tomasvotruba/type-coverage": "1.0.0",
- "tomasvotruba/unused-public": "1.0.0"
- },
- "type": "library",
- "autoload": {
- "classmap": [
- "lib/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "description": "A static analysis tool to detect side effects in PHP code",
- "keywords": [
- "static analysis"
- ],
- "support": {
- "issues": "https://github.com/staabm/side-effects-detector/issues",
- "source": "https://github.com/staabm/side-effects-detector/tree/1.0.5"
- },
- "funding": [
- {
- "url": "https://github.com/staabm",
- "type": "github"
- }
- ],
- "time": "2024-10-20T05:08:20+00:00"
- },
- {
- "name": "symfony/console",
- "version": "v8.0.15",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/console.git",
- "reference": "7327288efcaf02a3838d2de0ae23915d64713e14"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/console/zipball/7327288efcaf02a3838d2de0ae23915d64713e14",
- "reference": "7327288efcaf02a3838d2de0ae23915d64713e14",
- "shasum": ""
- },
- "require": {
- "php": ">=8.4",
- "symfony/polyfill-mbstring": "^1.0",
- "symfony/service-contracts": "^2.5|^3",
- "symfony/string": "^7.4|^8.0"
- },
- "provide": {
- "psr/log-implementation": "1.0|2.0|3.0"
- },
- "require-dev": {
- "psr/log": "^1|^2|^3",
- "symfony/config": "^7.4|^8.0",
- "symfony/dependency-injection": "^7.4|^8.0",
- "symfony/event-dispatcher": "^7.4|^8.0",
- "symfony/http-foundation": "^7.4|^8.0",
- "symfony/http-kernel": "^7.4|^8.0",
- "symfony/lock": "^7.4|^8.0",
- "symfony/messenger": "^7.4|^8.0",
- "symfony/process": "^7.4|^8.0",
- "symfony/stopwatch": "^7.4|^8.0",
- "symfony/var-dumper": "^7.4|^8.0"
- },
- "type": "library",
- "autoload": {
- "psr-4": {
- "Symfony\\Component\\Console\\": ""
- },
- "exclude-from-classmap": [
- "/Tests/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Fabien Potencier",
- "email": "fabien@symfony.com"
- },
- {
- "name": "Symfony Community",
- "homepage": "https://symfony.com/contributors"
- }
- ],
- "description": "Eases 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/console/tree/v8.0.15"
- },
- "funding": [
- {
- "url": "https://symfony.com/sponsor",
- "type": "custom"
- },
- {
- "url": "https://github.com/fabpot",
- "type": "github"
- },
- {
- "url": "https://github.com/nicolas-grekas",
- "type": "github"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
- "type": "tidelift"
- }
- ],
- "time": "2026-07-27T13:52:45+00:00"
- },
- {
- "name": "symfony/deprecation-contracts",
- "version": "v3.7.1",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/deprecation-contracts.git",
- "reference": "f3202fa1b5097b0af062dc978b32ecf63404e31d"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/f3202fa1b5097b0af062dc978b32ecf63404e31d",
- "reference": "f3202fa1b5097b0af062dc978b32ecf63404e31d",
- "shasum": ""
- },
- "require": {
- "php": ">=8.1"
- },
- "type": "library",
- "extra": {
- "thanks": {
- "url": "https://github.com/symfony/contracts",
- "name": "symfony/contracts"
- },
- "branch-alias": {
- "dev-main": "3.7-dev"
- }
- },
- "autoload": {
- "files": [
- "function.php"
- ]
- },
- "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": "A generic function and convention to trigger deprecation notices",
- "homepage": "https://symfony.com",
- "support": {
- "source": "https://github.com/symfony/deprecation-contracts/tree/v3.7.1"
- },
- "funding": [
- {
- "url": "https://symfony.com/sponsor",
- "type": "custom"
- },
- {
- "url": "https://github.com/fabpot",
- "type": "github"
- },
- {
- "url": "https://github.com/nicolas-grekas",
- "type": "github"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
- "type": "tidelift"
- }
- ],
- "time": "2026-06-05T06:23:12+00:00"
- },
- {
- "name": "symfony/event-dispatcher",
- "version": "v8.0.15",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/event-dispatcher.git",
- "reference": "4ad08142e63219fdcb75ea1a0ac1c9e5c0fc7686"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/4ad08142e63219fdcb75ea1a0ac1c9e5c0fc7686",
- "reference": "4ad08142e63219fdcb75ea1a0ac1c9e5c0fc7686",
- "shasum": ""
- },
- "require": {
- "php": ">=8.4",
- "symfony/event-dispatcher-contracts": "^2.5|^3"
- },
- "conflict": {
- "symfony/security-http": "<7.4",
- "symfony/service-contracts": "<2.5"
- },
- "provide": {
- "psr/event-dispatcher-implementation": "1.0",
- "symfony/event-dispatcher-implementation": "2.0|3.0"
- },
- "require-dev": {
- "psr/log": "^1|^2|^3",
- "symfony/config": "^7.4|^8.0",
- "symfony/dependency-injection": "^7.4|^8.0",
- "symfony/error-handler": "^7.4|^8.0",
- "symfony/expression-language": "^7.4|^8.0",
- "symfony/framework-bundle": "^7.4|^8.0",
- "symfony/http-foundation": "^7.4|^8.0",
- "symfony/service-contracts": "^2.5|^3",
- "symfony/stopwatch": "^7.4|^8.0"
- },
- "type": "library",
- "autoload": {
- "psr-4": {
- "Symfony\\Component\\EventDispatcher\\": ""
- },
- "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 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/v8.0.15"
- },
- "funding": [
- {
- "url": "https://symfony.com/sponsor",
- "type": "custom"
- },
- {
- "url": "https://github.com/fabpot",
- "type": "github"
- },
- {
- "url": "https://github.com/nicolas-grekas",
- "type": "github"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
- "type": "tidelift"
- }
- ],
- "time": "2026-07-22T15:20:43+00:00"
- },
- {
- "name": "symfony/event-dispatcher-contracts",
- "version": "v3.7.1",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/event-dispatcher-contracts.git",
- "reference": "c7de7a00ffb67842132da02ea92988a39ccd9f4e"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/c7de7a00ffb67842132da02ea92988a39ccd9f4e",
- "reference": "c7de7a00ffb67842132da02ea92988a39ccd9f4e",
- "shasum": ""
- },
- "require": {
- "php": ">=8.1",
- "psr/event-dispatcher": "^1"
- },
- "type": "library",
- "extra": {
- "thanks": {
- "url": "https://github.com/symfony/contracts",
- "name": "symfony/contracts"
- },
- "branch-alias": {
- "dev-main": "3.7-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "Symfony\\Contracts\\EventDispatcher\\": ""
- }
- },
- "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": "Generic abstractions related to dispatching event",
- "homepage": "https://symfony.com",
- "keywords": [
- "abstractions",
- "contracts",
- "decoupling",
- "interfaces",
- "interoperability",
- "standards"
- ],
- "support": {
- "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v3.7.1"
- },
- "funding": [
- {
- "url": "https://symfony.com/sponsor",
- "type": "custom"
- },
- {
- "url": "https://github.com/fabpot",
- "type": "github"
- },
- {
- "url": "https://github.com/nicolas-grekas",
- "type": "github"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
- "type": "tidelift"
- }
- ],
- "time": "2026-06-05T06:23:12+00:00"
- },
- {
- "name": "symfony/filesystem",
- "version": "v8.0.15",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/filesystem.git",
- "reference": "3d190c51f717870eed9aa5e9c7cb927ffc911d05"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/filesystem/zipball/3d190c51f717870eed9aa5e9c7cb927ffc911d05",
- "reference": "3d190c51f717870eed9aa5e9c7cb927ffc911d05",
- "shasum": ""
- },
- "require": {
- "php": ">=8.4",
- "symfony/polyfill-ctype": "~1.8",
- "symfony/polyfill-mbstring": "~1.8"
- },
- "require-dev": {
- "symfony/process": "^7.4|^8.0"
- },
- "type": "library",
- "autoload": {
- "psr-4": {
- "Symfony\\Component\\Filesystem\\": ""
- },
- "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 basic utilities for the filesystem",
- "homepage": "https://symfony.com",
- "support": {
- "source": "https://github.com/symfony/filesystem/tree/v8.0.15"
- },
- "funding": [
- {
- "url": "https://symfony.com/sponsor",
- "type": "custom"
- },
- {
- "url": "https://github.com/fabpot",
- "type": "github"
- },
- {
- "url": "https://github.com/nicolas-grekas",
- "type": "github"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
- "type": "tidelift"
- }
- ],
- "time": "2026-07-22T15:20:43+00:00"
- },
- {
- "name": "symfony/finder",
- "version": "v8.0.14",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/finder.git",
- "reference": "4a93f8c95fabc35fcfd2f5dbb29d138d3fe98f43"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/finder/zipball/4a93f8c95fabc35fcfd2f5dbb29d138d3fe98f43",
- "reference": "4a93f8c95fabc35fcfd2f5dbb29d138d3fe98f43",
- "shasum": ""
- },
- "require": {
- "php": ">=8.4"
- },
- "require-dev": {
- "symfony/filesystem": "^7.4|^8.0"
- },
- "type": "library",
- "autoload": {
- "psr-4": {
- "Symfony\\Component\\Finder\\": ""
- },
- "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": "Finds files and directories via an intuitive fluent interface",
- "homepage": "https://symfony.com",
- "support": {
- "source": "https://github.com/symfony/finder/tree/v8.0.14"
- },
- "funding": [
- {
- "url": "https://symfony.com/sponsor",
- "type": "custom"
- },
- {
- "url": "https://github.com/fabpot",
- "type": "github"
- },
- {
- "url": "https://github.com/nicolas-grekas",
- "type": "github"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
- "type": "tidelift"
- }
- ],
- "time": "2026-06-27T08:56:37+00:00"
- },
- {
- "name": "symfony/options-resolver",
- "version": "v8.0.8",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/options-resolver.git",
- "reference": "b48bce0a70b914f6953dafbd10474df232ed4de8"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/options-resolver/zipball/b48bce0a70b914f6953dafbd10474df232ed4de8",
- "reference": "b48bce0a70b914f6953dafbd10474df232ed4de8",
- "shasum": ""
- },
- "require": {
- "php": ">=8.4",
- "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/v8.0.8"
- },
- "funding": [
- {
- "url": "https://symfony.com/sponsor",
- "type": "custom"
- },
- {
- "url": "https://github.com/fabpot",
- "type": "github"
- },
- {
- "url": "https://github.com/nicolas-grekas",
- "type": "github"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
- "type": "tidelift"
- }
- ],
- "time": "2026-03-30T15:14:47+00:00"
- },
- {
- "name": "symfony/polyfill-ctype",
- "version": "v1.37.0",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/polyfill-ctype.git",
- "reference": "141046a8f9477948ff284fa65be2095baafb94f2"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/141046a8f9477948ff284fa65be2095baafb94f2",
- "reference": "141046a8f9477948ff284fa65be2095baafb94f2",
- "shasum": ""
- },
- "require": {
- "php": ">=7.2"
- },
- "provide": {
- "ext-ctype": "*"
- },
- "suggest": {
- "ext-ctype": "For best performance"
- },
- "type": "library",
- "extra": {
- "thanks": {
- "url": "https://github.com/symfony/polyfill",
- "name": "symfony/polyfill"
- }
- },
- "autoload": {
- "files": [
- "bootstrap.php"
- ],
- "psr-4": {
- "Symfony\\Polyfill\\Ctype\\": ""
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Gert de Pagter",
- "email": "BackEndTea@gmail.com"
- },
- {
- "name": "Symfony Community",
- "homepage": "https://symfony.com/contributors"
- }
- ],
- "description": "Symfony polyfill for ctype functions",
- "homepage": "https://symfony.com",
- "keywords": [
- "compatibility",
- "ctype",
- "polyfill",
- "portable"
- ],
- "support": {
- "source": "https://github.com/symfony/polyfill-ctype/tree/v1.37.0"
- },
- "funding": [
- {
- "url": "https://symfony.com/sponsor",
- "type": "custom"
- },
- {
- "url": "https://github.com/fabpot",
- "type": "github"
- },
- {
- "url": "https://github.com/nicolas-grekas",
- "type": "github"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
- "type": "tidelift"
- }
- ],
- "time": "2026-04-10T16:19:22+00:00"
- },
- {
- "name": "symfony/polyfill-intl-grapheme",
- "version": "v1.41.0",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/polyfill-intl-grapheme.git",
- "reference": "bb899c1db0aa8127dc3afe8cda4a67eb24915f8d"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/bb899c1db0aa8127dc3afe8cda4a67eb24915f8d",
- "reference": "bb899c1db0aa8127dc3afe8cda4a67eb24915f8d",
- "shasum": ""
- },
- "require": {
- "php": ">=7.2"
- },
- "suggest": {
- "ext-intl": "For best performance"
- },
- "type": "library",
- "extra": {
- "thanks": {
- "url": "https://github.com/symfony/polyfill",
- "name": "symfony/polyfill"
- }
- },
- "autoload": {
- "files": [
- "bootstrap.php"
- ],
- "psr-4": {
- "Symfony\\Polyfill\\Intl\\Grapheme\\": ""
- }
- },
- "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 for intl's grapheme_* functions",
- "homepage": "https://symfony.com",
- "keywords": [
- "compatibility",
- "grapheme",
- "intl",
- "polyfill",
- "portable",
- "shim"
- ],
- "support": {
- "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.41.0"
- },
- "funding": [
- {
- "url": "https://symfony.com/sponsor",
- "type": "custom"
- },
- {
- "url": "https://github.com/fabpot",
- "type": "github"
- },
- {
- "url": "https://github.com/nicolas-grekas",
- "type": "github"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
- "type": "tidelift"
- }
- ],
- "time": "2026-07-28T08:25:59+00:00"
- },
- {
- "name": "symfony/polyfill-intl-normalizer",
- "version": "v1.38.0",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/polyfill-intl-normalizer.git",
- "reference": "2d446c214bdbe5b71bde5011b060a05fece3ae6b"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/2d446c214bdbe5b71bde5011b060a05fece3ae6b",
- "reference": "2d446c214bdbe5b71bde5011b060a05fece3ae6b",
- "shasum": ""
- },
- "require": {
- "php": ">=7.2"
- },
- "suggest": {
- "ext-intl": "For best performance"
- },
- "type": "library",
- "extra": {
- "thanks": {
- "url": "https://github.com/symfony/polyfill",
- "name": "symfony/polyfill"
- }
- },
- "autoload": {
- "files": [
- "bootstrap.php"
- ],
- "psr-4": {
- "Symfony\\Polyfill\\Intl\\Normalizer\\": ""
- },
- "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 for intl's Normalizer class and related functions",
- "homepage": "https://symfony.com",
- "keywords": [
- "compatibility",
- "intl",
- "normalizer",
- "polyfill",
- "portable",
- "shim"
- ],
- "support": {
- "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.38.0"
- },
- "funding": [
- {
- "url": "https://symfony.com/sponsor",
- "type": "custom"
- },
- {
- "url": "https://github.com/fabpot",
- "type": "github"
- },
- {
- "url": "https://github.com/nicolas-grekas",
- "type": "github"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
- "type": "tidelift"
- }
- ],
- "time": "2026-05-25T13:48:31+00:00"
- },
- {
- "name": "symfony/polyfill-mbstring",
- "version": "v1.38.2",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/polyfill-mbstring.git",
- "reference": "d3d318bad5e7a1bfbd026009c8bfb8d8f99ae6b6"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/d3d318bad5e7a1bfbd026009c8bfb8d8f99ae6b6",
- "reference": "d3d318bad5e7a1bfbd026009c8bfb8d8f99ae6b6",
- "shasum": ""
- },
- "require": {
- "ext-iconv": "*",
- "php": ">=7.2"
- },
- "provide": {
- "ext-mbstring": "*"
- },
- "suggest": {
- "ext-mbstring": "For best performance"
- },
- "type": "library",
- "extra": {
- "thanks": {
- "url": "https://github.com/symfony/polyfill",
- "name": "symfony/polyfill"
- }
- },
- "autoload": {
- "files": [
- "bootstrap.php"
- ],
- "psr-4": {
- "Symfony\\Polyfill\\Mbstring\\": ""
- }
- },
- "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 for the Mbstring extension",
- "homepage": "https://symfony.com",
- "keywords": [
- "compatibility",
- "mbstring",
- "polyfill",
- "portable",
- "shim"
- ],
- "support": {
- "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.38.2"
- },
- "funding": [
- {
- "url": "https://symfony.com/sponsor",
- "type": "custom"
- },
- {
- "url": "https://github.com/fabpot",
- "type": "github"
- },
- {
- "url": "https://github.com/nicolas-grekas",
- "type": "github"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
- "type": "tidelift"
- }
- ],
- "time": "2026-05-27T06:59:30+00:00"
- },
- {
- "name": "symfony/polyfill-php80",
- "version": "v1.37.0",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/polyfill-php80.git",
- "reference": "dfb55726c3a76ea3b6459fcfda1ec2d80a682411"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/dfb55726c3a76ea3b6459fcfda1ec2d80a682411",
- "reference": "dfb55726c3a76ea3b6459fcfda1ec2d80a682411",
- "shasum": ""
- },
- "require": {
- "php": ">=7.2"
- },
- "type": "library",
- "extra": {
- "thanks": {
- "url": "https://github.com/symfony/polyfill",
- "name": "symfony/polyfill"
- }
- },
- "autoload": {
- "files": [
- "bootstrap.php"
- ],
- "psr-4": {
- "Symfony\\Polyfill\\Php80\\": ""
- },
- "classmap": [
- "Resources/stubs"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Ion Bazan",
- "email": "ion.bazan@gmail.com"
- },
- {
- "name": "Nicolas Grekas",
- "email": "p@tchwork.com"
- },
- {
- "name": "Symfony Community",
- "homepage": "https://symfony.com/contributors"
- }
- ],
- "description": "Symfony polyfill backporting some PHP 8.0+ features to lower PHP versions",
- "homepage": "https://symfony.com",
- "keywords": [
- "compatibility",
- "polyfill",
- "portable",
- "shim"
- ],
- "support": {
- "source": "https://github.com/symfony/polyfill-php80/tree/v1.37.0"
- },
- "funding": [
- {
- "url": "https://symfony.com/sponsor",
- "type": "custom"
- },
- {
- "url": "https://github.com/fabpot",
- "type": "github"
- },
- {
- "url": "https://github.com/nicolas-grekas",
- "type": "github"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
- "type": "tidelift"
- }
- ],
- "time": "2026-04-10T16:19:22+00:00"
- },
- {
- "name": "symfony/polyfill-php81",
- "version": "v1.38.1",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/polyfill-php81.git",
- "reference": "6bfb9c766cacffbc8e118cb87217d08ed84e5cd7"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-php81/zipball/6bfb9c766cacffbc8e118cb87217d08ed84e5cd7",
- "reference": "6bfb9c766cacffbc8e118cb87217d08ed84e5cd7",
- "shasum": ""
- },
- "require": {
- "php": ">=7.2"
- },
- "type": "library",
- "extra": {
- "thanks": {
- "url": "https://github.com/symfony/polyfill",
- "name": "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.38.1"
- },
- "funding": [
- {
- "url": "https://symfony.com/sponsor",
- "type": "custom"
- },
- {
- "url": "https://github.com/fabpot",
- "type": "github"
- },
- {
- "url": "https://github.com/nicolas-grekas",
- "type": "github"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
- "type": "tidelift"
- }
- ],
- "time": "2026-05-26T12:45:58+00:00"
- },
- {
- "name": "symfony/polyfill-php84",
- "version": "v1.38.1",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/polyfill-php84.git",
- "reference": "f4e1dfaee5b74aba5964fe1fd4dfc7ba5e3085fa"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-php84/zipball/f4e1dfaee5b74aba5964fe1fd4dfc7ba5e3085fa",
- "reference": "f4e1dfaee5b74aba5964fe1fd4dfc7ba5e3085fa",
- "shasum": ""
- },
- "require": {
- "php": ">=7.2"
- },
- "type": "library",
- "extra": {
- "thanks": {
- "url": "https://github.com/symfony/polyfill",
- "name": "symfony/polyfill"
- }
- },
- "autoload": {
- "files": [
- "bootstrap.php"
- ],
- "psr-4": {
- "Symfony\\Polyfill\\Php84\\": ""
- },
- "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.4+ features to lower PHP versions",
- "homepage": "https://symfony.com",
- "keywords": [
- "compatibility",
- "polyfill",
- "portable",
- "shim"
- ],
- "support": {
- "source": "https://github.com/symfony/polyfill-php84/tree/v1.38.1"
- },
- "funding": [
- {
- "url": "https://symfony.com/sponsor",
- "type": "custom"
- },
- {
- "url": "https://github.com/fabpot",
- "type": "github"
- },
- {
- "url": "https://github.com/nicolas-grekas",
- "type": "github"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
- "type": "tidelift"
- }
- ],
- "time": "2026-05-26T12:51:13+00:00"
- },
- {
- "name": "symfony/process",
- "version": "v8.0.13",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/process.git",
- "reference": "4f23d9c7637ead9ed19f697fe93cb87fd9b379d4"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/process/zipball/4f23d9c7637ead9ed19f697fe93cb87fd9b379d4",
- "reference": "4f23d9c7637ead9ed19f697fe93cb87fd9b379d4",
- "shasum": ""
- },
- "require": {
- "php": ">=8.4"
- },
- "type": "library",
- "autoload": {
- "psr-4": {
- "Symfony\\Component\\Process\\": ""
- },
- "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": "Executes commands in sub-processes",
- "homepage": "https://symfony.com",
- "support": {
- "source": "https://github.com/symfony/process/tree/v8.0.13"
- },
- "funding": [
- {
- "url": "https://symfony.com/sponsor",
- "type": "custom"
- },
- {
- "url": "https://github.com/fabpot",
- "type": "github"
- },
- {
- "url": "https://github.com/nicolas-grekas",
- "type": "github"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
- "type": "tidelift"
- }
- ],
- "time": "2026-05-23T18:05:53+00:00"
- },
- {
- "name": "symfony/service-contracts",
- "version": "v3.7.1",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/service-contracts.git",
- "reference": "c0a284bab1ed8aa0417e3d69250ab437739563a0"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/service-contracts/zipball/c0a284bab1ed8aa0417e3d69250ab437739563a0",
- "reference": "c0a284bab1ed8aa0417e3d69250ab437739563a0",
- "shasum": ""
- },
- "require": {
- "php": ">=8.1",
- "psr/container": "^1.1|^2.0",
- "symfony/deprecation-contracts": "^2.5|^3"
- },
- "conflict": {
- "ext-psr": "<1.1|>=2"
- },
- "type": "library",
- "extra": {
- "thanks": {
- "url": "https://github.com/symfony/contracts",
- "name": "symfony/contracts"
- },
- "branch-alias": {
- "dev-main": "3.7-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "Symfony\\Contracts\\Service\\": ""
- },
- "exclude-from-classmap": [
- "/Test/"
- ]
- },
- "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": "Generic abstractions related to writing services",
- "homepage": "https://symfony.com",
- "keywords": [
- "abstractions",
- "contracts",
- "decoupling",
- "interfaces",
- "interoperability",
- "standards"
- ],
- "support": {
- "source": "https://github.com/symfony/service-contracts/tree/v3.7.1"
- },
- "funding": [
- {
- "url": "https://symfony.com/sponsor",
- "type": "custom"
- },
- {
- "url": "https://github.com/fabpot",
- "type": "github"
- },
- {
- "url": "https://github.com/nicolas-grekas",
- "type": "github"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
- "type": "tidelift"
- }
- ],
- "time": "2026-06-16T09:55:08+00:00"
- },
- {
- "name": "symfony/stopwatch",
- "version": "v8.0.8",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/stopwatch.git",
- "reference": "85954ed72d5440ea4dc9a10b7e49e01df766ffa3"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/stopwatch/zipball/85954ed72d5440ea4dc9a10b7e49e01df766ffa3",
- "reference": "85954ed72d5440ea4dc9a10b7e49e01df766ffa3",
- "shasum": ""
- },
- "require": {
- "php": ">=8.4",
- "symfony/service-contracts": "^2.5|^3"
- },
- "type": "library",
- "autoload": {
- "psr-4": {
- "Symfony\\Component\\Stopwatch\\": ""
- },
- "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 a way to profile code",
- "homepage": "https://symfony.com",
- "support": {
- "source": "https://github.com/symfony/stopwatch/tree/v8.0.8"
- },
- "funding": [
- {
- "url": "https://symfony.com/sponsor",
- "type": "custom"
- },
- {
- "url": "https://github.com/fabpot",
- "type": "github"
- },
- {
- "url": "https://github.com/nicolas-grekas",
- "type": "github"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
- "type": "tidelift"
- }
- ],
- "time": "2026-03-30T15:14:47+00:00"
- },
- {
- "name": "symfony/string",
- "version": "v8.0.15",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/string.git",
- "reference": "1a6a4245943af4dabe57d269bd0903f9d140a15e"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/string/zipball/1a6a4245943af4dabe57d269bd0903f9d140a15e",
- "reference": "1a6a4245943af4dabe57d269bd0903f9d140a15e",
- "shasum": ""
- },
- "require": {
- "php": ">=8.4",
- "symfony/polyfill-ctype": "^1.8",
- "symfony/polyfill-intl-grapheme": "^1.33",
- "symfony/polyfill-intl-normalizer": "^1.0",
- "symfony/polyfill-mbstring": "^1.0"
- },
- "conflict": {
- "symfony/translation-contracts": "<2.5"
- },
- "require-dev": {
- "symfony/emoji": "^7.4|^8.0",
- "symfony/http-client": "^7.4|^8.0",
- "symfony/intl": "^7.4|^8.0",
- "symfony/translation-contracts": "^2.5|^3.0",
- "symfony/var-exporter": "^7.4|^8.0"
- },
- "type": "library",
- "autoload": {
- "files": [
- "Resources/functions.php"
- ],
- "psr-4": {
- "Symfony\\Component\\String\\": ""
- },
- "exclude-from-classmap": [
- "/Tests/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Nicolas Grekas",
- "email": "p@tchwork.com"
- },
- {
- "name": "Symfony Community",
- "homepage": "https://symfony.com/contributors"
- }
- ],
- "description": "Provides an object-oriented API to strings and deals with bytes, UTF-8 code points and grapheme clusters in a unified way",
- "homepage": "https://symfony.com",
- "keywords": [
- "grapheme",
- "i18n",
- "string",
- "unicode",
- "utf-8",
- "utf8"
- ],
- "support": {
- "source": "https://github.com/symfony/string/tree/v8.0.15"
- },
- "funding": [
- {
- "url": "https://symfony.com/sponsor",
- "type": "custom"
- },
- {
- "url": "https://github.com/fabpot",
- "type": "github"
- },
- {
- "url": "https://github.com/nicolas-grekas",
- "type": "github"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
- "type": "tidelift"
- }
- ],
- "time": "2026-07-28T07:34:23+00:00"
- },
- {
- "name": "theseer/tokenizer",
- "version": "1.3.1",
- "source": {
- "type": "git",
- "url": "https://github.com/theseer/tokenizer.git",
- "reference": "b7489ce515e168639d17feec34b8847c326b0b3c"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/theseer/tokenizer/zipball/b7489ce515e168639d17feec34b8847c326b0b3c",
- "reference": "b7489ce515e168639d17feec34b8847c326b0b3c",
- "shasum": ""
- },
- "require": {
- "ext-dom": "*",
- "ext-tokenizer": "*",
- "ext-xmlwriter": "*",
- "php": "^7.2 || ^8.0"
- },
- "type": "library",
- "autoload": {
- "classmap": [
- "src/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "BSD-3-Clause"
- ],
- "authors": [
- {
- "name": "Arne Blankerts",
- "email": "arne@blankerts.de",
- "role": "Developer"
- }
- ],
- "description": "A small library for converting tokenized PHP source code into XML and potentially other formats",
- "support": {
- "issues": "https://github.com/theseer/tokenizer/issues",
- "source": "https://github.com/theseer/tokenizer/tree/1.3.1"
- },
- "funding": [
- {
- "url": "https://github.com/theseer",
- "type": "github"
- }
- ],
- "time": "2025-11-17T20:03:58+00:00"
- }
- ],
- "aliases": [],
- "minimum-stability": "stable",
- "stability-flags": {},
- "prefer-stable": false,
- "prefer-lowest": false,
- "platform": {
- "php": "~8.4.0"
- },
- "platform-dev": {
- "ext-curl": "*"
- },
- "platform-overrides": {
- "php": "8.4.0"
- },
- "plugin-api-version": "2.9.0"
-}
diff --git a/css/doc.css b/css/doc.css
new file mode 100644
index 0000000000..68e37f9c8a
--- /dev/null
+++ b/css/doc.css
@@ -0,0 +1,118 @@
+.refentry {
+ position: relative;
+}
+
+h3.title {
+ font-size: 1.5em;
+ border-top-style: solid;
+ border-top-width: 3px;
+ padding-top: 6px;
+ margin-top: 2em;
+}
+
+i .parameter {
+ font-style: normal;
+}
+
+.refentry .methodsynopsis {
+ padding: 10px 20px;
+ margin: 1em 2em 1.3em;
+ border-top: 3px solid #ddd;
+ background: #efefef;
+ color: #666;
+ font-family: monospace;
+}
+
+.refentry div.warning,
+.refentry div.tip,
+.refentry .notes blockquote {
+ padding: 10px 20px;
+ margin: 1em 2em 1.3em;
+}
+
+.refentry .notes blockquote {
+ border-top: 3px solid #fff08a;
+ background-color: #EFEFEF;
+}
+.refentry div.tip {
+ border-top: 3px solid #434343;
+ background-color: #EFEFEF;
+}
+.refentry div.warning {
+ border-top: 3px solid #ff4d4d;
+ background-color: #EFEFEF;
+}
+.refentry .notes blockquote, .refentry div.warning, .refentry div.tip {
+ font-size: 1em;
+ margin-right: 0.8em;
+}
+.refentry div.warning b.warning, .refentry div.tip b.tip {
+ float: left;
+ margin-right: 0.8em;
+}
+
+.methodname b {
+ color: #000;
+}
+
+.parameter {
+ color: #604080;
+ font-weight: bold;
+}
+
+.initializer {
+ color: #000;
+}
+
+th {
+ text-align: left;
+}
+
+td, th {
+ padding: 2px 5px;
+}
+
+.refentry .description p {
+ margin: 0.7em 0;
+}
+
+.refentry .parameters dt {
+ font-size: 1.2em;
+}
+
+.refentry .parameters dd {
+ margin-top: -0.7em;
+}
+
+.refentry .parameters p {
+ margin: 0.7em 0;
+}
+
+
+
+.refentry .phpcode, .refentry .screen {
+ border: 1px solid #E2E1D5;
+ background-color: #EFEFEF;
+ padding: 10px;
+}
+.refentry .example {
+ margin: 15px;
+ border-top: 1px solid #0a0;
+}
+
+
+
+.refentry .changelog .doctable {
+ width: 100%;
+}
+.refentry .changelog .doctable th {
+ border-bottom: 1px solid #987db3;
+}
+.refentry .changelog .doctable td {
+ border-right: 1px solid #987db3;
+}
+.refentry .changelog .doctable td:last-child {
+ border: 0px;
+}
+
+
diff --git a/css/reset.css b/css/reset.css
new file mode 100644
index 0000000000..49a2e4e88e
--- /dev/null
+++ b/css/reset.css
@@ -0,0 +1,43 @@
+html, body, div, span, applet, object, iframe,
+h1, h2, h3, h4, h5, h6, p, blockquote, pre,
+a, abbr, acronym, address, big, cite, code,
+del, dfn, em, font, img, ins, kbd, q, s, samp,
+small, strike, strong, sub, sup, tt, var,
+b, u, i, center,
+dl, dt, dd, ol, ul, li,
+fieldset, form, label, legend,
+table, caption, tbody, tfoot, thead, tr, th, td {
+ margin: 0;
+ padding: 0;
+ border: 0;
+ outline: 0;
+ font-size: 100%;
+ vertical-align: baseline;
+ background: transparent;
+ text-decoration: none;
+}
+body {
+ line-height: 1;
+}
+ol, ul {
+ list-style: none;
+}
+blockquote, q {
+ quotes: none;
+}
+blockquote:before, blockquote:after,
+q:before, q:after {
+ content: '';
+ content: none;
+}
+
+/* remember to define focus styles! */
+:focus {
+ outline: 0;
+}
+
+/* tables still need 'cellspacing="0"' in the markup */
+table {
+ border-collapse: collapse;
+ border-spacing: 0;
+}
\ No newline at end of file
diff --git a/css/structure.css b/css/structure.css
new file mode 100644
index 0000000000..565fa2d247
--- /dev/null
+++ b/css/structure.css
@@ -0,0 +1,214 @@
+body, input, textarea {
+ font-size: 13px;
+}
+
+h1 {
+ margin-bottom: 0.2em;
+}
+
+#headnav {
+ padding: 0 25px;
+ height: 72px;
+}
+
+#headmenu {
+ width: 920px;
+ margin: 0 auto;
+}
+
+#headnav h6,
+#headnav li,
+#headsearch {
+ display: block;
+ float: left;
+ margin: 0;
+ list-style: none;
+ padding: 18px 0 0 0;
+}
+
+#headnav li#headhome {
+}
+
+#headnav li#headhome a,
+#headnav li#headhome a:hover {
+ width: 150px;
+ height: 16px;
+ text-indent: -2000em;
+ border: none;
+}
+
+#headnav li#headsearch {
+ margin: 22px 0 0 20px;
+ padding: 2px;
+ float: right;
+ border: 1px solid;
+}
+
+#headsearch-keywords {
+ border: 0;
+ padding: 2px;
+ width: 14em;
+}
+
+#headsearch-submit {
+ border: 0;
+ margin: 1px;
+ padding: 2px 5px;
+ font-weight: bold;
+}
+
+#headnav a.menu-link,
+#headnav h6 a {
+ display: block;
+ padding: 10px;
+ margin: 0;
+ border-bottom: 12px solid;
+}
+
+#headnav a.menu-link,
+#headnav li.current a.menu-link {
+ padding: 12px 15px 17px 15px;
+}
+
+#headnav li.parent a.menu-link {
+ padding-right: 22px;
+}
+
+#headnav li.parent .children {
+ display: none;
+ z-index: 1000;
+ position: absolute;
+ top: 71px;
+ left: 50%;
+ margin-left: -470px;
+ width: 940px;
+}
+
+#headnav li.parent .children .children-1 {
+ margin: 1px 5px 5px 5px;
+ border: 2px solid;
+ border-top: none;
+ line-height: 1.4;
+ padding: 10px 15px 15px 15px;
+}
+
+#headnav li.parent .children .children-2 {
+ width: 920px;
+ margin: 0 auto;
+}
+
+#headnav .myphp {
+ float: left;
+ position: absolute;
+ right: 20px;
+ top: 30px;
+}
+
+.children dl {
+ float: left;
+ width: 195px;
+ padding-right: 15px;
+}
+
+.children dl a {
+ display: block;
+ padding: 4px;
+}
+
+.children dt {
+ font-weight: bold;
+ margin-top: 1em;
+ border-top-width: 3px;
+ border-top-style: solid;
+}
+
+.children dd {
+ padding: 0 0 0 10px;
+ font-size: 11px;
+}
+
+#layout {
+ padding: 25px 10px;
+ max-width: 1400px;
+ min-width: 600px;
+ margin: 0 auto;
+}
+
+.layout-menu {
+ float: left;
+ width: 160px;
+ padding-right: 30px;
+}
+
+.layout-menu li a {
+ display: block;
+ border-top-width: 3px;
+ border-top-style: solid;
+ padding: 4px 0;
+ margin-top: 1em;
+ font-weight: bold;
+}
+
+.layout-menu li li a {
+ border: none;
+ font-size: 11px;
+ padding: 1px 0 1px 20px;
+ margin: 0;
+ font-weight: normal;
+}
+.layout-menu li.current a {
+ font-weight: bold;
+}
+
+.layout-content {
+ margin-left: 190px;
+}
+
+#footer .footmenu {
+ float: right;
+}
+#footer .footmenu.copyright {
+ float: left;
+}
+#footer .footmenu li {
+ display: inline;
+}
+
+/**
+ * Auto-complete (.ac)
+ */
+.ac_results {
+ padding: 1px 3px 3px 3px;
+ overflow: hidden;
+ z-index: 99999;
+ margin: 0 0 0 1px;
+}
+
+.ac_results ul {
+ list-style-position: outside;
+ list-style: none;
+ padding: 0 0 5px 0;
+ margin: 0;
+ border: 1px solid;
+ border-top: none;
+}
+
+.ac_results li {
+ margin: 0px;
+ padding: 2px 5px;
+ cursor: default;
+ display: block;
+ /*
+ if width will be 100% horizontal scrollbar will apear
+ when scroll mode will be used
+ */
+ /*width: 100%;*/
+ font: menu;
+ font-size: 12px;
+ /*
+ it is very important, if line-height not setted or setted
+ in relative units scroll will be broken in firefox
+ */
+ line-height: 16px;
+ overflow: hidden;
+}
diff --git a/css/theme.css b/css/theme.css
new file mode 100644
index 0000000000..6a78e127cc
--- /dev/null
+++ b/css/theme.css
@@ -0,0 +1,224 @@
+/**
+ *
+ * COLORS: | HEX | HSB
+ * ---------------+---------+---------------
+ * light-purple | #c3add9 | 270, 20%, 85%
+ * ---------------+---------+---------------
+ * medium-purple | #987db3 | 270, 30%, 70%
+ * ---------------+---------+---------------
+ * dark-purple | #604080 | 270, 50%, 50%
+ * ---------------+---------+---------------
+ *
+ */
+
+body * {
+ border-color: #c3add9;
+}
+
+body, input, textarea {
+ font-family: Arial, Helvetica, sans-serif;
+}
+
+body {
+ line-height: 1.4;
+ background: url('../img/sprites.png') repeat-x 0px -990px;
+}
+
+a:link,
+a:visited {
+ color: #528918;
+}
+
+a:hover {
+ color: #355c0b;
+}
+
+#headnav {
+ line-height: 1;
+ background: url('../img/sprites.png') repeat-x 0px -100px;
+}
+
+#headhome a {
+ background: url(../img/sprites.png) 0 0;
+}
+
+#headnav li.parent .children {
+ background: url('../img/shade.png');
+ -moz-border-radius-bottomleft: 5px;
+ -moz-border-radius-bottomright: 5px;
+ -webkit-border-bottom-left-radius: 5px;
+ -webkit-border-bottom-right-radius: 5px;
+ border-bottom-left-radius: 5px;
+ border-bottom-right-radius: 5px;
+}
+
+#headnav li.parent .children .children-1 {
+ background: #fff;
+ border-color: #604080;
+ -moz-border-radius-bottomleft: 5px;
+ -moz-border-radius-bottomright: 5px;
+ -webkit-border-bottom-left-radius: 5px;
+ -webkit-border-bottom-right-radius: 5px;
+ border-bottom-left-radius: 5px;
+ border-bottom-right-radius: 5px;
+}
+
+#headnav li.parent a.menu-link {
+ background: url(../img/sprites.png) no-repeat 100% 7px;
+}
+
+#headnav li.parent.current a.menu-link {
+ background-position: 100% -23px;
+}
+
+#headnav a.menu-link {
+ color: #444;
+ border-color: #987db3;
+ font-weight: bold;
+}
+
+#headnav li#headsearch {
+ border-color: #987db3;
+ -moz-border-radius: 5px;
+ -webkit-border-radius: 5px;
+ border-radius: 5px;
+}
+
+#headsearch-keywords {
+ color: #666;
+ background: transparent;
+}
+
+#headsearch-keywords:focus {
+ color: #000;
+}
+
+#headsearch-submit {
+ border-color: #987db3;
+ -moz-border-radius: 5px;
+ -webkit-border-radius: 5px;
+ border-radius: 5px;
+ border: 1px solid #604080;
+ background: #604080;
+ color: #fff;
+}
+
+#headnav li dl {
+ line-height: 1;
+}
+
+#headnav li dl dd:hover,
+#headnav li dl dt:hover {
+ background: #eee;
+}
+
+#headnav li.current a.menu-link,
+#headnav li a.menu-link:hover {
+ border-color: #604080;
+}
+
+#headnav li.current a.menu-link {
+ color: #000;
+}
+
+h1, h1 a, h1 a:visited, h1 a:link {
+ font-size: 40px;
+ font-weight: normal;
+ color: #666;
+ letter-spacing: -0.04em;
+}
+
+#footer {
+ border-top: 3px solid #c3add9;
+ padding-top: 5px;
+}
+
+#footer a {
+ color: #444;
+ border-color: #987db3;
+ font-weight: bold;
+ margin: 0 8px;
+}
+
+#footer a:hover {
+ color: #000;
+}
+
+h1 a:hover {
+ color: #444;
+}
+
+/**
+ * Auto-complete (.ac)
+ */
+.ac_results {
+ background: url('../img/shade.png');
+ -moz-border-radius-bottomleft: 5px;
+ -moz-border-radius-bottomright: 5px;
+ -webkit-border-bottom-left-radius: 5px;
+ -webkit-border-bottom-right-radius: 5px;
+ border-bottom-left-radius: 5px;
+ border-bottom-right-radius: 5px;
+}
+
+.ac_results ul {
+ border-color: #604080;
+ background-color: white;
+ -moz-border-radius-bottomleft: 5px;
+ -moz-border-radius-bottomright: 5px;
+ -webkit-border-bottom-left-radius: 5px;
+ -webkit-border-bottom-right-radius: 5px;
+ border-bottom-left-radius: 5px;
+ border-bottom-right-radius: 5px;
+}
+
+.ac_over {
+ background-color: #604080;
+ color: white;
+}
+
+/**
+ * User notes
+ */
+#usernotes {
+ background: #eee;
+ position: relative;
+}
+
+#usernotes .action {
+ display: block;
+ top: 1em;
+ right: 20px;
+ position: absolute;
+ text-align: right;
+}
+
+#usernotes .foot .action {
+ position: relative;
+ top: -1em;
+ margin-bottom: 1em;
+}
+
+#usernotes h3 {
+ border-color: #4d63ff;
+ padding-left: 20px;
+ padding-right: 20px;
+ padding-bottom: 6px;
+}
+
+#usernotes .note {
+ margin: 0 20px 2em 20px;
+ border-top: 3px solid #ddd;
+}
+
+#usernotes .user, #usernotes .date {
+ display: block;
+ width: 50%;
+ float: left;
+ margin-bottom: 0.6em;
+}
+
+#usernotes .date {
+ float:right;
+ text-align: right;
+}
\ No newline at end of file
diff --git a/docpage.php b/docpage.php
new file mode 100644
index 0000000000..186cb73d7d
--- /dev/null
+++ b/docpage.php
@@ -0,0 +1,306 @@
+
+
+
+
+
+
+
(PHP 4, PHP 5)
mysql_pconnect — Open a persistent connection to a MySQL server
+
+
+
+
+
Description
+
+ resource mysql_pconnect
+ ([ string $server = ini_get("mysql.default_host")
+ [, string $username = ini_get("mysql.default_user")
+ [, string $password = ini_get("mysql.default_password")
+ [, int $client_flags
+ ]]]] )
+
+
+
+
+
+ mysql_pconnect() acts very much like
+ mysql_connect() with two major differences.
+
+
+ First, when connecting, the function would first try to find a
+ (persistent) link that's already open with the same host,
+ username and password. If one is found, an identifier for it
+ will be returned instead of opening a new connection.
+
+
+ Second, the connection to the SQL server will not be closed when
+ the execution of the script ends. Instead, the link will remain
+ open for future use (mysql_close() will not
+ close links established by mysql_pconnect()).
+
+
+ This type of link is therefore called 'persistent'.
+
+
+
+
+
+
Parameters
+
+
+
+ -
+
+ server
+
+
+
-
+
+
+ The MySQL server. It can also include a port number. e.g.
+ "hostname:port" or a path to a local socket e.g. ":/path/to/socket" for
+ the localhost.
+
+
+ If the PHP directive
+ mysql.default_host is undefined (default), then the default
+ value is 'localhost:3306'
+
+
+
+
+ -
+
+ username
+
+
+
-
+
+
+ The username. Default value is the name of the user that owns the
+ server process.
+
+
+
+
+ -
+
+ password
+
+
+
-
+
+
+ The password. Default value is an empty password.
+
+
+
+
+ -
+
+ client_flags
+
+
+
-
+
+
+ The client_flags
+ parameter can be a combination
+ of the following constants:
+ 128 (enable LOAD DATA LOCAL handling),
+ MYSQL_CLIENT_SSL,
+ MYSQL_CLIENT_COMPRESS,
+ MYSQL_CLIENT_IGNORE_SPACE or
+ MYSQL_CLIENT_INTERACTIVE.
+
+
+
+
+
+
+
+
+
+
+
+
Return Values
+
+ Returns a MySQL persistent link identifier on success, or FALSE on
+ failure.
+
+
+
+
+
+
+
+
+
Notes
+
+ Note
+
+ Note, that these kind of links only work if you are using
+ a module version of PHP. See the
+ Persistent
+ Database Connections section for more information.
+
+
+ Warning
+
+ Using persistent connections can require a bit of tuning of your Apache
+ and MySQL configurations to ensure that you do not exceed the number of
+ connections allowed by MySQL.
+
+
+
+ Note
+
+ You can suppress the error message on failure by prepending
+ a @
+ to the function name.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
example2@example.com
+
25-Sep-2009 15:25
+
+
+
+
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi vulputate ultricies neque, in ornare lectus commodo eget. Donec non lacus quis sapien feugiat interdum nec vel tellus.
+ Vivamus turpis felis, ultrices sed euismod in, scelerisque quis nunc. Proin luctus lacus in est consectetur auctor. Suspendisse potenti. Donec semper commodo vehicula. Aliquam eget
+ nisi quis neque semper bibendum tempor ut mi. Proin at dolor dignissim mi pretium vulputate tristique quis sapien. In hac habitasse platea dictumst. Cras fermentum pharetra ligula
+ sit amet porttitor. Praesent aliquam pulvinar consectetur. Cras vitae vulputate arcu. Nunc interdum venenatis diam, nec ultrices arcu interdum vestibulum. Vestibulum ante ipsum primis
+ in faucibus orci luctus et ultrices posuere cubilia Curae; In blandit bibendum elit ut varius. Aenean egestas imperdiet eros blandit tempus.
+
+
+
+
+
+
+
+
+
example@example.com
+
08-Aug-2008 08:42
+
+
+
+
+ This is an example user note.
+
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi vulputate ultricies neque, in ornare lectus commodo eget. Donec non lacus quis sapien feugiat interdum nec vel tellus.
+ Vivamus turpis felis, ultrices sed euismod in, scelerisque quis nunc. Proin luctus lacus in est consectetur auctor. Suspendisse potenti. Donec semper commodo vehicula. Aliquam eget
+ nisi quis neque semper bibendum tempor ut mi. Proin at dolor dignissim mi pretium vulputate tristique quis sapien. In hac habitasse platea dictumst. Cras fermentum pharetra ligula
+ sit amet porttitor. Praesent aliquam pulvinar consectetur. Cras vitae vulputate arcu. Nunc interdum venenatis diam, nec ultrices arcu interdum vestibulum. Vestibulum ante ipsum primis
+ in faucibus orci luctus et ultrices posuere cubilia Curae; In blandit bibendum elit ut varius. Aenean egestas imperdiet eros blandit tempus.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+