Blog de Gonzalo

CLÁUSULAS DE GUARDA EN PHP

Las cláusulas de guarda son un sencillo método que hace que nuestro código más legible. Una buena forma de detectar estos "refactors", es buscar siempre estructuras "if-else" que comprueben una condición para ejecutar el código principal, y en caso de no cumplirse, lanzar un error o una excepción.
Vamos a ver un ejemplo:


function setAge(int age){

  if ($age > 0){
     $this->age = age;
  }else{
   throw new NegativeAgeException();
  }
}
En el método "setAge" se puede ver que se hace una comprobación, y en caso de pasarla, ejecuta una acción de asignar un valor. En este caso es una acción muy simple, pero podría requerir de más líneas y tendríamos un bloque de código bastante grande dentro del "if" y una única línea en el "else", que además quedaría debajo del todo, dificultando su lectura.
Este es un caso típico que puede transformarse en una cláusula de guarda y aplicar un refactor Extract Method.
Vamos a ver un ejemplo:

function setAge(int age){

  if ($age < 0){
    throw new NegativeAgeException();

  }
  $this->age = age;
}
Con este último ejemplo el código queda más legible.

Compartir en twitter