2017-08-29 2 views
0

J'écris une classe et une méthode en PHP qui utilise switch pour appeler d'autres méthodes dépendantes de l'URL spécifique. Exemple ci-dessous:en utilisant l'odeur de code de commutateur PHP ou pas

switch($this->clean([$_POST['task'])) 
{ 
    case "edit": 
     $this->editssomething(); 
    break; 
    case "save": 
     $this->savesomethingelse(); 
    break; 
    default: 
     $this->dodefault(); 
    break; 
} 

Est-ce Classée odeur de code, et devrais-je être refactoring ou pourrait-il être classé comme une classe d'usine.

Merci

+3

me semble que c'est exactement ce que 'switch' était destiné à. – BeetleJuice

+2

c'est généralement beaucoup plus clair qu'une charge de blocs "if/else if". – ADyson

+0

Je n'ai jamais entendu le terme "odeur de code" avant, alors merci de m'avoir signalé qu'il y avait un nom pour ça ^.^ – GrumpyCrouton

Répondre

2

qui sent bon, mais par défaut n'a pas besoin de « pause », aussi être sûr de nommer votre fonction avec chameau ou « _ »

switch($this->clean($_POST['task'])) 
{ 
    case "edit": 
     $this->editssomething(); 
    break; 

    case "save": 
     $this->savesomethingelse(); 
    break; 

    default: 
     $this->dodefault(); 
}