Örnek Bir Symfony Projesi
Bu uygulama Symfony 2.8 üzerinde netbeans derleyicisi kullanılarak hazırlanmıştır. Uygulama üzerinde local windows makinası üzerine Wamp server kurularak çalışılmıştır. Uygulama Türkiye Cumhuriyeti Merkez Bankası, doviz.com ve doviz.net üzerinden xml ya da json olarak alınan kur bilgilerinin adapter patterni ile işlendikten sonra command console uygulaması ve doctrine kullanılarak veritabanına yazılması ve sonrasında facede patterni kullanılarak alış ve satış tutarına göre en düşük tutarların hesaplanarak kullanıcı arayüz kısmında listelenmesinden oluşmuştur. Yukarıda bulunan proje dosyalarından https://github.com/ofke-yazilim/symfony-framework/tree/master/src/AppBundle/Command yolunu takip ederseniz kur bilgilerini içeren xml ya da json verilerin işlendiği sınıflara ulaşabilirsiniz. Burada bulunan class dosyalarının gerçeklediği işlemler aşağıda listelenmiştir.(Not : doviz.net verileri adapter pattern ile işlenmemiştir. Command console uygulaması yazılırken direk olarak dahil edilmiştir.)- https://github.com/ofke-yazilim/symfony-framework/blob/master/src/AppBundle/Command/serviceAdapter.php : Bu dosya interface içerir. İnterface ise diğer adapter classlar üzerinde kullanacağımız fonksiyonu barındırır.
- https://github.com/ofke-yazilim/symfony-framework/blob/master/src/AppBundle/Command/webservices.php : Bu dosya verilerin işlenerek array olarak oluşmasını sağlayan adapter classımızı içerir.
- https://github.com/ofke-yazilim/symfony-framework/blob/master/src/AppBundle/Command/tcmbAdapter.php : Bu dosya tcmb üzerinden gelen kur bilgilerininin webservices.php içerisinde hangi fonksiyon kullanılarak array olarak oluşturulacağını belirtir.
- https://github.com/ofke-yazilim/symfony-framework/blob/master/src/AppBundle/Command/dovizcomAdapter.php : Bu dosya doviz.com üzerinden gelen kur bilgilerininin webservices.php içerisinde hangi fonksiyon kullanılarak array olarak oluşturulacağını belirtir.
Kullanıcı arayüz kısmında kullanılan verilerin veritabanı üzerinde çekilesi işlemleri ise Facede Patterni kullanılarak yapıldı. Facede sınıflarına ulaşmak ve incelemek için https://github.com/ofke-yazilim/symfony-framework/tree/master/src/AppBundle/facede adresini tıklayabilirsiniz. İşlemlerimi yürüttüğüm controller sınıfımı ise https://github.com/ofke-yazilim/symfony-framework/blob/master/src/AppBundle/Controller/CurrancyController.php adresi üzerinde inceleyebilirsiniz.