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:
-
$sms->to($_POST['toNumber'])
-
->from($_POST['fromNumber'])
-
->message($_POST['message'])
-
->send();
PHP:
-
$sms->to($_POST['toNumber']);
-
$sms->from($_POST['fromNumber']);
-
$sms->message($_POST['message']);
-
$sms->send();
-
?>
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:
-
class SMS {
-
public to($number){
-
$this->toNumber = $number;
-
return $this;
-
}
-
public from($number){
-
$this->fromNumber = $number;
-
return $this;
-
}
-
public message($message){
-
$this->message = $message;
-
return $this;
-
}
-
}
-
?>
En los blogs de Mike Naberezny y Paul M. Jones pueden encontrar otros ejemplos.