Selain berbagai
kemudahan, PHP memiliki beberapa masalah atau kekurangan. Pertama, dari segi
bahasa ia bukanlah bahasa yang ideal untuk pengembangan berskala besar.
Kekurangan utama adalah tidak adanya namespace. Namespace merupakan sebuah cara
untuk mengelompokkan nama variabel atau fungsi dalam susunan hirarkis.
Misalnya, $ModuleA::ModuleB::c adalah variabel $c
di dalam ModuleB, yang terdapat di bawah ModuleA.
Modul lain, misalnya ModuleA::ModuleC atau ModuleD
dapat memiliki variabel $c juga, tapi keduanya dua variabel
berbeda. Di dalam ModuleB, variabel $c pertama dapat disebutkan hanya $c
saja, tapi untuk merujuk pada variabel kedua, diperlukan nama lengkap $ModuleD::c.
Di PHP ini tidak ada, jadi kadang programer mengakalinya dengan membuat nama
seperti $ModuleA_ModuleB_c. Kekurangannya, nama
panjang ini harus disebutkan di setiap waktu.
Kita juga tidak
dapat membuat fungsi dalam fungsi atau kelas dalam kelas di PHP, semuanya hanya
bisa terbatas satu level.
Sebagian pengguna
lanjut mengeluhkan model objek PHP yang minim. Dibandingkan dengan Python dan
Perl, PHP tidak memiliki multiple inheritance, kemampuan untuk mewarisi dari
dua atau lebih kelas induk. Multiple inheritance dapat berguna untuk
fleksibilitas dalam pengembangan OO. Java memang tidak memiliki multiple
inheritance, tapi ada interface di Java. Di PHP ini pun tidak ada. Selain itu,
belum ada penanganan eksepsi (raise, catch, throw) di PHP, dan kita tidak bisa
memanggil metode/atribut secara berangkai, mis: $obj->meth()->meth2().
Hal lainnya, tidak ada destruktor (meskipun ada konstruktor).
Juga, karena model
pemrograman yang embedded (tercampur dengan HTML), maka pengembang harus
berhati-hati agar aplikasinya yang nanti menjadi besar tidak acak-acakan
seperti mie. Ketercampuran ini dapat mengurangi modularitas, reuse, dan
memberatkan maintenance. Karena itu untuk aplikasi berskala menengah ke atas
perlu ditempuh upaya pemisahan kembali antara template HTML dan kode/logika,
antara lain dengan sistem template.
Tidak ada komentar:
Posting Komentar