PHP Unit Test Explorer With Laravel Sail

Image
What is PHP Unit Test Explorer Before we discuss in deep, i want to explain the standard definition. PHP Unit Test Explorer is one of extensions in visual studio code. You can search in extension menu and install it.  After installed, you can find it on sidebar. It has test tube icon. Laravel Sail Laravel sail is one of laravel tools for easy and consistent development. Under the hood, it uses docker and docker compose. One advantage using sail is we don't need to setup bunch of php and web server configuration. It was already handled by sail. We just need to run docker compose command or via sail command. You can learn more detail about how sail works in Laravel documentation here . What if we want to implement TDD in Laravel? As developer, we need to make sure our code run well. So, we need to test it by implementing TDD. Luckily, Laravel support TDD by default. You can run artisan command to generate test file. In the newest version, Laravel supports phpunit and pest configurati

Membaca Arah Perkembangan Codeigniter 4



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

Popular posts from this blog

Mengapa Saya Memutuskan Menjadi Seorang Freelancer?

PHP Unit Test Explorer With Laravel Sail

Completely a Mess or Achievement ? Evaluasi 2 Tahun di Jakarta