Je connais les avantages de chaîner au sein de PHP, mais permet de dire que nous avons cette situation suivanteEffets de la méthode enchaînant
$Mail = new MailClass("mail")
->SetFrom("X")
->SetTo("X")
->SetSubject("X")
->AddRecipient("X")
->AddRecipient("X")
->AddRecipient("X")
->AddRecipient("X")
->AddRecipient("X")
->AddRecipient("X")
->Send();
Y a-t-il des problèmes avec le retour et la réutilisation de l'objet, encore et encore, des questions telles que vitesse ou le non-respect meilleures pratiques
également une bonne lecture sur cette option si votre nouveau chez-Courant Interface: Martin Fowler on Fluent-Interfaces
Je comprends parfaitement qu'il ne ont à programmer cette façon, et peut être manipulé comme ceci:
$Mail = new MailClass("mail");
$Mail->AddRecipien(
array(/*.....*/)
);
$Mail->SetFrom("X");
$Mail->SetTo("X");
$Mail->SetSubject("X");
$Mail->Send();
mais permet de dire que j'ai un objet comme ceci:
$Order = new Order()
->With(22,'TAL')
->With(38,'HPK')->Skippable()
->With(2,'LGV')
->Priority();
Remarque le ->With(38,'HPK')->Skippable()
, c'est l'exemple parfait d'un Pro pour ce type de programmation
Les classes doivent, IMO, valider leurs arguments pour l'instanciation et tester/contrôler les arguments de leurs méthodes. Dans ma classe mailer, is_valid_email est une méthode privée dans la classe. – AutoSponge
le "-> Avec (38, 'HPK') -> Skippable()" La situation n'est pas nescecarly un problème, par exemple dans ce scénario vous/la classe peut savoir que Skippable s'applique au dernier Avec cela a été ajouté. – Hannes
Oui mais le facteur de lisibilité est supérieur aux méthodes normales de compilation de ce bloc de code. C'est juste un pro pour la lisibilité – RobertPitt