Zend_View_Helper ile Türkçe tarih formatlama

Uzun süredir kullandığım, okuduğumuz şekilde tarih gösteren PHP fonksiyonunun helper haline getirilmişini anlatmak istedim bu gece…

Bu yardımcı ile örneğin 2008-07-08 formatındaki tarihi: “1 gün önce” olarak görüntüleyebilirsiniz. Eğer tarih çok eskiyse 3 yıl 8 ay 12 gün sonra gibi gereksiz bir formata dökmemek için “8 Temmuz 2008” şeklinde görüntülenecektir.

Şimdi biraz Zend Framework’teki view helper’lardan bahsedip en sonra da fonksiyonu yazayım.

View Helper’lar Hakkında

Zend Framework malumunuz Model-View-Controller yapısının bir türevini kullanıyor. Projemizin nasıl sunulduğu (tasarımı) ile ilgili kısım “View” kısmı.

View’fa HTML, CSS, Javascript ve sınırlı php kodu bulunur. View’da PHP kullanmak makbul değildir, kullanacaklarınız:
if / else cümleleri, döngüler (while, foreach vs.) ve yazıyı formatlayan yardımcı kodlar. İşte bu yardımcı kodlar Zend Framework’te “View Helpers” olarak adlandırılmış.

Basit bir View Helper Nasıl Yazılır?

Aslında doğru dizindeki doğru isimlendirilen her class Zend Framework dispatcher’ı tarafından bir helper olarak otomatik olarak kullanılır hale getirilir. Bunun için yapmanız gereken:

{proje_kökü}/application/view/helpers dizini altına bir dosya açmak. Örnek olarak biz TarihFormatla.php açalım. Zend Framework’ün otomatik olarak algılayabilmesi için bu dosyanın içinde Zend_View_Helper_TarihFormatla adında bir class tanımlamamız gerekecek:

gibi…

Yazılan Helper Nasıl Kullanılır?

Yardımcı fonksiyonu kullanmak için ilgili şablonda (*.phtml) $this->tarihFormatla($this->data[‘guncellenme’]) şeklinde kullanabilirsiniz.

İlk harf küçük olacak şekilde büyük/küçük harfe duyarlı olduğuna dikkatinizi çekerim.

Yukarıdakilerin Özeti

  1. View içerisinde $this->tarihFormatla() diye bir helper kullanmak istiyorsunuz,
  2. Helper dosyanızın adı bu fonksiyonun ilk harfi büyük olanı olan TarihFormatla.php olmalı.
  3. Bu dosya içinde oluşturacağınız class’ın adı için helper’ınızın başına “Zend_View_Helper_” koyacaksınız: Zend_View_Helper_TarihFormatla
  4. Bu class’ın içinde çalıştırılacak method’un adı yine helper’ın adı olmalı: TarihFormatla().
  5. İstiyorsanız class içerisinde yardımcı metotlar kullanabilirsiniz. Prensip olarak bu metotları “private” yapmakta yarar var.

Afilli tarih formatlama yardımcısı. Hem de Türkçe!

Bu aşağıdaki fonksiyonu application/views/helpers/DateFormat.php dosyasına yazmalısınız. Daha sonra phtml dosyaları içerisinde direkt $this->dateFormat($tarih) şeklinde kullanabilirsiniz.

1 Yorum

  1. Hocam öncelikle elinize sağlık teşekkür ediyorum. yazılarınızı dikkatle takip ediyorum bu tür ve değişik bilgi içerikli yazılarınızın devamınıda bekliyorum. Sitenizin Bizim gibi ZF e yeni başlayanlar için güzel kaynaklar içeriyor olması çok güzel.
    tekrar elinize sağlık.

    Reply

Leave a Comment.