Dengan modal iseng karena lagi sepi project, saya coba berseluncur ke sana kemari cari hal baru. Akhirnya perhatian saya tersita dengan perkembangan Codeigniter 4. Farmework Website berbasis PHP ini sangat populer. Banyak digunakan developer baik diranah production maupun hanya sekedar kegiatan pembelajaran. Codeigniter sudah mencapai angka rilis 4. Bersaing dengan Framework populer lainnya, Codeigniter tampaknya mulai banyak memberikan sentuhan baru di angak empat ini. Kita bisa mencoba semua fitur baru ini dengan pull repo terbaru dari github. Ingat, CI 4 masih dalam tahap development. Jadi, saya rasa masih belum bisa diajak ke ranah production.
1. Struktur folder yang lebih aman
Mendalami struktur folder baru Codeigniter, kita harus merujuk pada panduan yang satu
ini. Kita masih dapat menemui folder
system,
application. Namun, kita akan kehilangan file index.php karena file index.php akan berada dalam folder baru yaitu folder
public. Alasan dari pemisahan ini lebih ke faktor keamanan dan pencegahan akses file script secara langsung. Dengan memindah index.php ke folder public, diharapkan pengembang sudah mulai memperhitungkan keamanan dan mengarahkan web root mereka ke folder public. Bagi saya, ini langkah bagus karena kita tidak perlu lagi menerapkan langkah extra. Hal ini juga akan memaksa developer melakukan konfigurasi webroot dengan aman. Selain folder public, kita akan menemui folder
writables dan
docs. Folder writables lebih dikhususkan untuk menampung file yang dibuat saat aplikasi berjalan seperti cache file, logs maupun file hasil upload dari user. Sedangkan folder docs akan menampung panduan umum Codeigniter.
2. Penggunaan Namespace dan Classmap
Ini berita bagus bagi developer yang ingin kodenya lebih rapi dan sesuai dengan PSR. Codeigniter 4 sudah siap mengimplementasikan penggunaan namespace pada sistem inti CI. Pengaturan ini bisa anda temui pada file applications/Config/Autoload.php. Selain itu kita juga bisa melakukan pengaturan classmap dimana kita bisa memetakan class yang tidak menerapkan namespace.
3. Pengenalan Service
Ini merupakan hal yang baru bagi saya. Konsep service ini dimaksudkan untuk mempermudah pembuatan instance dari class-class yang ada pada core CI. Jadi jika merujuk pada laman dokumentasi, Semua kelas bertindak sebagai penyedia service. Jadi Service bertindak sebagai Factory atau pabrik pembuat instance. Service ini bisa diakses melaui namespace maupun helper metode.
Misal kita inging melakukan instansiasi class Timer pada namespace
\Codeigniter\Debug. Normalnya kita akan melakukan
$timer = new \CodeIgniter\Debug\Timer();
Dengan Service, kita dapat melakukan instansiasi
$timer = \Config\Services::timer();
// or
$timer = service('timer');
4. The Request and The Response
Kini CI 4 akan punya service khusus yang menangani HTTP Request dan Response.
HTTP Request akan ditangani IncomingRequest class
dibawah namespace CodeIgniter\HTTP\IncomingRequest.
Sedangkan Response akan ditangani Response class
dibawah namespace
CodeIgniter\HTTP\Response.
Ini akan sangat memudahkan kita membangun RESTful API tanpa bergantung lagi pada library pihak ketiga. Sungguh langkah yang tepat. Kita bisa coba beradapatsi dengan class-class ini. Akan ada banyak fungsi-fungsi standart dalam penangan response dan request seperti setting status kode, header dan content output. Kita bisa liat detailnya
disini
5. Peningkatan Keamanan
Saat membaca panduan pada laman resmi CI 4, saya menemui panduan keamanan yang ditawarkan CI 4. Tidak hanya itu pengembang juga berhasil meyakinkan developer dengan memaparakan rekomendasi keamanan dari OWASP serta tindakan apa yang telah dilakukan developer CI untuk menangani masalah itu. Daftar lengkap bisa anda dapatkan
disini
Itulah beberapa hal yang kemungkinan besar akan hadir di CI 4 berdasarkan website panduan resmi terbaru CI. Hal ini belumlah sepenuhnya akan hadir di rilis resmi nanti, karena apa saja bisa berubah tergantung dari developer internal CI. Hal yang saya paparkan diatas masih dalam status development. Mengingat CI 4 sendiri memang belum dirilis stabil sampai tulisan ini dibuat. Apapun bisa berubah untuk rilis CI 4 stabil nantinya.
Semoga hal yang saya paparkan diatas memberikan manfaat dan pandangan baru bagi kalian khususnya developer yang memakai CI sebagai senjata utama mereka dalam membuat aplikasi web. Tetap mengikuti perkembangan dari developer CI dilaman
github dan juga
panduan resmi.
Comments
Post a Comment