Back to Blog
Dotkernel 3

PHP 8.3 support in Dotkernel Admin

With the release of PHP 8.3, the Dotkernel team has been working on updating the dependencies in our packages. Eventually, this allowed us to update our applications as well, starting with the Admin, in release 4.3.1. There were some issues and backward incompatibilities that we will list below. The full list of file changes is here.

  • Supports only PHP 8.2 and PHP 8.3
    • Removed support for PHP 8.1
    • Updated workflows - removed PHP 8.1
    • Commits #1 and #2
  • Updated dependencies
    • require
      • "dotkernel/dot-cli": "^3.4.2"
      • "dotkernel/dot-controller": "^3.4.3"
      • "dotkernel/dot-data-fixtures": "^1.1.3"
      • "dotkernel/dot-errorhandler": "^3.3.2"
      • "dotkernel/dot-flashmessenger": "^3.4.2"
      • "dotkernel/dot-geoip": "^3.5.3"
      • "dotkernel/dot-helpers": "^3.4.2"
      • "dotkernel/dot-mail": "^4.1.1"
      • "dotkernel/dot-navigation": "^3.4.2"
      • "dotkernel/dot-rbac-guard": "^3.4.2"
      • "dotkernel/dot-session": "^5.4.2"
      • "dotkernel/dot-twigrenderer": "3.4.3"
      • "dotkernel/dot-user-agent-sniffer": "^3.3.3"
      • "friendsofphp/proxy-manager-lts": "^1.0.16"
      • "laminas/laminas-component-installer": "^3.4.0"
      • "laminas/laminas-config-aggregator": "^1.14.0"
      • "laminas/laminas-i18n": "^2.26.0"
      • "laminas/laminas-math": "^3.7.0"
      • "mezzio/mezzio": "^3.18.0"
      • "mezzio/mezzio-authorization-rbac": "^1.7.0"
      • "mezzio/mezzio-cors": "^1.11.1"
      • "mezzio/mezzio-fastroute": "^3.11.0"
      • "ramsey/uuid-doctrine": "^2.0.0"
      • "roave/psr-container-doctrine": "^4.1.0"
    • require-dev
      • "filp/whoops": "^2.15.4"
      • "laminas/laminas-development-mode": "^3.12.0"
      • "laminas/laminas-http": "^2.19.0"
      • "mezzio/mezzio-tooling": "^2.9.0"
      • "phpunit/phpunit": "^10.5.9"
      • "vimeo/psalm": "^5.20.0"
    • Commit #1
  • Added "laminas/laminas-http": "^2.19.0" to composer.json require-dev (required for tests)
    • Commit #1
  • Updated src/Admin/src/Service/AdminService.php, function logAdminVisit
    • Note: No longer returns AddressNotFoundException
    • Commit #1
  • Removed parameter from configuration files and uses for class PhpFileCache (required by cache)
    • Removed use Doctrine\Common\Cache\PhpFileCache; from local.php.dist (local.php) and doctrine.global.php
    • Removed the parameters used by cache configuration from local.php.dist (local.php) and cache from doctrine.global.php
    • Commits #1 and #2
  • Updated dotkernel/dot-twigrenderer dependencies
    • Removed doctrine/doctrine-module because of conflict
    • Other packages that don't get installed because of removing doctrine/doctrine-module - make sure to check if their functionality is used in your project
      • doctrine/doctrine-laminas-hydrator
      • laminas/laminas-cache-storage-adapter-filesystem
      • laminas/laminas-cache-storage-adapter-memory
      • laminas/laminas-mvc
      • laminas/laminas-paginator

Updating to PHP 8.3 has not been as streamlined as in previous updates, but the advantages of doing so outweigh the extra work on the custom code to remove potential incompatibilities. The Dotkernel team is focused on the cache that has been removed in the current version because doctrine/cache deleted their cache implementation classes. We are also updating our existing projects to PHP 8.3 and testing the changes on live environments to iron out any other issues.

Frequently Asked Questions

Which Dotkernel Admin release added PHP 8.3 support? +

Release 4.3.1.

Which PHP versions does this release support? +

Only PHP 8.2 and PHP 8.3 - support for PHP 8.1 was removed, including from the workflows.

Did the logAdminVisit function change? +

Yes. src/Admin/src/Service/AdminService.php's logAdminVisit function was updated and no longer returns AddressNotFoundException.

Why were cache-related parameters removed from the configuration files? +

The PhpFileCache class and its related parameters were removed from local.php.dist (local.php) and doctrine.global.php because doctrine/cache deleted their cache implementation classes.

Are there side effects from updating the dot-twigrenderer dependencies? +

Yes. doctrine/doctrine-module was removed because of a conflict, which means other packages that depended on it - such as doctrine/doctrine-laminas-hydrator, laminas-cache-storage-adapter-filesystem, laminas-cache-storage-adapter-memory, laminas-mvc and laminas-paginator - may no longer get installed, so you should check whether your project actually relies on them.