Aslında setters kavramı verdiğiniz örnekte çok fayda sağlayacak bir şey gibi durmuyor görünebilir. Ancak büyük çaplı projelerde yüzlerle ifade ettiğimiz değişken/algoritma/metod arasında boğuşmak yerine setters ile işlerin biraz daha rahat yönetilebilir olduğunu görüyorsunuz. Bazı durumlarda loop, try-catch vs gibi kolaylıklar dahi yeterli olmuyor. Bu nedenle PHP 6 versiyonu ile birlikte goto gibi kavramları/yöntemleri getiriyor (goto konusundaki akademik saçmalıklara katılmadığımı açıkça belirteyim). Ancak biz yine sizin örneğinizden gidelim.
Şimdi alt alta 10 kere her seferinde find'a atadığınız değer de değişecek şekilde 10 farklı php dosyasına
$user = User::find(x); //x değerini değiştirelim durmadan ama [img]/assets/images/smileys/smile.png[/img]
$user->password = Hash::make('test');
$user->save();
Sonra bunları include edelim tek bir dosyaya ya da birbirlerini include etsinler. (tekrar ediyorum, verdiğiniz örnekle aklıma ancak böyle bir örnek vermek geliyor)
Kullandığınız IDE'yi kapatın, tüm dosyaları kapatın. Ve bir anda veri tabanında ya da başka bir modelde başka bir yerde yaptığınız bir değişiklik nedeniyle ,
Hash::make($password)
yöntemini değil de
md5('herhangi bir salt değeri',$password);
kullanmak zorunda olduğunuzu düşünün.
Sizin yönteminizle bir şekilde (genelde IDE yardımları ile) bu yöntemi kullandığınız bütün dosyaları teker teker güncellemek zorunda kalacaksınız.
Ancak setter kullanan ben, sadece setter bulunan dosyayı güncelleyerek zaman, saç, kafein, bira ve sigara tasarrufu sağlamış oluyorum.
Setterları sadece veri girişinde kullanmak olarak düşünmeyin, ayrıca verileri süzerken, onlara "şekil" verirken de kullanabilirisniz
Bunlar OOP güzellikleri, ancak her zaman gerekli olan yollar değil.
Setter cemaati kuruyorum var mı gelen?