Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Improve PHP 8.4 Compatibility #7401

Open
BrookeDot opened this issue Feb 18, 2025 · 0 comments
Open

Improve PHP 8.4 Compatibility #7401

BrookeDot opened this issue Feb 18, 2025 · 0 comments

Comments

@BrookeDot
Copy link

Description

Pods currently runs under PHP 8.4 without any fatal errors, however there are many deprecation warnings that should be addressed for full compatibility. Here is a quick list I am pulling from Query Monitor:


    wp-content/plugins/pods/src/Pods/Container/Container_DI52.php:55

	1	Plugin: pods
Deprecated	Pods\Container\Container_DI52::singleton(): Implicitly marking parameter $afterBuildMethods as nullable is deprecated, the explicit nullable type must be used instead	

    wp-content/plugins/pods/src/Pods/Container/Container_DI52.php:83

	1	Plugin: pods
Deprecated	Pods\Prefixed\lucatume\DI52\Container::singleton(): Implicitly marking parameter $afterBuildMethods as nullable is deprecated, the explicit nullable type must be used instead	

    wp-content/plugins/pods/vendor/vendor-prefixed/lucatume/di52/src/Container.php:155

	1	Plugin: pods
Deprecated	Pods\Prefixed\lucatume\DI52\Container::bind(): Implicitly marking parameter $afterBuildMethods as nullable is deprecated, the explicit nullable type must be used instead	

    wp-content/plugins/pods/vendor/vendor-prefixed/lucatume/di52/src/Container.php:533

	1	Plugin: pods
Deprecated	Pods\Prefixed\lucatume\DI52\Container::singletonDecorators(): Implicitly marking parameter $afterBuildMethods as nullable is deprecated, the explicit nullable type must be used instead	

    wp-content/plugins/pods/vendor/vendor-prefixed/lucatume/di52/src/Container.php:579

	1	Plugin: pods
Deprecated	Pods\Prefixed\lucatume\DI52\Container::getDecoratorBuilder(): Implicitly marking parameter $afterBuildMethods as nullable is deprecated, the explicit nullable type must be used instead	

    wp-content/plugins/pods/vendor/vendor-prefixed/lucatume/di52/src/Container.php:595

	1	Plugin: pods
Deprecated	Pods\Prefixed\lucatume\DI52\Container::bindDecorators(): Implicitly marking parameter $afterBuildMethods as nullable is deprecated, the explicit nullable type must be used instead	

    wp-content/plugins/pods/vendor/vendor-prefixed/lucatume/di52/src/Container.php:629

	1	Plugin: pods
Deprecated	Pods\Prefixed\lucatume\DI52\Container::instance(): Implicitly marking parameter $afterBuildMethods as nullable is deprecated, the explicit nullable type must be used instead	

    wp-content/plugins/pods/vendor/vendor-prefixed/lucatume/di52/src/Container.php:808

	1	Plugin: pods
Deprecated	Pods\Prefixed\lucatume\DI52\Builders\Resolver::resolveWithArgs(): Implicitly marking parameter $afterBuildMethods as nullable is deprecated, the explicit nullable type must be used instead	

    wp-content/plugins/pods/vendor/vendor-prefixed/lucatume/di52/src/Builders/Resolver.php:177

	1	Plugin: pods
Deprecated	Pods\Prefixed\lucatume\DI52\Builders\Resolver::resolve(): Implicitly marking parameter $buildLine as nullable is deprecated, the explicit nullable type must be used instead	

    wp-content/plugins/pods/vendor/vendor-prefixed/lucatume/di52/src/Builders/Resolver.php:204

	1	Plugin: pods
Deprecated	Pods\Prefixed\lucatume\DI52\Builders\Resolver::cloneBuilder(): Implicitly marking parameter $afterBuildMethods as nullable is deprecated, the explicit nullable type must be used instead	

    wp-content/plugins/pods/vendor/vendor-prefixed/lucatume/di52/src/Builders/Resolver.php:278

	1	Plugin: pods
Deprecated	Pods\Prefixed\lucatume\DI52\Builders\Factory::getBuilder(): Implicitly marking parameter $afterBuildMethods as nullable is deprecated, the explicit nullable type must be used instead	

    wp-content/plugins/pods/vendor/vendor-prefixed/lucatume/di52/src/Builders/Factory.php:63

	1	Plugin: pods
Deprecated	Pods\Prefixed\lucatume\DI52\Builders\ClassBuilder::__construct(): Implicitly marking parameter $afterBuildMethods as nullable is deprecated, the explicit nullable type must be used instead	

    wp-content/plugins/pods/vendor/vendor-prefixed/lucatume/di52/src/Builders/ClassBuilder.php:82

	1	Plugin: pods
Deprecated	Pods\Prefixed\lucatume\DI52\Builders\ClassBuilder::reinit(): Implicitly marking parameter $afterBuildMethods as nullable is deprecated, the explicit nullable type must be used instead	

    wp-content/plugins/pods/vendor/vendor-prefixed/lucatume/di52/src/Builders/ClassBuilder.php:243

	1	Plugin: pods
Deprecated	Pods\Prefixed\lucatume\DI52\Builders\ReinitializableBuilderInterface::reinit(): Implicitly marking parameter $afterBuildMethods as nullable is deprecated, the explicit nullable type must be used instead	

    wp-content/plugins/pods/vendor/vendor-prefixed/lucatume/di52/src/Builders/ReinitializableBuilderInterface.php:29

	1	Plugin: pods
Deprecated	Pods\REST\V1\Endpoints\Base::__construct(): Implicitly marking parameter $post_repository as nullable is deprecated, the explicit nullable type must be used instead	

    wp-content/plugins/pods/src/Pods/REST/V1/Endpoints/Base.php:79

	1	Plugin: pods
Deprecated	Pods\REST\V1\Endpoints\Base::__construct(): Implicitly marking parameter $validator as nullable is deprecated, the explicit nullable type must be used instead	

    wp-content/plugins/pods/src/Pods/REST/V1/Endpoints/Base.php:79

	1	Plugin: pods
Deprecated	Pods\REST\V1\Endpoints\Base::get_by_args(): Implicitly marking parameter $request as nullable is deprecated, the explicit nullable type must be used instead	

    wp-content/plugins/pods/src/Pods/REST/V1/Endpoints/Base.php:491

	1	Plugin: pods
Deprecated	preg_replace(): Passing null to parameter #3 ($subject) of type array|string is deprecated	

    wp-content/plugins/pods/components/Templates/Templates.php:632

	2	Plugin: pods
Deprecated	preg_replace(): Passing null to parameter #3 ($subject) of type array|string is deprecated````

It would likely be best to address this in several commits, I can take a look at some of the low hanging fruit here outside of the lucatume\DI52\ library but would appreciate some additional eyes on if that library can be upgraded to 4.0 which according to the author fixes the deprecation warnings:

It looks like there are two primary areas that need compatibility fixes:

[ ] Upgrade the D152 library
[ ] Fix REST API to not be nullable - I'll make a PR for this shortly.

Version

3.2.8.2

Testing Instructions

  1. Install PHP 8.4 on a WordPress install with Pods
  2. Check PHP logs for Deprecation notices, using Query Monitor is an easy way to do this.

Screenshots / Screencast

No response

Possible Workaround

  • Downgrade to PHP 8.3
  • Ignore or disable PHP WARNINGS
  • manually change the code

Site Health Information


Pods Package

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant