Method Chaining i PHP – metodkedjor
I och med PHP 5+ och stödet för objekt finns det något som kallas Method Chaining. Detta innebär att du kan köra flera funktioner/metoder efter varandra.
Ett ganska vanligt förekommande sätt att använda objekt på är följande.
$userObj = new User(); $userObj->setUsername('baronen'); $userObj->setEmail('mail@mail.com'); $userObj->RegisterUser();
Här skapar vi ett nytt User objekt, sedan anropar vi två set-funktioner för att sedan köra funktionen RegisterUser.
Använd Method Chaining
Man behöver inte göra stora ändringar för att skapa metodkedjor. Jag har här skapat en väldigt enkelt User-klass som har två set funktioner och en funktion för att skriva ut egenskaperna.
class User { private $username; private $email; public function setEmail($email) { $this->email = $email; return $this; } public function setUsername($username) { $this->username = $username; return $this; } public function RegisterUser() { echo "Register user with email <strong>" . $this->email . "</strong>"; echo " and username <strong>" . $this->username . "</strong>"; } }
Den ända skillnaden från en “vanlig” klass är att set-funktionerna returnerar hela objektet, detta för att kunna bygga på med fler funktioner på följande sätt.
$userObj = new User(); $userObj->setEmail('baronen@mail.org')->setUsername('baronen')->RegisterUser();
Resultatet blir i detta fall följande:
Register user with email baronen@mail.org and username baronen
Svårare än så är det inte att använda sig av “Method Chaining”.
Resultat
Se demo eller Ladda ner källkod här.







Jag tänkte i denna post gå igenom hur man använder Levenshtein för att räkna ut vad man egentligen menar. Metoden i PHP heter Levenshtein och tar emot två parametrar i form av två strängar man vill jämföra.
Den andra funktionen är similar_text. Likt Levenshtein beräknar den likheten mellan två texter. I detta exemplet ska vi beräkna om en text verkar vara en dubblett.




