Symfony - Mimari
Symfony temelde yüksek kaliteli bileşen ve paketlerden oluşan bir koleksiyondur. Bileşenler, tek bir çekirdek işlevselliği sağlayan sınıflar koleksiyonudur. Örneğin,Cache componentherhangi bir uygulamaya eklenebilen önbellek işlevselliği sağlar. Bileşenler, bir Symfony uygulamasının yapı taşlarıdır. Symfony, Laravel, Silex, vb. Gibi birçok PHP çerçevesinde kullanılan 30'dan fazla yüksek kaliteli bileşene sahiptir.
Paketler eklentiye benzer ancak oluşturması ve kullanımı kolaydır. Aslında, bir Symfony uygulamasının kendisi diğer paketlerden oluşan bir pakettir. Tek bir paket, Webframework, veritabanı erişimi vb. Özellikler sağlamak için herhangi bir sayıda Symfony bileşenini ve üçüncü taraf bileşenlerini kullanabilir. Symfony çekirdek web çerçevesi, FrameworkBundle adı verilen bir pakettir ve daha karmaşık bir web uygulaması yazma seçenekleri.
Bileşenler, Paketler ve Symfony uygulaması arasındaki ilişki aşağıdaki şemada belirtilmiştir.
Web Çerçevesi
Symfony, temel olarak yüksek kaliteli web uygulamalarını görece kolaylıkla yazmak için tasarlanmıştır. Basit web sitesinden gelişmiş REST tabanlı web servislerine kadar farklı web uygulamaları yazmak için çeşitli seçenekler sunar. Symfony, web çerçevesini ayrı paketler olarak sunar. Symfony web çerçevesinde kullanılan yaygın paketler aşağıdaki gibidir -
- FrameworkBundle
- FrameworkExtraBundle
- DoctrineBundle
Symfony web çerçevesi, Model-View-Controller (MVC) mimarisine dayanmaktadır. Model ticari kuruluşlarımızın yapısını temsil eder. View duruma göre modelleri en iyi şekilde kullanıcıya gösterir. Controller kullanıcıdan gelen tüm talepleri ele alır, Model ile etkileşime girerek asıl işi yapar ve son olarak View'e kullanıcıya göstermesi için gerekli verileri sağlar.
Symfony web çerçevesi, bir girişimci uygulaması için gereken tüm üst düzey özellikleri sağlar. Aşağıda, Symfony web uygulamasının basit bir iş akışı verilmiştir.
İş akışı aşağıdaki adımlardan oluşur.
Step 1 - Kullanıcı, tarayıcı aracılığıyla uygulamaya bir istek gönderir, örneğin http://www.symfonyexample.com/index.
Step 2 - Tarayıcı web sunucusuna bir istek gönderecek, örneğin Apache web sunucusu.
Step 3 - Web sunucusu isteği temeldeki PHP'ye iletir ve bu da onu Symfony web çerçevesine gönderir.
Step 4- HttpKernel, Symfony web çerçevesinin temel bileşenidir. HttpKernel, Yönlendirme bileşenini kullanarak verilen isteğin denetleyicisini çözer ve isteği hedef denetleyiciye iletir.
Step 5 - Tüm iş mantığı hedef denetleyicide gerçekleşir.
Step 6 - Kontrolör Model ile etkileşime girecek ve bu da Doctrine ORM aracılığıyla Veri Kaynağı ile etkileşim kuracaktır.
Step 7 - Denetleyici işlemi tamamladığında, yanıtı kendisi veya View Engine aracılığıyla oluşturur ve web sunucusuna geri gönderir.
Step 8 - Son olarak, yanıt web sunucusu tarafından istenen tarayıcıya gönderilecektir.