Download the PHP package rkwp/object-iterable-laravel without Composer
On this page you can find all versions of the php package rkwp/object-iterable-laravel. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download rkwp/object-iterable-laravel
More information about rkwp/object-iterable-laravel
Files in rkwp/object-iterable-laravel
Package object-iterable-laravel
Short Description A utility library for ObjectIterable and global function.
License
Informations about the package object-iterable-laravel
Sejarah Singkat ObjectIterable
ObjectIterable saya buat karena kebutuhan kerja saya, saya tidak ingin ketika saya akses data array berdasarkan key / property harus case sensitive
Fungsi:
- ObjectIterabe akan membantu kamu untuk mengabaikan case sensitive ketika mencoba akses array.
-
ObjectIterabe otomatis mengconvert array menjadi class (class disini bisa berperilaku seperti array, jadi kamu bisa akses seperti array pada umumnya)
Berikut adalah dokumentasi untuk penggunaan class
ObjectIterable
yang mengonversi array ke objek dan mengabaikan case sensitivity saat mengakses array, serta mendeteksi jika suatu properti adalah array dan mengonversinya secara otomatis keRowData
.
Install
Pembuatan ObjectIterable
Untuk membuat instance dari ObjectIterable
, cukup masukkan array yang ingin dikonversi:
Akses Properti dengan Case Insensitive
Setelah array dikonversi, Anda dapat mengakses nilai-nilai di dalamnya secara case-insensitive. Misalnya:
Akses Properti yang Merupakan Array
Jika properti berisi array, properti tersebut secara otomatis akan dikonversi menjadi objek RowData
:
Penggunaan dengan foreach
(Iterator)
Anda dapat melakukan iterasi menggunakan foreach
jika data array sudah di konversi menjadi objectIterable. Berikut contohnya:
Untuk array di dalam properti, iterasi akan bekerja sama:
Mengonversi Kembali ke Semi Array
Jika Anda ingin mengonversi objek kembali menjadi semi array, gunakan metode toArray()
:
Mengonversi Kembali ke Array
Jika Anda ingin mengonversi objek kembali menjadi array, gunakan metode forceArray()
:
Mengonversi ke Laravel Collection
Jika Anda menggunakan Laravel dan ingin memanfaatkan Collection, gunakan metode toCollect()
:
Menggunakan JSON Serialize
Anda dapat mengubah instance ObjectIterable
ke JSON menggunakan json_encode()
:
ArrayAccess (Akses seperti Array)
ObjectIterable
dan RowData
juga mendukung akses seperti array:
Jika properti merupakan array, maka akan tetap bisa diakses seperti ini:
Penghitungan Jumlah Item
Anda dapat menggunakan count()
untuk mengetahui jumlah elemen dalam ObjectIterable
:
Case Sensitive
Pada awalnya objectIterable ini dibuat untuk mengabaikan case sensitive, namun jika kamu ingin case sensitive, tambahkan parameter kedua menjadi false
Contoh Kasus
Ini adalah cara pemakaian dasar dari class ObjectIterable
yang Anda buat untuk mengonversi array ke objek dan memberikan akses yang lebih fleksibel dengan fitur case-insensitive serta otomatisasi dalam penanganan properti berjenis array.
Lalu bagaimana untuk definisikan data object?
Mungkin jika kamu sudah terbiasa menggunakan TypeScript sudah tidak asing lagi dengan autocomplete yang membantu kamu mengetahui sebuah objek itu akan return property apa saja. Di TypeScrpt bisa mengggunakan tipe data custom dan interface.
Nah, dengan object iterable juga, berikut cara cara nya:
Setelah itu, daftarkan artisan command di project laravel kamu. Ada di file: app/Console/Kernel.php
Kemdian tambahkan ini:
-
Jalankan
php artisan make:data-type {NamaType} {property1,property2} {?isArrayOrNot}
-
Contoh:
php artisan make:data-type Users/User id,name,email,created_at,status,profile
atauphp artisan make:data-type Users/User id,name,email,created_at,status,profile
-
Setalah itu, maka akan terbuat file baru di
app/DataType/Users/TUser.php
yang berisi: -
Dan akan terbuat file struct di
app/DataStructure/Users/UserStruct.php
yang akanb berisi: - Ada satu property tambahan yaitu
$profile
yang saya buat dan menyesuaikan property dari data array di bawah
Hasil Final Cara Pakai Interface Object DataType
Contoh Gambar
Perhatikan gambar diatas, ketika saya mengetikan $user->nam
terlihat ada saran property nya, begitupun ketika saya coba akses property $user->profile
. Karena profile sudah bisa diibaratkan memiliki tipe data yaitu TProfile
Makin penasaran apakah benar setiap datanya memiliki tipe data? yuk coba di dd