PHP Framework Symfony

I. Sekilas tentang Symfony

Symfony adalah salah satu dari banyak framework yang ditulis dalam bahasa PHP. Selain symfony ada juga CodeIgniter, YII, Cake, Laravel, Slim, Silex dan lain sebagainya. Symfony pertama kali diperkenalankan pada tahun 2005 oleh Fabien Potencier, seorang programmer asal Perancis serta pendiri SensioLabs.

Saat buku ini ditulis, Symfony telah mencapai versi 3.1.X serta 2.7.X dan 2.8.X untuk versi LTS (Long Term Support)

Saat ini, Symfony telah diadopsi dan digunakan oleh banyak perusahaan maupun project open source diantaranya EzPublish, Drupal, Joomla, Magento, Laravel, Composer, dan masih banyak lagi lainnya.

Symfony dimaintain oleh lebih dari 1.500 developer pada core component dan lebih dari 1.100 developer pada dokumentasi serta lebih dari 10.000 third party bundle yang siap digunakan dalam project Symfony Anda.

Saat ini, Symfony telah di-download lebih dari 12.500.000 kali hanya untuk versi 2 keatas sehingga merupakan pilihan yang tepat menggunakan Symfony sebagai solusi dari kebutuhan Sistem Anda.

II. Alasan memilih Symfony

Seringkali sebelum memakai suatu framework, kita akan bertanya, kenapa kok harus pakai framework X, kenapa bukan framework Y saja? Untuk menjawab pertanyaan tersebut, maka disini saya akan mencoba menjabarkan keunggulan Symfony dibandingkan framework PHP lainnya.

a. Reputasi

Dengan lebih dari 12 juta download, reputasi Symfony tidak perlu diragukan lagi. Terlebih sebagai sebuah framework, Symfony telah bertahan lebih dari 10 tahun serta menjadi pondasi banyak project lain, sehingga tidak ada yang perlu diragukan lagi bahwa Symfony adalah framework dengan reputasi yang baik.

b. Standar tinggi

Banyaknya component Symfony yang digunakan oleh project lain menunjukkan bagaimana kualitas dari Symfony itu sendiri. Symfony disusun mengikuti kaidah (standard) yang disepekati oleh komunitas PHP diseluruh dunia yaitu PSR (PHP Standard Recomendations) sehingga untuk kualitas code, Symfony tidak perlu diragukan.

c. Support banyak database

Untuk koneksi database, Symfony menggunakan Doctrine sebagai provider-nya. Doctrine sendiri adalah Database Library yang mendukung banyak data storage baik itu RDMS seperti MySQL, PostgreSQL, Oracle, Ms SQL, SQLite, dan MariaDB maupun NoSQL database seperti MongoDB, CouchDB dan PHPCR (PHP Content Repository).

Dengan dukungan database yang banyak tersebut, Symfony sangat mudah diimplementasikan untuk Enterprise yang memiliki multiple data storage. Bahkan dengan Symfony, Anda akan lebih mudah mengaplikasikan konsep Polyglot pada aplikasi Anda.

d. Third party melimpah

Dengan lebih dari 10.000 third party bundle, Anda akan sangat dimanjakan ketika membangun aplikasi karena apa yang Anda butuhkan hampir semuanya telah di-support oleh komunitas. Berikut adalah beberapa bundle yang bisa menjadi referensi ketika Anda membangun aplikasi.

Dan masih banyak lagi bundle-bundle lainnya yang tidak bisa saya sebutkan disini. Untuk melihat bundle-bundle apa saja yang tersedia, salah satu channel yang dapat dikunjungi adalah KnpBundles.

e. Built-in Email Library

Symfony secara default sudah include email library yaitu SwiftMailer sehingga Anda tidak perlu lagi meng-install email library untuk berkirim email melalui aplikasi Anda. Cukup setting dan konfigurasi aplikasi Symfony Anda maka Anda sudah dapat mengirim email dengan sangat mudah.

f. Templating Engine

Symfony menggunakan Twig sebuah template engine besutan Sensiolabs yang juga ditulis oleh penulis Framework Symfony yaitu Fabien Potencier. Dengan twig, Anda dapat dengan mudah berkolaborasi dengan frontend developer karena syntax-nya yang friendly.

Template twig di-compile kedalam plain old php object (POPO) sehingga untuk eksekusi jauh lebih cepat.

g. Built-in Security

Security di Symfony dibuat Out of The Box dimana sebuah aplikasi dan sistem keamanan dibuat seolah-olah terpisah. Maksud dari terpisah adalah, Anda dapat membuat aplikasi secara utuh hingga benar-benar berjalan tanpa perlu memikirkan security terlebih dahulu.

Kemudian setelah aplikasi selesai, Anda dapat meng-inject security dengan mudah tanpa perlu merubah code program sama sekali.

Dengan konsep ini, maka Anda akan terbebas permasalah User Management yang biasanya sering terjadi perubahan-perubahan yang cukup radikal sehingga sistem atau aplikasi yang dibuat harus menyesuaikan dan banyak code yang harus dirubah pula.

Security di Symfony dibuat berlapis sehingga menjamin keamanan dari aplikasi yang Anda buat. Security di Symfony menggunakan konsep Authentication dan Authorization sehingga seorang user harus “lolos” pengecekan authentication dan authorization terlebih dahulu ketika mengakses aplikasi kita.

h. Annotation

Salah satu fitur yang membedakan Symfony dan framework lainnya adalah adanya fitur annotation di Symfony.

Annotation adalah sebuah block doc (blok komentar) php yang akan di-parsing dan dibaca sebagai program oleh Symfony. Dengan annotaion, kita dapat merubah flow aplikasi, menambahkan security, melakukan manipulasi parameter, dll dengan cara yang sangat mudah dan sekali tanpa merubah code program sama sekali.

i. Human friendly configuration

Meski konfigurasi Symfony dapat berupa php atau xml namun yang direkomendasikan oleh Symfony adalah menggunakan yml. Yml adalah kependekan dari Yahoo Markup Language yaitu sebuah markup language yang human friendly karena tidak menggunakan tag seperti html maupun xml.

Syntax yml sangat mudah dibaca dan dimegerti oleh siapapun termasuk oleh mereka yang tidak memiliki latar belakang pemrograman sama sekali. Berikut adalah contoh syntax yml.

1 parameters:
2      database_host: localhost
3      database_user: root

Bagaimana sangat mudah dibaca, bukan?

j. Satu untuk Semua

Banyaknya project lain yang menggunakan Symfony memberikan benefit tersendiri bagi kita. Tanpa disadari dengan mempelajari Symfony kita juga secara tidak langsung telah mempelajari project-project tersebut dari sisi library-nya yaitu Symfony Component. Itu artinya jika nantinya kita diharuskan menggunakan project-project tersebut maka kita akan lebih familiar.

k. Lisensi MIT

Lisensi MIT adalah lisensi yang paling aman untuk bisnis dan juga untuk developer karena kita boleh mendistribusikan ulang, memodifikasi, termasuk melisensi ulang software yang kita buat. Untuk lebih jelas tentang lisensi MIT, silakan baca link ini.

l. Backward Compability

Bagi sebuah perusahaan maupun developer, dukungan backward compability adalah sesuatu yang penting. Dengan dukungan backward compability, seorang developer maupun perusahaan lebih percaya diri ketika meng-upgrade program tidak akan terjadi masalah baik bug ataupun error.

m. Cache Everything

Berbeda dengan framework kebanyakan, Symfony memiliki pola eksekusi yang berbeda antara development dan production. Pada frase development, setiap perubahan dalam konfigurasi, annotation, dan lain sebagainya akan di-compile dan diperbaharui. Namun ketika memasuk frase production maka perubahan-perubahan yang kita lakukan pada konfigurasi maupun annotation tidak akan di-compile.

Hal tersebut terjadi karena Symfony meng-compile semua konfigurasi, annotation, dan lain sebagainya kedalam cache file sehingga proses eksekusi pada production akan jauh lebih cepat dibandingkan dengan development.

Dengan alasan-alasan diatas, sudah tepat jika Anda memilih Symfony untuk membangun aplikasi Anda.

Leave a Reply

Your email address will not be published. Required fields are marked *