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.

Home Page:https://www.phpfastcache.com

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Deprecated Method Cassandra\ExecutionOptions starting of Cassandra 1.3

mub1989 opened this issue · comments

Configuration

  • PhpFastCache version: 8.1.2
  • PhpFastCache API version: 3.0.0
  • PHP version: 7.4.3
  • Operating system: WSL

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

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

  • Reading and searching out our WIKI
  • Reading and agreed with our Code Of Conduct
  • Reading and understood our Coding Guideline
  • Reading our README
    If everything looks unclear to you, tell us what 😄
    The Phpfastcache Team

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.

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.

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

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 :)

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

For tracking purpose:

Before SDK 1.3:
image

Starting of SDK 1.3:
image

Try that.

(I'll fix the CI later)

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

Dunno why phpstan did not flagged that oO

must be an instance

Dunno why phpstan did not flagged that oO

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

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

8.1.3 has been released 🍰

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

Hello @mub1989, any news :D

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 :)

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