Zend Framework 1.10 Beta Çıkmış…
Dün Zend Framework’ün yeni bir alt versiyonu daha çıkmış. İçerisinde ilgimi çeken güzellikler var… Tabii daha detaylı dokümantasyonlar ve nasıl kullanılacakları çok açık değil ama anladığım kadarıyla ne işe yaradıklarını yazayım…
Zend_Tool
Bana göre Zend Framework’ün ileride popülaritesini sağlayacak olan şey Zend_Tool’un başarısı. Bu kadar büyük bir framework’ü kullanmak için bazı işleri otomatik yapmak şart.
Zend_Tool’un şu ana kadarki hali tek kelimeyle “rezalet” ama bu versiyonda epey bir elden geçirdik diyorlar.
Proje üretirken hata oluştuğu zaman hataları loglama / ekrana basma ile ilgili işlemleri de default olarak eklemişler. Tam ne yapmışlar denemedim ama kıl eden gerekli bir eksiklikti bence…
Model üretimindeki gelişmelerin yanında form ve layout üretimi de eklemişler. Layout’un nesini üretiyolar anlamadım, deneyince göreceğiz.
Model Üretimi
Model üretirken yeni metotlar ürettiklerini söylüyorlar ki eğer aşama kaydettilerse lüzumsuz Zend_Db_Table bir işe yaramaya başlayabilir.
İlk olarak Ruby on Rails ile ilgimi çekmeye başlayan ORM’leri PHP’de kullanmak çok zahmetli çünkü setup’ı yaparken bitiyosun zaten. Onla uğraşana kadar sql yazmak daha kolayıma geliyor benim. Ancak bu işlem otomatikleşirse işin seyri değişebilir.
Form Üretimi
Zend_Tool ile form oluşturabildiklerinden de bahsetmişler. Zend_Form da Zend_Db_Table gibi ilgimi çeken ama asla kullanamadığım komponentlerden.
Proje yaparken en çok vaktimi alan kısımlardan biri form üretilmesi, form bilgilerinin kontrol edilmesi ve filtreden geçirilmesi. Yaptığım denemelerde Zend_Form yerine dreamweaver kullanarak formları daha hızlı yaratabildiğimi gördüm.
Ama bu durumda da aynı model üretmek gibi otomatikleştirilirse işin seyri değişebilir.
Zend_Filter ve Zend_Validate’te Yenilikler
Yeni filter’lar gelmiş… Boolean ve null… Ayrıca dosya upload / download işleri için de compress ve decompress işlemini de filtrelere eklemişler. Zend_Form kullanımında ve data kaydının otomatikleştirilmesi için faydalı olacak…
Validator olarak da barcode, kredi kartı ve posta kodu kontrolleri gelmiş. Posta kodu iddia ettiklerine göre Türkiye de dahil tüm dünyayı kapsıyor.
Ek olarak Zend_Validate_Callback diye bir komponent daha yapmışlar ki bununla kendi özel validator’ımızı yazabileceğiz. Kulağa hoş geliyor ama uygulamada ne kadar başarılı göreceğiz.
Zend_Markup
BBCode ve textile gibi text markup dillerini parse edebilen bir komponent. Özellikle sosyal ağlarda, mesela kullanıcı yorum yazarken yazısını formatlayabilsin ama formatlarken sitenin html’ini bozmasın diyorsanız ya kullanıcının girebileceği html tag’lerini ve attribute’larını sağlam bi şekilde filtreleyeceksiniz, ya da bu tarz markup dillerini parse edeceksiniz. Faideli bir komponent bence…
Zend_Cache_Backend_Static
Template sistemi olarak smarty kullananlar bilir, en pratik avantajlarından biri template dosyalarını render ettikten sonra cache’leyebilmesi.
Özellikle yüksekçe hit alan sitelerde sayfanın php tarafından üretilen html kodunu diske kaydeder, sonra da belirli bir süre boyunca bu statik dosyayı sunar. Böylece her yüklenişte PHP tekrar çalışmaz, performans kazanılır.
İşte Zend_Cache_Backend_Static bu işe yarıyor. Aslında 3-5 satır kodla kolayca yapılabilen birşey ama bir framework’ten bahsediyorsak mutlaka olması gerekiyordu.
Zend_Cache_Manager
Cache işine girdiğiniz zaman bi süre sonra çorba olmaya başlıyor işler zira kimi sayfayı 1 gün cache’leseniz bile oluyor ama diğerini 10 sn. cache’lemeniz gerekiyor. Bu sefer bir sürü cache tanımlaması gerekiyor.
Bir de ZF’de mübarek hiçbişey pratik tanımlanamadığı için her seferinde bir sürü birşeyler yazmak gerekiyor.
Zend_Cache_Manager bu rutin işleri merkezi bir yerde derli toplu tanımlananıza ve ihtiyacınız olan yerlerde daha kolay çağırmanız için tasarlanmış.
Zend_Serializer
Sanırım artık her boku muhtelif şekillerde serialize edebilecez…
Serialize olayını ben çok kullanırım, bilmeyenler için array ya da objelerin string haline çevrilmesidir serialize işlemi. Böylece array ve objeleri de veritabanına kaydedebiliyoruz.
Örneğin bir kayıda ait sınırsız sayıda telefon numarası tutmak istiyoruz. İlk akla gelen bu iş için bir tablo yapmak… Bunun yerine telefon numaralarını bir array’e yerleştirip serialize edip veritabanına kaydediyoruz.
Sonra çekerken unserialize edip bu arrayi kullanıyoruz. Kayıt güncelleme için array’le biraz dans etmek gerekiyor ama bir kere kafa yorup çözdükten sonra olayı çözüyorsunuz.
JetAnket‘te çokça başvurduk serialize yöntemine, aksi halde o kadar fazla opsiyon ve bilgiyi tutmak hiç de kolay olmayacaktı.
Bakalım Zend_Serializer’ın ek bi faydası olacak mı bize…
Zend_Feed’de Yenilikler
1.9′a kadar feed’leri okuma üzerine yoğunlaşılmıştı. Zend_Feed_Writer ile feed oluşturulabilecek.
Bir de Zend_Feed_Pubsubhubzartzurt var ki ilk defa duyduğum ve Google’ın icat ettiği “PubSubHubbub” diye bi olayı destekliyormuş. Aslında güzel bir protokol bu. Feed’ler için bir “push” metodu diyebiliriz. Normalde kullandığımız feed reader’lar belirli periyotlarla feed’leri sorguluyordu, bu da tabii anında haberdar olmamızı kısıtlıyordu.
Push metodunda feed’i sunan makineye feed reader kendini kayıt ettiriyor, feed güncellendiğinde sunucu reader’ı haberdar ediyor… muş…
Zend_OAuth
OAuth kavramını da ilk defa bu sayede duyuyorum. OAuth digg, flickr, twitter, plaxo gibi servislerin desteklediği ortak bir yetkilendirme protokolü. OpenID’den biraz farklılıkları var. Merak ediyorsanız bkz: http://oauth.net
……….
Yine bir sürü ıncık mıncık güzelleştirmeler yapılmış. Halen uzun bir yol var Zend Framework’ün önünde ama hiç yoktan iyidir yine de. Denemek için 20 ocağı bekleyeceğim…
Ben şahsen Zend Framework komponentlerini kullanarak kendi altyapımı oluşturdum ve NetBeans‘le birlikte açıkçası epey hız kazandırdı bana. En azından sürekli update edilen ve arkasında ciddi bir mühendislik olan bir yapı.
Tek sorun, bana ait olmayan hosting makinelerine framework’ü atmak uzun sürüyor…
'96 dan beri web teknolojileri üzerine çalışır.