Symfony 20 Tahun: Statistik Rilis, Pertumbuhan Kode, dan Komunitas

Ringkasan detail untuk pembaca Indonesia yang belajar framework PHP

Posted by bacadev on February 5, 2026

Pada 2025, Symfony genap berusia 20 tahun. Wouter de Jong merangkum perjalanan itu lewat data dari git dan rilis. Artikel ini cocok dibaca siapa pun yang sedang belajar framework PHP dan ingin memahami evolusi Symfony dari 2.0 sampai 8.0. Untuk pembaca bacadev.com yang mencari buku pemrograman berbahasa Indonesia, ringkasan ini membantu melihat konteks ekosistemnya.

Ringksan

  • Total rilis stabil sudah ratusan, dengan ritme rilis yang kini konsisten.
  • Jumlah komponen meningkat hampir 3x dibanding Symfony 2.0.
  • Komunitasnya besar: ratusan kontributor aktif, ribuan kontributor sepanjang waktu.
  • Kode terus bertambah, namun ada pembersihan besar di setiap major release.

Di bawah ini adalah rangkuman detail dan terstruktur dari isi artikel tersebut, dengan bahasa yang lebih ramah pembaca pemula.

Metodologi dan batasan data

  • Di masa Symfony 1, proyek masih memakai Subversion dan platform self-hosted di trac.symfony-project.org. Saat pengembangan Symfony 2, proyek berpindah ke Git.
  • Agar cakupan data tetap terkelola, Wouter fokus pada statistik sejak Symfony 2.0 dan hanya mengambil monorepo utama.
  • Banyak grafik dihitung berdasarkan rilis “terbaru” pada masanya. Contohnya, data dihitung berurutan untuk 4.0.0, 4.0.1, dan seterusnya sampai 4.1.0, lalu dilanjutkan ke 4.1.1, 4.1.2, dan seterusnya. Meski 4.0 dan 4.1 sama-sama dipelihara, patch rilis 4.0 setelah 4.1 tidak ikut dihitung.

Rilis: dari alami ke terjadwal

  • Saat tulisan dibuat, Symfony 8.0.2 baru berumur sekitar seminggu dan total ada 699 rilis stabil (alpha/beta/rc tidak dihitung).
  • Pada awalnya rilis bersifat natural: patch rilis muncul saat cukup bug diperbaiki, dan minor rilis keluar ketika fitur sudah stabil.
  • Oktober 2012 menjadi titik penting: Symfony mengadopsi rilis berbasis waktu, mulai menerapkan Semantic Versioning, mekanisme deprecation, serta jalur upgrade yang halus. Di era 2.x, siklus ini sempat beberapa kali disesuaikan.
  • Grafik rilis pernah “menumpuk” di hari yang sama, karena banyak minor versi didukung bersamaan. Titik ekstremnya terjadi awal 2019: Symfony 2.7 (rilis 2015 dan masih mendukung PHP 5.3.9), 2.8, 3.4, 4.0, dan 4.1 semuanya aktif bersamaan. Setelah itu, siklus rilis terlihat stabil seperti sekarang.

Komponen dan paket

  • Hampir setiap minor/major rilis memperkenalkan komponen baru (di luar bridge seperti integrasi Mailer).
  • Menariknya, Symfony 7.4/8.0 menjadi rilis ke-3 yang tidak menambah komponen baru.
  • Symfony 2.0 membawa 32 komponen. Pada Symfony 8.0 jumlah ini hampir tiga kali lipat: 80 komponen dan total 308 paket.

Aktivitas merge: bug, minor, dan fitur

  • Sejak akhir 2013, Symfony memakai CLI khusus untuk merge pull request, dan setiap merge diberi label: “minor”, “bug”, atau “feature”.
  • Jika dipetakan per bulan, grafiknya terlihat cukup kacau. Namun ada pola jelas: jumlah feature merge turun menjelang rilis Mei dan November, terutama ketika ada major rilis dua tahunan. Di masa ini, komunitas fokus stabilisasi dan membantu ekosistem menyesuaikan diri dengan versi baru.
  • Kesimpulan besarnya: aktivitas tidak melambat meski sudah 11 tahun sejak Symfony 2.0.

Kontributor: kolaborasi skala besar

  • Rata-rata ada 60 penulis kode unik yang berkontribusi setiap bulan. Angka ini naik turun, tetapi relatif stabil sejak 2012.
  • Tahun 2025, sekitar 340 kontributor memiliki 95% dari total commit. Di saat yang sama, 6 orang memegang 50% commit selama bertahun-tahun. Ini menunjukkan ekosistemnya kuat: bukan hanya segelintir orang, tetapi ratusan.
  • Puncak kontribusi di 2019-2021 juga terlihat pada proyek curl.
  • Sekitar 50% penulis commit tiap bulan adalah kontributor baru.
  • Bila dihitung siapa saja yang masih memiliki setidaknya satu baris kode di rilis terbaru, terdapat 2.820 penulis berbeda di Symfony 8.0.2.

Top 15 kontributor berdasarkan jumlah baris kode di Symfony 8.0:

  1. 129.747 Fabien Potencier
  2. 119.275 Nicolas Grekas
  3. 47.490 Bernhard Schussek
  4. 20.639 Alexander M. Turek
  5. 19.913 Mathias Arlaud
  6. 17.385 Alexandre Daubois
  7. 13.594 Jeremy Derusse
  8. 13.518 Gregoire Pineau
  9. 13.104 Wouter de Jong
  10. 13.057 Ryan Weaver
  11. 12.654 Kevin Dunglas
  12. 11.929 Dariusz Ruminski
  13. 11.689 Oskar Stark
  14. 11.529 Christian Flothmann
  15. 11.124 Thomas Calvet

Wouter juga menyampaikan penghormatan untuk Ryan Weaver yang wafat pada 2025 setelah berjuang melawan kanker. Warisan kontribusinya terasa kuat di komunitas Symfony.

Kode: pertumbuhan, pembersihan, dan kompleksitas

  • Grafik utama menghitung semua baris kode di file XML dan PHP (dataset seperti Intl dikecualikan). Bagian yang relatif statis seperti header lisensi tetap dihitung, tetapi tidak terlalu berubah.
  • Grafik tersebut memetakan berapa banyak baris kode yang ditulis pada tahun tertentu dan masih utuh di rilis terbaru.
  • Pada akhir 2012, rilis 2.1 lebih dari menggandakan jumlah baris kode. Setelah itu, ada periode sekitar 3 tahun di era 2.x sebelum rilis 3.0 di akhir 2015.
  • Minor rilis tampak ritmis setiap 6 bulan, dan tiap rilis biasanya menambah sekitar 50 ribu baris kode. Symfony 4.3 adalah yang menambah paling banyak, sekaligus memperkenalkan Mailer, Mime, dan HttpClient.
  • Puncak kecil tiap dua tahun lalu diikuti penurunan tajam? Itu adalah rilis x.4 yang segera disusul major rilis baru untuk membersihkan layer backward compatibility. Total pembersihan per major rilis setara sekitar satu minor rilis (sekitar 50 ribu baris), penting untuk menjaga kode tetap terkelola.
  • Perubahan besar di awal 2019 adalah migrasi dari sintaks array() ke [] di seluruh project.
  • Major rilis di akhir 2021 menghapus lebih banyak kode dari satu minor rilis, yaitu sistem autentikasi lama di komponen Security.
  • Symfony 8.0 memiliki sekitar 9 kali lebih banyak kode dibanding 2.0. Namun sejak adanya Symfony Flex di era Symfony 4, developer hanya menginstal komponen yang dibutuhkan.
  • Lebih dari sepertiga kode di 8.0 berusia lebih dari 6 tahun, menunjukkan kematangan framework.
  • Ada grafik lain yang membandingkan total baris kode dengan jumlah baris yang ditambah/diubah dalam rilis tertentu. Penulis mengakui belum sepenuhnya paham “multiplier” di grafik itu, tetapi trennya naik meskipun ukuran kodebase sudah 9 kali lebih besar.
  • Kompleksitas siklomatik naik tipis dari waktu ke waktu, namun relatif stabil.
  • Metode paling kompleks pernah didominasi aturan pluralisasi di komponen Translation. Sejak Symfony 6.1, posisi ini diambil oleh Debug Class Loader, yang mengelola laporan deprecation untuk perubahan signature, return type, dan interface baru. Ini sejalan dengan proses penambahan type native PHP selama tiga major rilis.
  • Baru-baru ini, metode paling kompleks justru ada di koneksi Redis cache karena harus mendukung banyak ekstensi dan library Redis.

Komentar di kode

  • Wouter juga menghitung baris komentar di file PHP, termasuk docblock dan komentar satu baris.
  • Di Symfony 2.0, hampir 40% baris kode adalah komentar. Ini sebagian karena docblock “Captain Obvious” seperti “Constructor.” pada setiap __construct(), serta kebiasaan menaruh {@inheritdoc} ketika override method.
  • Seiring waktu, persentase komentar menurun. Penambahan type native dan attributes membuat banyak komentar menjadi tidak lagi perlu.
  • Meski demikian, komentar tetap penting untuk konteks, dan Wouter mengusulkan mungkin ini metrik yang layak didorong naik lagi di 2026.

Dokumentasi

  • Dokumentasi Symfony memakai panjang baris maksimum sekitar 72 karakter, sehingga jumlah baris cukup representatif sebagai indikator jumlah kata.
  • Meski tidak secepat pertumbuhan kode, dokumentasi telah tumbuh sekitar 4 kali lipat sejak rilis 2.0. Ini impresif mengingat tim dokumentasi relatif kecil. Repositori docs juga termasuk yang paling aktif, bahkan memiliki jumlah kontributor sekitar dua kali lipat dibanding repo React.
  • Ada penurunan baris dokumentasi pada beberapa major rilis. Contoh paling jelas: di Symfony 8.0, konfigurasi XML dan PHP Config Builder dihapus, sehingga banyak contoh dan panduan juga bisa dibersihkan. Ini membuat docs lebih ringkas dan pengalaman developer lebih baik.
  • Jika dibandingkan jumlah baris dokumentasi per 1.000 baris kode, rilis awal memiliki proporsi dokumentasi paling besar. Rasio ini turun tajam ketika Symfony 2.1 menggandakan ukuran kode di akhir 2012.
  • Tahun 2016, dokumentasi direorganisasi dari format books & cookbooks menjadi format guides yang dipakai sekarang. Sejak itu, rasionya menurun perlahan tetapi stabil.
  • Dokumentasi yang lebih sedikit tidak selalu buruk. Seiring waktu, tim docs menjadi lebih ringkas dan lebih banyak mengandalkan contoh kode daripada paragraf panjang.

Penutup

Wouter menutup dengan apresiasi besar kepada Fabien Potencier yang sudah mendorong Symfony selama 20 tahun. Data-data ini menunjukkan komunitas Symfony terus aktif dan berkembang.

Ia juga mengajak pembaca yang tertarik data untuk melihat skrip dan dataset di GitHub, sambil mengingatkan bahwa skrip tersebut bersifat “hacky” dan bisa memakan waktu lama untuk dijalankan.

Jika kamu sedang belajar PHP atau framework modern, bacadev.com menyediakan buku pemrograman berbahasa Indonesia yang bisa membantu memahami konsep inti dan praktik yang rapi.

Sumber: https://wouterj.nl/2025/12/symfony-20-year