9 poin oleh GN⁺ 2025-08-06 | Belum ada komentar. | Bagikan ke WhatsApp
  • PHP 8.5 secara resmi menambahkan operator pipa (|>), sehingga memungkinkan chaining bergaya pemrograman fungsional.
  • Operator pipa berperan sebagai syntax sugar yang meneruskan nilai kiri sebagai argumen fungsi callable di kanan, sehingga pipeline transformasi data yang kompleks dapat ditulis lebih ringkas.
  • Kode yang sebelumnya perlu dipanggil secara bertingkat atau membanjiri variabel sementara, kini berubah menjadi ekspresi berantai yang lebih mudah dibaca, sehingga maintainability dan utilisasinya meningkat secara signifikan.
  • Fitur ini terinspirasi dari fitur serupa pada beberapa bahasa fungsional seperti F#, OCaml, dan Elixir, dan setelah berbagai usulan serta penyempurnaan di dalam PHP, akhirnya diresmikan pada 2025.
  • Operator pipa ke depan juga akan terhubung erat dengan penguatan paradigma fungsional seperti Partial Function Application (penerapan fungsi parsial) dan operator komposisi fungsi.

  • Pada PHP 8.5 (diperkirakan November 2025), operator pipa (|>)—perubahan kecil yang lama diminta komunitas—ditambahkan.
  • Implementasinya sederhana, namun dinilai fitur yang secara drastis meningkatkan daya ekspresif kode.

Apa itu operator pipa PHP 8.5?

  • Operator pipa |> adalah operator sederhana yang mengirim nilai sebelah kiri sebagai argumen ke fungsi di sebelah kanan.
    • Menyederhanakan input parameter fungsi sebagai syntax sugar.
  • Contoh:
    $result = "Hello World" |> strlen(...);
    // Kode di atas memiliki arti yang sama dengan kode berikut
    $result = strlen("Hello World")
    
  • Dapat menghubungkan beberapa fungsi (chain) sehingga pipeline transformasi data bisa ditulis per baris.
    $result = $arr  
        |> fn($x) => array_column($x, 'tags')  
        |> fn($x) => array_merge(...$x)  
        |> array_unique(...)  
        |> array_values(...);
    
  • Dalam cara lama, kode semacam ini biasanya harus ditulis dengan nested call yang rumit atau deklarasi banyak variabel sementara.
  • Operator ini dirancang mirip dengan pipe (|) pada shell Unix/Linux, sehingga terasa sangat intuitif.

Latar belakang dan sejarah adopsi

  • Ini adalah konsep yang mirip dengan pipe pada bahasa fungsional seperti F#, OCaml, dan Elixir.
  • PHP juga sudah punya beberapa library dengan fitur serupa, namun sering menimbulkan penurunan performa dan kerumitan.
  • Berasal dari Hack/HHVM (fork PHP buatan Facebook); di PHP sendiri, setelah proposal pertama pada 2016, beberapa RFC-nya ditolak berkali-kali.
  • Pada 2025 akhirnya lolos sebagai syntax standar, dan terhubung dengan fitur-fitur yang lebih dulu diperkenalkan seperti First Class Callables (sintaks pemanggilan fungsi array).

Contoh penggunaan dan fitur

  • Pada pemrosesan array rumit, pemrosesan string, aliran data, dan lain-lain, memungkinkan menghubungkan fungsi secara intuitif tanpa variabel sementara.
  • Juga memungkinkan penggunaan chain pada konteks yang hanya mengizinkan ekspresi tunggal, seperti match(), sehingga pemanfaatan kode menjadi maksimal.
  • Di sisi kanan, tidak hanya pemanggilan fungsi, tetapi juga pola-pola lain seperti closure dan pengembalian fungsi tinggi dapat dimanfaatkan.

Memperkuat paradigma fungsional

  • Pipe dapat dikombinasikan dengan fungsi sembarang, closure, maupun higher-order function.
  • Contoh: chain bersyarat (null-safe), Maybe Monad, pemrosesan stream, dan berbagai pola fungsional lain yang kompatibel secara alami.
  • Pipeline aman null juga bisa diimplementasikan dengan pipe bersama fungsi higher-order seperti maybe().

Arah pengembangan ke depan

  • Penggabungan dengan Partial Function Application (penerapan fungsi parsial) diperkirakan akan membuat kombinasi fungsi lebih beragam.
  • Operator komposisi fungsi (composition operator) juga sedang diusulkan, sehingga di masa depan dapat dioptimalkan untuk menggabungkan beberapa map dalam satu chain sekaligus.

Operator pipa memberikan inovasi pada produktivitas, keterbacaan, dan ekstensibilitas lebih dari sekadar tambahan sintaks, sehingga penulisan kode bergaya pemrograman fungsional setelah PHP 8.5 diharapkan jauh lebih kuat.

Belum ada komentar.

Belum ada komentar.