Saya dapat memahami kebingungan Anda berdasarkan contoh yang Anda berikan. Itu benar-benar cara yang buruk untuk menggunakan kelas ... dan hanya karena kelas digunakan, tidak membuat sistem OOP.
Dalam kasus Hybrid, mereka hanya menggunakan kelas untuk namespace fungsinya. Mengingat Hybrid adalah kerangka kerja tema , ini dilakukan agar tema anak dapat menggunakan kembali nama fungsi tanpa pengembang harus khawatir tentang tabrakan nama. Dalam banyak kasus, kerangka kerja tema (parent theme) sangat kompleks, banyak pengembang tema anak tidak akan pernah mengerti persis apa yang terjadi di bawah tenda.
Jika Hybrid tidak menggunakan struktur kelas, pengembang tema anak perlu tahu apa semua panggilan fungsi yang ada sehingga mereka dapat menghindari penggunaan kembali nama. Dan ya, Anda bisa saja mengawali semua fungsi Anda dengan siput unik, tetapi itu membuat kode sulit dibaca, sulit untuk dipelihara, dan secara inheren tidak dapat digunakan kembali jika Anda mengembangkan sistem lebih lanjut yang ingin memanfaatkan fungsi yang sama.
Untuk Menjawab Pertanyaan Anda
Wtf? Apa gunanya melakukan ini? Jelas Anda tidak akan menggunakan dua contoh atau lebih dari tema yang sama, pada saat yang sama.
Tidak, Anda tidak akan menggunakan dua contoh atau lebih dari tema yang sama. Tapi seperti yang saya katakan, pikirkan struktur kelas dalam kasus ini sebagai penamaan fungsi, bukan membuat contoh objek tradisional. Melumpuhkan semuanya bersama-sama di dalam kelas dan membuat instance untuk memanggil metode ( myClass->method();
) atau memanggil metode secara langsung ( myClass::method();
) adalah cara yang sangat bersih untuk menamai hal-hal dengan cara yang dapat dibaca dan dapat digunakan kembali.
Tentu saja Anda selalu dapat menggunakan sesuatu seperti itu myClass_method();
, tetapi jika Anda ingin menggunakan kembali salah satu kode ini di tema lain, dalam sebuah plug-in, atau dalam kerangka antoher Anda harus melihat kembali dan mengubah semua awalan Anda. Menjaga segala sesuatu di kelas lebih bersih dan memungkinkan Anda membangun kembali dan memindahkan kembali lebih cepat.
Mari kita asumsikan bahwa plugin melakukan ini untuk namespace (yang konyol), tapi apa alasan temanya? Apakah saya melewatkan sesuatu?
Dalam sebagian besar situasi saya setuju dengan Anda. Namun, mayoritas itu dengan cepat memudar. Saya meng-host beberapa situs pada instalasi MultiSite yang menggunakan variasi dari tema yang sama. Daripada menciptakan kembali tema yang sama berulang-ulang dengan perbedaan kecil, saya memiliki "kelas" tunggal untuk tema induk dan semua tema anak memperluas kelas itu. Ini memungkinkan saya untuk mendefinisikan fungsionalitas khusus untuk setiap situs sambil tetap mempertahankan rasa keseragaman secara umum di seluruh jaringan.
Di satu sisi, pengembang tema dapat memilih pendekatan berbasis kelas untuk namespace fungsionalitasnya (yang tidak konyol jika Anda bekerja di lingkungan di mana Anda menggunakan kembali potongan kode yang sama berulang-ulang). Di sisi lain, pengembang tema dapat memilih pendekatan berbasis kelas agar mudah dikembangkan oleh tema anak.
Apa keuntungan dari pengodean tema seperti ini?
Jika Anda hanya menggunakan Hybrid di situs Anda, ada sedikit yang tahu manfaatnya bagi Anda sebagai pengguna akhir. Jika Anda sedang membangun tema anak untuk Hybrid ada keuntungan dari penempatan nama dan ekstensibilitas. Jika Anda bekerja untuk ThemeHybrid , keuntungannya terletak pada penggunaan kembali kode yang cepat dan efisien di seluruh proyek Anda yang lain (Prototipe, Leviathan, dll).
Dan jika Anda adalah pengembang tema yang menyukai fitur spesifik Hybrid tetapi bukan keseluruhan tema, keuntungannya terletak pada penggunaan kembali kode yang cepat dan efisien dalam proyek non-Hibrid Anda (dengan asumsi itu juga GPL).