Question

Je suis en train d’écrire une classe qui a beaucoup d’accessoires et de passeurs et qui se demandait ce que les gens pensaient de ce qui suit:

La méthode normale consiste à coder comme suit:

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

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

Quelle est votre opinion sur ce qui suit:

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

Je n’ai aucun problème à le faire de façon originale, car c’est comme cela que l’on devrait le faire. Il semble que cela prenne beaucoup de place dans mes fonctions de classe qui sont vraiment évidentes dans ce qu’elles font.

Merci d'avance.

Était-ce utile?

La solution

Les blocs conditionnels à une ligne sont acceptables s'ils sont cohérents, évidents et intuitifs, bien que je vous encourage à les espacer avec soin. Il est donc immédiatement évident qu'ils sont des fonctions plutôt qu'une ligne de code!

Autres conseils

J'irais avec le "one-line" variation. Mais uniquement , il ne fait que définir et obtenir une valeur. si vous ajoutez une vérification pour la validation null ou une autre validation, ou si vous faites autre chose que d'obtenir ou de définir, j'utiliserais la première et la plus longue variante pour que le code soit plus lisible.

Je menace généralement les méthodes à une ligne de la même manière que les autres méthodes. Mon code source ne me dérange pas d’être plus long que N lignes si cela signifie qu’il est plus lisible et facile à maintenir.

Je suggérerais également de vérifier le document suivant http://framework.zend.com/manual/fr/coding-standard. html À mon humble avis, c’est la meilleure référence en matière de codage PHP disponible à ce jour.

Je pense que les getters / setters magiques de PHP5 sont vraiment utiles pour traiter avec de nombreux getters / setters.

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

Et un exemple.

<?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;
  }
}
?> 
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top