Gördüğüm birçok temada (TwentyEleven dahil) ve çevrimiçi bulduğum örneklerde, functions.php
bir tema için dosya oluştururken tüm işlevler küresel bir kapsamda bildirildi. Açıklığa kavuşturmak için, tipik bir işlev dosyası şöyle görünür:
function my_theme_do_foo() { // ... }
function my_theme_do_bar() { // ... }
add_action( 'foo_hook', 'my_theme_do_foo' );
Bana öyle geliyor ki bir sınıf kullanılmışsa işler biraz daha "kapsüllenebilir":
class MyTheme {
function do_foo() { // ... }
function do_bar() { // ... }
}
$my_theme = new MyTheme();
add_action( 'foo_hook', array( &$my_theme, 'do_foo' ) );
İkinci yaklaşımın avantajları (mütevazi gözlerimde):
- Daha kısa işlev adları
- Örnek değişkenlere erişim (en büyük avantaj IMO)
- Global işlev yok
Dezavantajlar:
- Sınıf adı yine de çakışmalara neden olabilir
- Bir alt temayla "özelleştirmek" kadar net değil (bir ana sınıfı genişletmek zorunda kalacak)
- Çoğu tema bu şekilde yapılmadı, bu yüzden eğilimi bozuyorsunuz
Muhtemelen bazı şeyleri gözden kaçırıyorum, ama neden OOP yaklaşımını benimsemediğimi merak ediyorum? Bir şey varsa, bana biraz "temiz" geliyor. Belki yanılıyorum?
WordPress tema geliştirme konusunda oldukça yeniyim, bu yüzden bu WP topluluğunda ortak bilgi ise beni affet :). Sadece neden böyle olduklarını öğrenmeye çalışıyorum.