PHP (ad çeşit) fonksiyonları çok birleştirerek OOP kullanılarak?

3 Cevap php

PHP ile çalışıyorum ve ben bir sınıfa fonksiyonları çok birleştirmek için ne kadar kötü bir uygulama merak ediyorum. Ben bu sınıfların amacı değil farkındayım, ama ben bunu neden nedeni bir ad sağlamaktır. Ne kadar büyük etkisi bu kadar bir PHP komut dosyası yürütme 10 sınıfları demek yerine en 2 veya 3 diyelim let başlatmak için yapar?

3 Cevap

<?php
class Foo {
   public static function aStaticMethod() {
       // ...
   }
}

Foo::aStaticMethod();
?>

(Kopyalanan the php manual)

Işlevselliği gruplama - Bunu bir şekilde bir sınıfın bir fonksiyonu söyleyebilirim.

Bu da herhangi bir performans ilgili bir sorun olmaz (bunu milyonlarca kez yapabileceği ve hatta fark etmez - hiçbir çalışma zamanı maliyeti, sadece bir dakika ekstra ayrıştırma maliyeti ve bu göz ardı edilebilir olmalıdır). Modern php çerçeveler kod yükleri getirmek ve içten nesneleri bir sürü oluşturmak - Ben veritabanı performans hemen hemen her zaman ilk seni vuracak, php performansı dert olmaz. Kod okunabilir ve sürdürülebilir olduğundan emin olun (Evet, özellikle php kod ;)) ve anlamına eğer gruplama fonksiyonları sonra bunu.

Eğer web sayfaları değil, nükleer simülasyonlar yapıyoruz, özellikle "zaman erken optimizasyon 97% tüm kötülüklerin köküdür" ;)

Düzenleme: Kamu ve statik <5 deneyebilirsiniz php, sadece php5 şunlardır:

<?php
class Foo {
   function aStaticMethod() {
       // don't touch $this
   }
}

Foo::aStaticMethod();
?>

10 Sınıfları yüklerken çok yavaş olduğunu performansı hakkında çok endişe ediyorsanız, o zaman PHP kullanarak olmamalıdır.

En azından, APC gibi bir opcode önbellek kullanın ve daha sonra sınıfları yükleme hiç bir yük olmamalıdır.

PHP, son zamanlarda olduğu gibi, birinci sınıf ad desteğe sahip olduğunu farkında olmayabilir: http://php.net/language.namespaces.