View Scriptlerde komplex fonksiyonlari bircok kez calistirmak gerekiyorsa, bildigimiz gibi bunu Zend Framework ün bize sunmus oldugu View Helperler ile gerceklestire biliriz.
Bu yazimizda View Helperde birden cok Metodu nasil barindirirz ona bakalim.
Helper dedigimiz aslinda basit bir Sinif.
Diyelimki “String” adinda bir helper olusturmak istiyoruz.
Bu string helperi bize string adinda bir string geri versin istiyoruz.
Zend Studio nun varsayilan sablonunda helperler /application/views/helpers klasörü altinda kayit edile bilinir.
Bu klasörün icinde String.php diye bir dosya olusturalim.
Ve icine sunu kaydedelim
class Zend_View_Helper_String extends Zend_View_Helper_Abstract { public function string () { return "Bubir helperdir: string()"; } }
Sinif adimiz baska birsey belirtilmemisse Zend_View_Helper_String bunu Zend_View_Helper_Abstract dan extend ediyoruz.
Extend etmedende yapa bilirsniz, ama siz ileride sorun yasamak istemiyorsaniz benim yaptigim gibi yapin.
simdi index.phtml dosyamiza su satiri ekliyelim.
<?php echo $this->string();?>
kaydedip sayfayi calistirdigimizda
BU bir Helperdir: string()
yazisini görmemiz gerekiyor.
Basit bir View Helperi böyle yapiyoruz, simdi ise asil bu yaziyi yazmama sebeb olan Faruk Temur arkadasimin istedigi gibi, bir Helper sinifinda nasil birden cok Metotu barindiririz ona bakalim.
Sinifimizi su sekil degistiriyoruz.
class Zend_View_Helper_String extends Zend_View_Helper_Abstract { public function string () { return $this; } public function substr() { return "Bu bir helperdir: substr()<br>"; } public function strlen() { return "Bu Helperdeki ikinci metot: strlen()<br>"; } }
görüldügü gibi string metodu return $this yaparak kendi nesnesini geri döndürüyor ve böylelikle string sinifi icinden baska bir metot cagirmamiza olanak sagliyor.
index.phtml dosyamiza sunlari ekliyelim
<?php echo $this->string()->substr();?> <?php echo $this->string()->strlen();?>
asagidaki ciktiyi aliyorsaniz herseyi dogru yaptiniz demektir.
Bu bir helperdir: substr()
Bu Helperdeki ikinci metot: strlen()
Bugünlük bukadar kolay gelsin.