Merhaba! Fotoğraf: Onur Canalp 1995 Tübitak Bilgisayar Kulubü Linux, BASIC, C, Perl 1998 Merhaba PHP! 1999 İş Hayatı: Yazılım + Sistem 2000 Türkiye PHP Grubu (php.org.tr) 2013 PHP Geliştiricileri Derneği (pgd.org.tr) http://hi.do @hdogan
Çatı (Framework) 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
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.
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, Zend Opcache 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.
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 ve otomatik yükleme (lazy loading - autoloading) yöntemi kullanır. Sadece gerekli dosyalar diskten okunur ve yorumlanır. Çatıya ait kodlar genellikle değişmez.
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.
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. Şablon yorumlamada performans için C ile hazırlanmış şablon eklentisi içerir. PHP iç yapısına/kaynaklarına doğruca eriştiği için çalışma süresi daha kısadır.
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
Özellikleri ODM (Object Document Mapper) - MongoDB Üst bilgi notları (Annotations) HTML, Form yardımcısı Komut satırı arayüzü (CLI) Unit Test (PHPUnit) Debug (Xdebug)