Vous révez de ça :

<?php

$service = new MonService()
    -> setConfig(...)
    -> setAdapter(...)
    -> setModel(...)
    -> process();

Mais ce n'est pas possible en PHP et vous avez l'erreur suivante (ligne 4 = ligne du setConfig() ) :

PHP Parse error:  syntax error, unexpected T_OBJECT_OPERATOR in <votre-fichier-ici> on line 4

Du coup, désespérement vous devez faire :

$service = new MonService();
$service
    -> setConfig(...)
    -> setAdapter(...)
    -> setModel(...)
    -> process();

Imaginez d'autre part, qu'à plusieurs endroits dans votre application vous utilisez systématiquement toujours la même classe, avec des instances différentes, mais qu'à chaque fois vous deviez reconfigurer l'objet de la même manière en faisant par exemple :

$service1 = new MailService();
$service1->setOutgoingAdapter(new SendmailAdapter());
$service1->setIncomingAdapter(new PostfixAdapter());
...
$service1->send(...);
...
...
$service2 = new MailService();
$service2->setOutgoingAdapter(new SendmailAdapter());
$service2->setIncomingAdapter(new PostfixAdapter());
...
$service2->send(...);

A chaque fois que vous désirez instancier votre MailService, vous avez le droit d'écrire 3 lignes de code...

Le pattern Factory peut alors vous aidez. Vous pourriez définir un "paramétrage" par défaut de votre service qui soit déjà tout préconfiguré :

class MailService {
   ...
   public final static function factory($type='default') {
       $service = new MailService();
       switch($type) {
       case 'default':
           $service->setOutgoingAdapter(new SendmailAdapter());
           $service->setIncomingAdapter(new PostfixAdapter());
           break;
      case 'mock':
          $service->setOutgoingAdapter(new MockOutgoingAdapter());
          $service->setIncomingAdapter(new MockIncomingAdapter());
          break;
      default:
          throw new RuntimeException("Unknown factory type '$type'");
      }
      return $service;
   }
}

Vous pourrez maintenant appeler votre service en une seule ligne de code :

$result = MailService::factory('default')->send(...);

Pensez à factoriser votre code !