| Geliştirici | Fabien Potencier, Symfony Topluluğu |
|---|---|
| İlk yayınlanma | 22 Ekim 2005) (2005-10-22) |
| Güncel sürüm | 8.1.8 |
| Kod deposu | github.com/symfony/symfony |
| Programlama dili | PHP |
| İşletim sistemi | Çoklu platform |
| Tür | Web uygulama iskeleti |
| Lisans | MIT Lisansı |
| Resmî sitesi | symfony.com |
Symfony, Fabien Potencier ve Fransız yazılım şirketi SensioLabs öncülüğünde geliştirilen, MVC mimari desenine dayalı, açık kaynak kodlu ve çapraz platform bir PHP web uygulama iskeletidir. İlk sürümü 22 Ekim 2005 tarihinde yayımlanan Symfony, hem tam teşekküllü (full-stack) bir web çatısı olarak kullanılmakta hem de bağımsız olarak dağıtılan yeniden kullanılabilir PHP bileşenleri (Symfony Components) ile modern PHP ekosisteminin temel omurgasını oluşturmaktadır.
Mimari tasarımında ve bağımlılık enjeksiyonu prensiplerinde Java dünyasının köklü çatılarından Spring Framework'ten önemli ölçüde esinlenilmiştir.
Symfony; Laravel, Drupal, Composer, phpBB, PrestaShop ve Magento gibi dünyaca popüler çok sayıda açık kaynaklı proje tarafından çekirdek bileşenleri düzeyinde benimsenmiştir.
Tarihçe
Symfony, başlangıçta SensioLabs kurucusu Fabien Potencier tarafından şirketin kendi web projelerini daha hızlı ve kurumsal standartlara uygun geliştirmek amacıyla "Sensio Framework" adıyla tasarlandı. Bu nedenle çerçevenin ilk dönem sınıfları `sf` önekiyle adlandırıldı. Projenin açık kaynak olarak topluluğa açılması kararlaştırıldığında, mevcut `sf` kısaltmasına sadık kalınarak "symfony" (daha sonra büyük harfle Symfony) ismi benimsendi.
- Symfony 1.x (2005–2010): Monolitik bir yapıya sahipti. PHP 5 altyapısıyla çalışan bu ilk nesil, Propel ve daha sonra Doctrine ORM desteği sundu. Yahoo! Bookmarks ve Dailymotion gibi büyük ölçekli platformlarda kullanıldı.
- Symfony 2.0 (Temmuz 2011): Çerçevenin tarihindeki en köklü dönüşümdür. Tüm kod tabanı sıfırdan yazılarak **Symfony Bileşenleri (Symfony Components)** mimarisi hayata geçirildi. Monolitik çatı yapısı terk edilerek, bağımsız Composer paketleri halinde kullanılabilen mikro kütüphaneler oluşturuldu. Bu dönemde Symfony bileşenlerine dayanan ve popüler bir mikro çatı olan Silex de kullanıma sunuldu.
- Symfony 3.x (Kasım 2015): Geriye dönük uyumluluk yükleri temizlendi ve performans optimizasyonlarına odaklanıldı.
- Symfony 4.0 (Kasım 2017): "Symfony Flex" devrimi gerçekleşti. Çerçeve, varsayılan olarak minimal bir mikro iskelet haline getirildi ve geliştiricilerin ihtiyaç duydukları bileşenleri otomatik yapılandırma tarifleriyle (recipes) eklemesine imkân sağlandı. (Bu adımın ardından Silex projesi görevini tamamlayarak emekliye ayrıldı).
- Symfony 5.x (Kasım 2019): Yeni HTTP istemcisi (HttpClient), mesaj kuyruğu sistemi (Messenger) ve posta kütüphanesi (Mailer) çekirdeğe dahil edildi.
- Symfony 6.x (Kasım 2021): PHP 8 sürümlerine tam geçiş yapıldı; PHP öznitelikleri (attributes), yerel tür bildirimleri ve modern dil özellikleri zorunlu kılındı.
- Symfony 7.x (Kasım 2023) ve 8.x: PHP 8.2+ standartları, gelişmiş asenkron yetenekler ve kurumsal bulut entegrasyonlarıyla yayımlandı.
Sürüm Takvimi ve Destek Modeli
Symfony, zamana dayalı (time-based) öngörülebilir bir sürüm takvimi uygulamaktadır:
- Her yıl iki ana sürüm yayımlanır: Biri **Mayıs**, diğeri **Kasım** ayında.
- Standart ara sürümler 8 ay boyunca hata düzeltme desteği alır.
- Her iki yılda bir (çiftli yılların Kasım ayında, `.4` ile biten sürümler) **Uzun Vadeli Destek (LTS - Long Term Support)** sürümü yayımlanır. LTS sürümleri 3 yıl hata düzeltme ve 4 yıl güvenlik desteğiyle korunur.
| Sürüm | Çıkış Tarihi | Destek Türü | Asgari PHP Sürümü | Hata Düzeltme Sonu | Güvenlik Desteği Sonu |
|---|---|---|---|---|---|
| 1.0 | Ocak 2007 | Eski sürüm | PHP 5.0 | Ocak 2010 | Ocak 2010 |
| 1.4 LTS | Kasım 2009 | LTS | PHP 5.2.4 | Kasım 2012 | Kasım 2012 |
| 2.0 | Temmuz 2011 | Eski sürüm | PHP 5.3.2 | Mart 2013 | Mart 2013 |
| 2.3 LTS | Mayıs 2013 | LTS (İlk resmi LTS) | PHP 5.3.3 | Mayıs 2016 | Mayıs 2016 |
| 2.7 LTS | Mayıs 2015 | LTS | PHP 5.3.9 | Mayıs 2018 | Mayıs 2019 |
| 2.8 LTS | Kasım 2015 | LTS | PHP 5.3.9 | Kasım 2018 | Kasım 2019 |
| 3.0 | Kasım 2015 | Standart | PHP 5.5.9 | Temmuz 2016 | Ocak 2017 |
| 3.4 LTS | Kasım 2017 | LTS | PHP 5.5.9 | Kasım 2020 | Kasım 2021 |
| 4.0 | Kasım 2017 | Standart | PHP 7.1.3 | Temmuz 2018 | Ocak 2019 |
| 4.4 LTS | Kasım 2019 | LTS | PHP 7.1.3 | Kasım 2022 | Kasım 2023 |
| 5.0 | Kasım 2019 | Standart | PHP 7.2.5 | Temmuz 2020 | Ocak 2021 |
| 5.4 LTS | Kasım 2021 | LTS | PHP 7.2.5 | Kasım 2024 | Kasım 2025 |
| 6.0 | Kasım 2021 | Standart | PHP 8.0.2 | Temmuz 2022 | Ocak 2023 |
| 6.4 LTS | Kasım 2023 | LTS (Destekleniyor) | PHP 8.1.0 | Kasım 2026 | Kasım 2027 |
| 7.0 | Kasım 2023 | Standart | PHP 8.2.0 | Temmuz 2024 | Ocak 2025 |
| 7.4 LTS | Kasım 2025 | LTS (Güncel) | PHP 8.2.0 | Kasım 2028 | Kasım 2029 |
| 8.0 | Kasım 2025 | Standart | PHP 8.3.0 | Temmuz 2026 | Ocak 2027 |
| 8.1 | Mayıs 2026 | Standart (Güncel) | PHP 8.3.0 | Ocak 2027 | Temmuz 2027 |
Mimari ve Symfony Bileşenleri
Symfony'nin en ayırt edici özelliği, tam bir çatı olmasının ötesinde bağımsız onlarca bileşenden (Symfony Components) oluşmasıdır. Bir geliştirici tüm Symfony çatısını kurmak zorunda kalmadan yalnızca ihtiyaç duyduğu bileşeni Composer üzerinden projesine dahil edebilir.
Başlıca Symfony bileşenleri şunlardır:
- HttpFoundation: PHP'nin küresel değişkenleri (`$_GET`, `$_POST`, `$_SERVER`) yerine nesne tabanlı `Request` ve `Response` katmanı sunar.
- Routing: Gelen HTTP isteklerini belirli denetleyici eylemleriyle eşleştiren gelişmiş yönlendirme motorudur.
- Console: Komut satırı arayüzleri oluşturmayı sağlar. Laravel'in komut satırı aracı olan Artisan ve Composer doğrudan bu bileşen üzerine inşa edilmiştir.
- DependencyInjection: Bağımlılık enjeksiyonunu sağlayan, derlenebilir ve yüksek performanslı bir hizmet kapsayıcısı (Service Container) sunar.
- EventDispatcher: Olay güdümlü (event-driven) mimariyi uygulayan bildirim ve dinleyici mekanizmasıdır.
- Security: Kimlik doğrulama (authentication), yetkilendirme (authorization), rol yönetimi ve güvenlik duvarları sağlar.
- Validator & Form: Karmaşık form yapıları ve veri doğrulama kuralları için kurumsal çözümler sunar.
- Messenger: Mesaj kuyrukları ve asenkron iş akışları (RabbitMQ, Redis, Amazon SQS) için mesaj iletim katmanıdır.
Temel Araçlar ve Geliştirici Deneyimi
- Twig Şablon Motoru: Fabien Potencier tarafından geliştirilen, hızlı, güvenli ve okunabilir sözdizimine sahip modern şablon motorudur. Otomatik XSS koruması ve şablon kalıtımı sağlar.
- Doctrine ORM Entegrasyonu: Veritabanı işlemlerini nesne yönelimli olarak yönetmek için varsayılan olarak Doctrine ORM ile entegre çalışır.
- Web Hata Ayıklama Araç Çubuğu ve Profiler (Web Debug Toolbar): Symfony'nin en beğenilen araçlarından biridir. Geliştirme ortamında sayfanın en altında görüntülenir; sayfa yüklenme süresi, bellek kullanımı, çalıştırılan SQL sorguları ve tetiklenen olaylar gibi tüm tanı verilerini anlık olarak gösterir.
- Symfony Flex: Paket kurulumlarını otomatikleştiren bir Composer eklentisidir. Yeni bir paket kurulduğunda yapılandırma dosyalarını ve ortam değişkenlerini otomatik olarak hazırlar.
Örnek Symfony Kodu
Modern Symfony (v6+) sürümlerinde PHP 8 öznitelikleri (attributes) ile yazılmış basit bir denetleyici örneği:
namespace App\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\JsonResponse;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Attribute\Route;
class ApiController extends AbstractController
{
#[Route('/api/merhaba/{isim}', name: 'api_merhaba', methods: ['GET'])]
public function merhaba(string $isim): JsonResponse
{
return $this->json([
'mesaj' => sprintf('Merhaba, %s!', $isim),
'durum' => 'başarılı'
]);
}
}
Dünyada ve Ekosistemde Kullanımı
Symfony bileşenleri ve çatısı küresel ölçekte çok sayıda platform ve yazılım tarafından tercih edilmektedir:
- Açık Kaynak Projeler: Laravel, Drupal (v8+), Composer, phpBB, PrestaShop, Magento, Matomo, eZ Publish ve Joomla (v4+).
- Kurumsal Şirketler ve Oyun/Medya Platformları: Spotify, Dailymotion, BlaBlaCar, Trivago, popüler çevrim içi strateji oyunu eRepublik, Fransız moda yayını Vogue Fransa ve arkadaşlık platformu Meetic sistemlerinde Symfony teknolojilerinden yararlanmaktadır.
Ayrıca bakınız
Kaynakça
- ^ "Release 8.1.8". 29 Eylül 2026. Erişim tarihi: 30 Eylül 2026.
- ^ "What is Symfony?". symfony.com (İngilizce). 8 Mayıs 2021 tarihinde kaynağından arşivlendi. Erişim tarihi: 10 Eylül 2026.
- ^ "Open-Source cross-pollination". symfony.com (İngilizce). 6 Haziran 2020. 2 Mart 2023 tarihinde kaynağından arşivlendi. Erişim tarihi: 10 Eylül 2026.
- ^ "Projects using Symfony Components". symfony.com. 1 Mart 2023 tarihinde kaynağından arşivlendi. Erişim tarihi: 2 Mart 2023.
- ^ "Comments by Sensio owner". symfony-project.org. 22 Aralık 2008 tarihinde kaynağından arşivlendi. Erişim tarihi: 10 Eylül 2026.
- ^ "Symfony 2.0 is officially released!". symfony.com. 28 Temmuz 2011. Erişim tarihi: 10 Eylül 2026. Arşivlenmesi gereken bağlantıya sahip kaynak şablonu içeren maddeler (link)
- ^ Fabien Potencier (10 Ocak 2018). "The End of Silex". symfony.com. 10 Eylül 2026 tarihinde kaynağından arşivlendi. Erişim tarihi: 10 Eylül 2026.
- ^ "The Release Process". symfony.com. 10 Eylül 2026 tarihinde kaynağından arşivlendi. Erişim tarihi: 10 Eylül 2026.
- ^ "Symfony Showcase and Projects". symfony.com. 1 Mart 2023 tarihinde kaynağından arşivlendi. Erişim tarihi: 10 Eylül 2026.
Dış bağlantılar
Şablon:Web uygulama iskeletleri
