Jangan bingung Java OO dengan PHP. Java adalah bahasa paradigma tunggal yang artinya hanya OO. PHP di sisi lain adalah bahasa multi-paradigma, Anda dapat melakukan pemrograman fungsional atau OO atau keduanya.
Sekarang tidak ada implementasi OO yang "buruk". OO Java bukan implementasi definitif yang harus atau harus diikuti oleh setiap bahasa lainnya. Ada beberapa konsep definitif, dan kedua bahasa sepenuhnya mengimplementasikannya dengan caranya sendiri (Java sejak awal, PHP sejak versi 5).
Jadi, untuk menjawab pertanyaan Anda: Apa yang CI lakukan dan apa yang Anda lakukan dengannya benar di dunia PHP. Array PHP adalah salah satu struktur yang paling fleksibel dan berguna dan sebenarnya adalah hal yang baik untuk menggunakan array pada objek ketika data Anda hanya informasi (jangan membawa logika dengannya). Kode OO sepenuhnya tidak sama dengan "hanya kode OO".
Jika Anda memulai dengan PHP, gunakan Java sebagai referensi untuk praktik OO yang baik tetapi jangan membatasi pemahaman Anda tentang PHP karena hal "Java melakukannya secara berbeda". Anda dapat benar-benar mengacaukan keduanya, paradigma tidak akan menyelamatkan Anda jika Anda tidak mendapatkan konsep.
Jika bagaimanapun Anda menemukan Java lebih sesuai dengan keinginan Anda (sebagai preferensi pribadi) jangan memeriksa Ruby untuk pengembangan web, mereka sedikit lebih dekat terkait.
Menggunakan objek bukan array hanya karena objek bukan paradigma OO, itu hanya preferensi pribadi :)
Objek memberikan penyelesaian kode praktis dalam IDE, antarmuka (tipe hinting) dan pewarisan dapat digunakan.
Jika Anda ingin menggunakan objek bukan array karena Anda melihat manfaatnya - gunakan itu, tetapi jika Anda ingin menggunakannya hanya karena objek - jangan buang waktu Anda ke refactoring ini :)
sumber
objects just because they are objects
bukan alasan untuk refactoring :) Baca jawaban saya, bukan hanya komentar.Anda tidak benar-benar melewatkan data di dalam sistem OO - Anda melewatkan benda di sekitar. Perbedaannya adalah bahwa objek berisi perilaku serta data. Itulah sebabnya mereka menyebutnya berorientasi objek dan bukan berorientasi data.
Selama Anda tidak memerlukan perilaku dengan data Anda, maka array php biasa adalah sama baiknya (atau buruk, tergantung pada sudut pandang Anda) sebagai objek nilai.
sumber
Saya pikir ini hanya masalah penyesuaian - ada banyak implementasi "objek" dalam pemrograman - Python dan Javascript memiliki sifat yang sangat berbeda. PHP OO bisa dibilang hack - array PHP bukan "objek" dalam arti tradisional - tetapi mereka melayani tujuan yang jelas. Kecuali jika Anda ingin data memiliki PERILAKU kustom lalu mengapa menggunakan objek?
EDIT:
re: objek nilai yang tidak berubah
http://bradley-holt.com/2010/09/immutable-value-objects-in-php/
sumber