Search code examples
phpbeanstalkdpheanstalk

Exception when using Pheanstalk lib to put new data on Beanstalkd


I'm using Pheanstalk library to work with Beanstalkd

I'm using this code to put new data on a tube:

$pheanstalk = Pheanstalk\Pheanstalk::create($ip);
$pheanstalk->useTube($tubename)->put($data, Pheanstalk::DEFAULT_PRIORITY, $delay);

The $tubename variable is string.But I'm getting this error:

Uncaught TypeError: Pheanstalk\Pheanstalk::useTube(): Argument #1 ($tube) must be of type Pheanstalk\Values\TubeName, string given

The name of the tube obviously will be string !, how should I pass tube's name?

The example mentioned here is also using string value for Tube's name


Solution

  • The Pheanstalk::useTube() method signature changed in version 5:

    public function useTube(TubeName $tube): void
    

    So now you should pass the tube name like this:

    $pheanstalk->useTube(new \Pheanstalk\Values\TubeName($tubename));