Çatı nedir? Bir veya birden fazla konsept, yaklaşım dahilinde yazılım geliştirme sürecine rehberlik eden, tekrar kullanılabilir platformlar. Kod kütüphaneleri, araçlar, API Friday, November 9, 12
Neden çatılar? Standartları olan ve organize edilmiş bir altyapı sunarak projelerin daha kolay idame edilmesini ve daha kısa sürede geliştirilmesini sağlar. Profesyonel yazılım geliştirme sürecinde gereklidir. Friday, November 9, 12
PHP nasıl çalışır? PHP yorumlanır, derlenmez* Betik her çağırıldığında tekrar yorumlanması gerekir. Betik her çağırıldığında (APC, Xcache gibi eklentiler kullanılmazsa) sözdizimi kontrol edilir ve sözdizimi ağacı tekrar oluşturulur. PHP esnek, türleri önceden belirtilmemiş (weak/loose typing) değişken yapısına sahiptir. Friday, November 9, 12
PHP ile hazırlanmış (geleneksel) çatılar nasıl çalışır? Sınıfları ve fonksiyonları içeren birçok dosya her istekte diskten okunur. Kullanılan her dosya yorumlanır. Modern çatıların bazıları performansı arttırmak için geç yükleme (lazy loading - autoload) yöntemi kullanır. Sadece gerekli dosyalar diskten okunur ve yorumlanır. Çatıya ait kodlar genellikle değişmez. Friday, November 9, 12
PHP eklentileri nasıl çalışır? Web sunucunun yaşam döngüsü boyunca eklentiler PHP ile birlikte bir defaya mahsus yüklenir. Derlenmiş olduğu için sözdizimi kontrol edilmez ve yorumlanmaz. Friday, November 9, 12
Hız neden önemli? Google: Yarım saniye gecikme = %20 ile %25 arası daha az trafik Bing: 1 saniye gecikme = %2.8 daha az gelir, 2 saniye gecikme = %4.3 daha az gelir Yahoo!: 0.4 saniye gecikme = %5 ile %9 arası daha az trafik Mozilla: İndirme sayfasının 2.2 saniye hızlanması = %15.4 daha fazla indirme Friday, November 9, 12
Hız neden önemli? Kullanıcıların %47’si bir sayfanın açılma süresini 2 saniyenin altında bekler. Kullanıcıların %40’ı sayfa 3 saniyeden daha uzun sürede açılıyorsa o sayfayı terkeder. Friday, November 9, 12
Phalcon! Tamamen C dili ile hazırlanmış PHP eklentisi. Bileşenleri bağımsızdır, sadece istenilen bileşenler kullanılabilir. Veritabanlarına erişimde performans için C dili ile hazırlanmış ORM içerir. PHP iç yapısına/kaynaklarına doğruca eriştiği için çalışma süresi daha kısadır. Friday, November 9, 12
Geleneksel Çatılarla Kıyaslama Geneneksel Çatılar Phalcon Her istekte binlerce satır kodun yorumlanması Evet Hayır Her istekte onlarca dosya yüklenmesi Evet Hayır Her istekte sınıfların, fonksiyonların, sabitlerin varlığının kontrol edilmesi Evet Hayır Düşük seviye iyileştirme Hayır Evet Friday, November 9, 12
Özellikleri PSR-0 uyumlu sınıf yükleyici (Phalcon\Loader) Model View Controller Mikro Çatı Dependency Injection (Bağımlılık enjeksiyonu/zerki) Önbellek (APC, Memcached, dosya) Oturum yönetimi, filtreleme, ayarlar, sistem günlükleri (log) Şablonlar (PHP ve C ile hazırlanmış Volt) Friday, November 9, 12