Interfaces fluidas

Estuve leyendo varios blogs sobre PHP y me encantó un artículo que leí sobre fluent interfaces. El concepto es hacer código de programación mucho mas legible como en el siguiente ejemplo.

PHP:
  1. $sms->to($_POST['toNumber'])
  2. ->from($_POST['fromNumber'])
  3. ->message($_POST['message'])
  4. ->send();

en vez de

PHP:
  1. $sms->to($_POST['toNumber']);
  2. $sms->from($_POST['fromNumber']);
  3. $sms->message($_POST['message']);
  4. $sms->send();
  5. ?>

Esto se logra gracias a la forma como trabaja PHP5 los objetos que funcionan por referencia y no por valor. La clase de SMS se tendría que ver de la siguiente forma:

PHP:
  1. class SMS {
  2. public to($number){
  3. $this->toNumber = $number;
  4. return $this;
  5. }
  6. public from($number){
  7. $this->fromNumber = $number;
  8. return $this;
  9. }
  10. public message($message){
  11. $this->message = $message;
  12. return $this;
  13. }
  14. }
  15. ?>

En los blogs de Mike Naberezny y Paul M. Jones pueden encontrar otros ejemplos.

Leave a Reply