PHPSocialNetwork / phpfastcache

A high-performance backend cache system. It is intended for use in speeding up dynamic web applications by alleviating database load. Well implemented, it can drops the database load to almost nothing, yielding faster page load times for users, better resource utilization. It is simple yet powerful.
https://www.phpfastcache.com
MIT License
2.36k stars 452 forks source link

Deprecated Method Cassandra\ExecutionOptions starting of Cassandra 1.3 #866

Closed mub1989 closed 2 years ago

mub1989 commented 2 years ago

Configuration

Getting the below deprecated message

Deprecated: Function Cassandra\ExecutionOptions::__construct() is deprecated in /opt/vhost/vendor/phpfastcache/phpfastcache/lib/Phpfastcache/Drivers/Cassandra/Driver.php on line 173
github-actions[bot] commented 2 years ago

Hello curious contributor ! Since it seems to be your first contribution, make sure that you've been:

Geolim4 commented 2 years ago

Hello @mub1989

Can you tell me if replacing

            $options = new Cassandra\ExecutionOptions(
                [
                    'arguments' => ['cache_id' => $item->getKey()],
                    'page_size' => 1,
                ]
            );

by

            $options = [
                    'arguments' => ['cache_id' => $item->getKey()],
                    'page_size' => 1,
                ];

(+ 2 similar occurrences of Cassandra\ExecutionOptions class.)

works on your side ? I don't have recreated my Cassandra environment so I'll need you to upgrade this code as I'm completely blind atm.

Thank you for your help.

mub1989 commented 2 years ago

Hello @mub1989

Can you tell me if replacing

            $options = new Cassandra\ExecutionOptions(
                [
                    'arguments' => ['cache_id' => $item->getKey()],
                    'page_size' => 1,
                ]
            );

by

            $options = [
                    'arguments' => ['cache_id' => $item->getKey()],
                    'page_size' => 1,
                ];

(+ 2 similar occurrences of Cassandra\ExecutionOptions class.)

works on your side ? I don't have recreated my Cassandra environment so I'll need you to upgrade this code as I'm completely blind atm.

Thank you for your help.

Yeah, after replacing it works for me.

Geolim4 commented 2 years ago

Okey, then I'll push a blind update, but before I made a new release please test the changes by temporary switching to dev-master (v9) or v8.x-dev.

If it's okay for you, then I'll make the release.

Thank you :D

mub1989 commented 2 years ago

Okey, then I'll push a blind update, but before I made a new release please test the changes by temporary switching to dev-master (v9) or v8.x-dev.

If it's okay for you, then I'll make the release.

Thank you :D

Sure waiting for the update :)

Geolim4 commented 2 years ago

I will probably make a Cassandra config useLegacyExecutionOptions that allows developers to easily switch to deprecated type if they still have <1.3version of Cassandra SDK.

Geolim4 commented 2 years ago

For tracking purpose:

Before SDK 1.3: image

Starting of SDK 1.3: image

Geolim4 commented 2 years ago

Try that.

(I'll fix the CI later)

mub1989 commented 2 years ago

Try that.

(I'll fix the CI later)

Getting the below error. Return type mixed is not compatible with php v7

Fatal error: Uncaught TypeError: Return value of Phpfastcache\Drivers\Cassandra\Driver::getCompatibleExecutionOptionsArgument() must be an instance of Phpfastcache\Drivers\Cassandra\mixed, array returned in /opt/vhost/vendor/phpfastcache/phpfastcache/lib/Phpfastcache/Drivers/Cassandra/Driver.php:334
Stack trace:
#0 /opt/vhost/vendor/phpfastcache/phpfastcache/lib/Phpfastcache/Drivers/Cassandra/Driver.php(173): Phpfastcache\Drivers\Cassandra\Driver->getCompatibleExecutionOptionsArgument(Array)
#1 /opt/vhost/vendor/phpfastcache/phpfastcache/lib/Phpfastcache/Core/Pool/CacheItemPoolTrait.php(137): Phpfastcache\Drivers\Cassandra\Driver->driverRead(Object(Phpfastcache\Drivers\Cassandra\Item))
#2 /opt/vhost/vendor/phpfastcache/phpfastcache/lib/Phpfastcache/Helper/Psr16Adapter.php(78): Phpfastcache\Drivers\Cassandra\Driver->getItem('Daisycon__Exact...')
#3 /opt/vhost/vendor/daisycon/exact/src/Model/ModelTrait.php(112): Phpfastcache\Helper\Psr16Adapter->get('Daisycon__Exact...')
#4 /opt/vhost/vendor/daisycon/exact/src/Model/Crm/Acc in /opt/vhost/vendor/phpfastcache/phpfastcache/lib/Phpfastcache/Drivers/Cassandra/Driver.php on line 334
Geolim4 commented 2 years ago

Dunno why phpstan did not flagged that oO

mub1989 commented 2 years ago

must be an instance

Dunno why phpstan did not flagged that oO

Great it works now. Can you put a release? :)

Geolim4 commented 2 years ago

Great, can you give me a feedback on v9 too ? :D

Geolim4 commented 2 years ago

8.1.3 has been released 🍰

mub1989 commented 2 years ago

8.1.3 has been released 🍰

Thank you very much for your prompt action :) I will test v9 and give you a feedback ASAP

Geolim4 commented 2 years ago

Hello @mub1989, any news :D

mub1989 commented 2 years ago

Hi, Sorry for the late reply. Still I could not check it. I'm having some other issues with Cassandra, I'll let you know for sure :)

Geolim4 commented 2 years ago

I tested it by myself on v9, it's ok.