| Geliştirici | Fabien Potencier, Symfony Topluluğu |
|---|---|
| İlk yayınlanma | 22 Ekim 2005) |
| Güncel sürüm | 8.1.9 |
| 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.
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, zamana dayalı (time-based) öngörülebilir bir sürüm takvimi uygulamaktadır:
| 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 |
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:
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ı'
]);
}
}
Symfony bileşenleri ve çatısı küresel ölçekte çok sayıda platform ve yazılım tarafından tercih edilmektedir: