функции фейстона и бобовых стеблей

Следующий код – это snipet, взятый из примера реализации и правильной работы pheanstalk (полученной на странице github на pheanstalk: https://github.com/pda/pheanstalk ):

<?php require_once("vendor/autoload.php"); use Pheanstalk\Pheanstalk; $pheanstalk = new Pheanstalk('127.0.0.1'); // ------------ producer (queues jobs): $pheanstalk ->useTube('testtube') ->put("job payload goes here\n"); // ------------ worker (performs jobs): $job = $pheanstalk ->watch('testtube') ->ignore('default') ->reserve(); echo $job->getData(); $pheanstalk->delete($job); // ------------ check server availability $pheanstalk->getConnection()->isServiceListening(); // true or false 

ВОПРОСОВ:

Я не понимаю следующие части:

  1. Я предполагаю, что пространства новой строки в коде производителя не влияют на выполнение, поэтому эта строка будет эквивалентна:

     $pheanstalk->useTube('testtube')->put("job payload goes here\n"); 

верный? Если это так, то эти конкретные вызовы функций должны быть в этом порядке или они могут быть в любом порядке? Мое предыдущее понимание функций и классов в php состояло в том, что вы непосредственно вызывали функцию из объекта своего типа класса: $object->classFunction() , однако приведенный выше код является допустимым методом php, где вы можете одновременно вызвать все эти функции или это что-то особенное для pheanstalk?

  1. Что такое код ignore('default') ?

  2. Что такое $pheanstalk->getConnection()->isServiceListening(); код делает?

  1. Вы правы, что эти пространства невелики. То, что вы видите, называется методом цепочки
 $pheanstalk->useTube('testtube')->put("job payload goes here\n"); 

эквивалентно:

 $temp = $pheanstalk->useTube('testtube'); $temp->put("job payload goes here\n"); 

Поэтому сначала он называет useTube() чтобы указать, в какую трубу должна быть useTube() полезная нагрузка, а затем помещает в нее полезную нагрузку. Это зависит от того, что методы, выполняющие действия, возвращают объект Pheanstalk на Pheanstalk они были вызваны, поэтому он также не Pheanstalk для:

 $pheanstalk->useTube('testtube'); $pheanstalk->put("job payload goes here\n"); 
  1. ignore(tubename) удаляет эту трубку из ignore(tubename) наблюдения. По default трубка по умолчанию, поэтому это отключает ее и просто ждет сообщений в трубке testtube .

  2. Он делает именно то, что говорится выше: «Проверка доступности сервера. Вы можете использовать это в своем коде производителя, чтобы сообщить об ошибке, прежде чем пытаться отправить сервер beanstalk, который не прослушивает.