Refactoring PHP - Lez. 3: méthodes d'une classe
En ce qui concerne les méthodes d'une classe, s'applique également dans ce cas, la convention de nommage décrites ci-dessus pour les propriétés de la classe elle-même. Nous les répétons-dessous pour plus de commodité:
- Si compose d'un seul mot, tout en minuscules, par exemple, la devise ();
- Si elle est faite de beaucoup de mots à la première lettre de chacun, de la seconde, en majuscules, en minuscules tous les autres, par exemple addElement ();
- Le nom de la méthode doit être auto-explicatif.
En plus de ces règles aussi considérer les éléments suivants:
- Si le nom de la méthode se compose de plusieurs actions qu'il divisée en de nombreuses façons qu'il ya de mesures;
- La longueur du corps de la méthode ne doit pas dépasser 40 lignes;
- Le nombre de paramètres ne doivent pas dépasser un maximum de 4;
Nom de la méthode se compose de plusieurs actions
Si vous mettez cela par écrit le code d'une classe ont une méthode avec la signature suivante:
fonction publique controllaImmagazzina ($ produit)
Le code de la méthode est la suivante:
Classe Entrepôt { fonction publique controllaImmagazzina ($ produit) { if ($ produit == null) { retour "gamme de produits»; } Else if (substr ($ produit-> getCode (), 0, 3) == "CAT") { retour "fabriqués à partir de vieux catalogue»; } Else if ($ produit-> getIngombro ()> 10) { retour "des produits trop lourds"; } $ Db = new Db ("mysql"); $ Db-> update ($ produit); } ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... } |
Comme vous pouvez le constater, nous avons ajouté une méthode unique pourrait actions utiles individuellement, c'est pourquoi nous diviser chaque part en une nouvelle méthode et de les utiliser ensemble, si nous servons que nous créons une méthode supplémentaire appels en séquence.
En suivant les instructions tout donné, le code ci-dessus devrait ressembler à ceci:
Classe Entrepôt { ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... Vérifier la fonction publique ($ produit) { if ($ produit == null) { retour "gamme de produits»; } Else if (substr ($ produit-> getCode (), 0, 3) == "CAT") { retour "fabriqués à partir de vieux catalogue»; } Else if ($ produit-> getIngombro ()> 10) { retour "des produits trop lourds"; } return ""; } magasin de la fonction publique ($ produit) { $ Db = new Db ("mysql"); $ Db-> update ($ produit); } publique prendeInCarico ($ produit) { $ Msg = $ this-> check ($ produit); if ($ msg! == "") { echo $ msg; Else {} $ This-> magasin ($ produit); echo "La prise en charge réussie»; } } } $ ObjProdotto = nouveau produit (); $ Obj = Stockage de nouveaux entrepôts (); $ Msg = $ obj Entrepôt -> prendeInCarico ($ objProdotto) echo $ msg; |
La réécriture du code, nous avons rendu plus lisible et réutilisable, si nous voulions simplement vérifier un produit dans une autre méthode, ou tout simplement à stocker un produit qui ne nécessite pas de contrôle.
Maintenant, considérons les autres exigences.











Действительно классная темка.
спасибо Вам за комментарий
Nicolas