Pregunta

Estoy escribiendo una clase que tiene muchos captadores y establecedores y me preguntaba qué pensaba la gente sobre lo siguiente:

La forma normal es codificar de la siguiente manera:

public function setChangeSort($changeSort)
{
    self::$changeSort = $changeSort;
}

public function getChangeSort()
{
    return self::$changeSort;
}

¿Cuáles son sus opiniones sobre lo siguiente?

public function setChangeSort($changeSort) { self::$changeSort = $changeSort; }
public function getChangeSort() { return self::$changeSort; }

No tengo problemas para hacerlo de la manera original, ya que así es como debe hacerse. Simplemente parece ocupar mucho espacio en mis funciones classon que son realmente obvias en lo que hacen.

Gracias de antemano.

¿Fue útil?

Solución

Los bloques condicionales de una línea están bien si son consistentes, obvios e intuitivos, aunque recomendaría espaciarlos con cuidado, ¡así que es inmediatamente obvio que son funciones en lugar de una sola línea de código!

Otros consejos

Me gustaría ir con la "una línea" variación. Pero solo si todo lo que hace es establecer y obtener un valor. si agrega una verificación de validación nula o de cualquier otro tipo, o si hace algo más que obtener o configurar, iría con la primera y más larga variación para mantener el código más legible.

Generalmente amenazo los métodos de una línea de la misma manera que los otros métodos. No me importa que mi código fuente sea N-lines más largo si significa que es más fácil de leer y mantener.

También sugeriría revisar el siguiente documento http://framework.zend.com/manual/en/coding-standard. html En mi humilde opinión, es la mejor referencia estándar de codificación PHP disponible hasta ahora.

Creo que los getters / setters mágicos de PHP5 son realmente útiles cuando se trata con numerosos getters / setters.

http: // fr .php.net / manual / es / language.oop5.overloading.php # language.oop5.overloading.members

Y un ejemplo.

<?php
class A {
  private $properties = array();

  public function __set($key, $value) {
    if (is_array($value)) {
      $this->$key = $value;
    } else {
      $this->properties[$key] = $value;
    }
  }

  public function __get($key) {
    if (array_key_exists($key, $this->properties)) {
      return $this->properties[$key];
    }

    return null;
  }
}
?> 
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top