Skip to content

Fix PHP 8.1+ compatibility and workflow issues from PR #1236 review#1392

Merged
nielsdrost7 merged 4 commits intofeature/1234-pagination-in-mpdf-php-templatefrom
copilot/sub-pr-1236
Jan 19, 2026
Merged

Fix PHP 8.1+ compatibility and workflow issues from PR #1236 review#1392
nielsdrost7 merged 4 commits intofeature/1234-pagination-in-mpdf-php-templatefrom
copilot/sub-pr-1236

Conversation

Copy link
Copy Markdown
Contributor

Copilot AI commented Jan 19, 2026

Addresses comprehensive feedback on PR #1236 covering PHP compatibility, security improvements, and GitHub Actions workflow corrections.

PHP Compatibility (8 files)

  • Replace mb_rtrim() with rtrim()mb_rtrim() requires PHP 8.4+, project targets 8.1+
  • Affected: file_security_helper.php, index.php, phpmailer_helper.php, pdf_helper.php, dropzone_helper.php

Security Improvements

  • Origin validation: Replace str_starts_with($referer, $base_url) with proper URL parsing

    • Parse and compare scheme, host, and port components
    • Handle root-relative URLs (/path) as safe
    • Applied to: mailer_helper.php, Sessions.php
  • ClientTitleEnum: Fix tryFrom() to handle array_search() correctly

    // Before: Truthy check fails for index 0, returns wrong value
    if ($searchResult) {
        $returnObject->value = $searchResult;  // Returns index, not value
    }
    
    // After: Strict check, returns actual value
    if ($searchResult !== false) {
        $returnObject->value = $value;
    }

GitHub Actions Workflows (8 files)

  • composer-update.yml: Parse JSON advisories with jq instead of file size check
  • phpstan.yml: Add pull_request trigger to enable PR commenting
  • phpunit.yml: Remove Laravel artisan commands for CodeIgniter 3 project
  • pint.yml: Skip push on forked PRs (check github.event.pull_request.head.repo.full_name)
  • quickstart.yml: Remove Laravel-specific database migration steps
  • release.yml: Update softprops/action-gh-release@v1@v2
  • test-php.yml: Restore pull_request trigger alongside workflow_dispatch
  • yarn-update.yml: Remove --latest flag to respect semver ranges

✨ Let Copilot coding agent set things up for you — coding agent works faster and does higher quality work when set up for your repo.

Copilot AI and others added 3 commits January 19, 2026 14:17
…rigin validation

Co-authored-by: nielsdrost7 <47660417+nielsdrost7@users.noreply.github.com>
…ecks

Co-authored-by: nielsdrost7 <47660417+nielsdrost7@users.noreply.github.com>
…d improve JSON validation

Co-authored-by: nielsdrost7 <47660417+nielsdrost7@users.noreply.github.com>
Copy link
Copy Markdown
Contributor Author

Copilot AI commented Jan 19, 2026

Just as a heads up, I was blocked by some firewall rules while working on your feedback. Expand below for details.

Warning

Firewall rules blocked me from connecting to one or more addresses (expand for details)

I tried to connect to the following addresses, but was blocked by firewall rules:

  • https://api.github.com/repos/Bacon/BaconQrCode/zipball/8674e51bb65af933a5ffaf1c308a660387c35c22
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/DbYFdg /usr/bin/composer install --no-interaction --prefer-dist (http block)
  • https://api.github.com/repos/DASPRiD/Enum/zipball/b5874fa9ed0043116c72162ec7f4fb50e02e7cce
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/DbYFdg /usr/bin/composer install --no-interaction --prefer-dist (http block)
  • https://api.github.com/repos/GrahamCampbell/Result-Type/zipball/e01f4a821471308ba86aa202fed6698b6b695e3b
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/DbYFdg /usr/bin/composer install --no-interaction --prefer-dist (http block)
  • https://api.github.com/repos/PHPCSStandards/PHP_CodeSniffer/zipball/0ca86845ce43291e8f5692c7356fccf3bcf02bf4
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/DbYFdg /usr/bin/composer install --no-interaction --prefer-dist (http block)
  • https://api.github.com/repos/PHPMailer/PHPMailer/zipball/d1ac35d784bf9f5e61b424901d5a014967f15b12
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/DbYFdg /usr/bin/composer install --no-interaction --prefer-dist (http block)
  • https://api.github.com/repos/Setasign/FPDF/zipball/0838e0ee4925716fcbbc50ad9e1799b5edfae0a0
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/DbYFdg /usr/bin/composer install --no-interaction --prefer-dist (http block)
  • https://api.github.com/repos/Setasign/FPDI/zipball/4b53852fde2734ec6a07e458a085db627c60eada
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/DbYFdg /usr/bin/composer install --no-interaction --prefer-dist (http block)
  • https://api.github.com/repos/endroid/qr-code/zipball/0db25b506a8411a5e1644ebaa67123a6eb7b6a77
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/DbYFdg /usr/bin/composer install --no-interaction --prefer-dist (http block)
  • https://api.github.com/repos/filp/whoops/zipball/d2102955e48b9fd9ab24280a7ad12ed552752c4d
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/DbYFdg /usr/bin/composer install --no-interaction --prefer-dist (http block)
  • https://api.github.com/repos/guzzle/guzzle/zipball/b51ac707cfa420b7bfd4e4d5e510ba8008e822b4
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/DbYFdg /usr/bin/composer install --no-interaction --prefer-dist (http block)
  • https://api.github.com/repos/guzzle/promises/zipball/481557b130ef3790cf82b713667b43030dc9c957
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/DbYFdg /usr/bin/composer install --no-interaction --prefer-dist (http block)
  • https://api.github.com/repos/guzzle/psr7/zipball/21dc724a0583619cd1652f673303492272778051
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/DbYFdg /usr/bin/composer install --no-interaction --prefer-dist (http block)
  • https://api.github.com/repos/laravel/pint/zipball/c67b4195b75491e4dfc6b00b1c78b68d86f54c90
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/DbYFdg /usr/bin/composer install --no-interaction --prefer-dist (http block)
  • https://api.github.com/repos/moneyphp/money/zipball/b358727ea5a5cd2d7475e59c31dfc352440ae7ec
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/DbYFdg /usr/bin/composer install --no-interaction --prefer-dist (http block)
  • https://api.github.com/repos/mpdf/mpdf/zipball/b59670a09498689c33ce639bac8f5ba26721dab3
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/DbYFdg /usr/bin/composer install --no-interaction --prefer-dist (http block)
  • https://api.github.com/repos/mpdf/psr-http-message-shim/zipball/f25a0153d645e234f9db42e5433b16d9b113920f
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/DbYFdg /usr/bin/composer install --no-interaction --prefer-dist (http block)
  • https://api.github.com/repos/mpdf/psr-log-aware-trait/zipball/a633da6065e946cc491e1c962850344bb0bf3e78
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/DbYFdg /usr/bin/composer install --no-interaction --prefer-dist (http block)
  • https://api.github.com/repos/myclabs/DeepCopy/zipball/07d290f0c47959fd5eed98c95ee5602db07e0b6a
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/DbYFdg /usr/bin/composer install --no-interaction --prefer-dist (http block)
  • https://api.github.com/repos/paragonie/random_compat/zipball/96c132c7f2f7bc3230723b66e89f8f150b29d5ae
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/DbYFdg /usr/bin/composer install --no-interaction --prefer-dist (http block)
  • https://api.github.com/repos/php-fig/http-client/zipball/bb5906edc1c324c9a05aa0873d40117941e5fa90
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/DbYFdg /usr/bin/composer install --no-interaction --prefer-dist (http block)
  • https://api.github.com/repos/php-fig/http-factory/zipball/2b4765fddfe3b508ac62f829e852b1501d3f6e8a
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/DbYFdg /usr/bin/composer install --no-interaction --prefer-dist (http block)
  • https://api.github.com/repos/php-fig/http-message/zipball/402d35bcb92c70c026d1a6a9883f06b2ead23d71
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/DbYFdg /usr/bin/composer install --no-interaction --prefer-dist (http block)
  • https://api.github.com/repos/php-fig/log/zipball/f16e1d5863e37f8d8c2a01719f5b34baa2b714d3
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/DbYFdg /usr/bin/composer install --no-interaction --prefer-dist (http block)
  • https://api.github.com/repos/phpstan/phpstan/zipball/9e800e6bee7d5bd02784d4c6069b48032d16224f
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/DbYFdg /usr/bin/composer install --no-interaction --prefer-dist (http block)
  • https://api.github.com/repos/pocketarc/codeigniter/zipball/d310726565c12ba99b8037e8fb231ed739258e6e
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/DbYFdg /usr/bin/composer install --no-interaction --prefer-dist (http block)
  • https://api.github.com/repos/ralouphie/getallheaders/zipball/120b605dfeb996808c31b6477290a714d356e822
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/DbYFdg /usr/bin/composer install --no-interaction --prefer-dist (http block)
  • https://api.github.com/repos/rectorphp/rector/zipball/9afc1bb43571b25629f353c61a9315b5ef31383a
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/DbYFdg /usr/bin/composer install --no-interaction --prefer-dist (http block)
  • https://api.github.com/repos/schmittjoh/php-option/zipball/75365b91986c2405cf5e1e012c5595cd487a98be
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/DbYFdg /usr/bin/composer install --no-interaction --prefer-dist (http block)
  • https://api.github.com/repos/smhg/sepa-qr-data-php/zipball/837d98eae6fdcf61aaffddb5d9c61b535ee7ce1a
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/DbYFdg /usr/bin/composer install --no-interaction --prefer-dist (http block)
  • https://api.github.com/repos/stripe/stripe-php/zipball/7e1c4b5d2beadeaeddc42fd1f8a50fdb18b37f30
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/DbYFdg /usr/bin/composer install --no-interaction --prefer-dist (http block)
  • https://api.github.com/repos/symfony/deprecation-contracts/zipball/63afe740e99a13ba87ec199bb07bbdee937a5b62
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/DbYFdg /usr/bin/composer install --no-interaction --prefer-dist (http block)
  • https://api.github.com/repos/symfony/polyfill-ctype/zipball/a3cc8b044a6ea513310cbd48ef7333b384945638
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/DbYFdg /usr/bin/composer install --no-interaction --prefer-dist (http block)
  • https://api.github.com/repos/symfony/polyfill-mbstring/zipball/6d857f4d76bd4b343eac26d6b539585d2bc56493
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/DbYFdg /usr/bin/composer install --no-interaction --prefer-dist (http block)
  • https://api.github.com/repos/symfony/polyfill-php80/zipball/0cc9dd0f17f61d8131e7df6b84bd344899fe2608
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/DbYFdg /usr/bin/composer install --no-interaction --prefer-dist (http block)
  • https://api.github.com/repos/symfony/var-dumper/zipball/cfae1497a2f1eaad78dbc0590311c599c7178d4a
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/DbYFdg /usr/bin/composer install --no-interaction --prefer-dist (http block)
  • https://api.github.com/repos/vlucas/phpdotenv/zipball/955e7815d677a3eaa7075231212f2110983adecc
    • Triggering command: /usr/bin/php8.3 /usr/bin/php8.3 -n -c /tmp/DbYFdg /usr/bin/composer install --no-interaction --prefer-dist (http block)

If you need me to access, download, or install something from one of these locations, you can either:

Copilot AI changed the title [WIP] Fix workflows and PHP compatibility in PDF footer Fix PHP 8.1+ compatibility and workflow issues from PR #1236 review Jan 19, 2026
Copilot AI requested a review from nielsdrost7 January 19, 2026 14:27
@InvoicePlane InvoicePlane deleted a comment from coderabbitai bot Jan 19, 2026
@nielsdrost7 nielsdrost7 marked this pull request as ready for review January 19, 2026 14:29
@nielsdrost7 nielsdrost7 merged commit 071104a into feature/1234-pagination-in-mpdf-php-template Jan 19, 2026
1 check passed
@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai bot commented Jan 19, 2026

Important

Review skipped

Bot user detected.

To trigger a single review, invoke the @coderabbitai review command.

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.


Comment @coderabbitai help to get the list of available commands and usage tips.

@nielsdrost7 nielsdrost7 deleted the copilot/sub-pr-1236 branch January 19, 2026 14:29
nielsdrost7 added a commit that referenced this pull request Jan 19, 2026
…1392)

* Initial plan

* Fix PHP 8.1+ compatibility: Replace mb_rtrim with rtrim and improve origin validation

Co-authored-by: nielsdrost7 <47660417+nielsdrost7@users.noreply.github.com>

* Fix workflow issues: JSON parsing, triggers, Laravel removal, fork checks

Co-authored-by: nielsdrost7 <47660417+nielsdrost7@users.noreply.github.com>

* Address code review feedback: Fix ClientTitleEnum value assignment and improve JSON validation

Co-authored-by: nielsdrost7 <47660417+nielsdrost7@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: nielsdrost7 <47660417+nielsdrost7@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants