phpbar.de logo

Mailinglisten-Archive

[php] PHP5 und static

[php] PHP5 und static

Andreas Heigl a.heigl at wdv.de
Mon Jun 13 16:34:39 CEST 2005


Sebastian Mendel schrieb:

> Andreas Heigl wrote:
> 
>>>>> Welcher Sinn steckt da dahinter?
>>>> 
>>>> Welcher Sinn steckt darin eine Methode mal statisch, mal nicht aufzurufen?
>>>> Vielleicht sehe ich den nur nicht...
>>> 
>>> z. B.: eine Methode die selbst ein Objekt erzeugt wenn sie statisch
>>> aufgerufen wurde und dann den Aufruf an diese Objekt weitergibt,
>>> sparrt eine Zeile Code im Controller
>>> 
>>> z. B. wird nur eine Methode benötigt:
>>> 
>>> echo Date::getAsIso( $unix_timestamp );
>>> 
>>> 
>>> oder es werden mehrere benötigt oder das Objekt wird später noch gebraucht:
>>> 
>>> 
>>> $date = new Date( $unix_timestamp );
>>> $date->addDays( 128 );
>>> echo $date->getAsIso();
>> 
>> alternativ: echo Date :: getAsIso ( $date -> timestamp );
> 
> ahja, da fast 90% aller Methoden dieser Klasse auch statisch aufgerufen
> werden können verwende ich dann also auch alle Methoden nur noch
> statisch dann sind wir wieder 2 Jahre zurück, wo Klassen nichts weiter
> waren als Sammlungen von Funktionen, und die Eigenschaften werden als
> Parameter von Methode zu Methode mitgeschleift?
> 
> ganz abgesehen davon das ich bei jedem statischen Aufruf neu überprüfen
> muss in welchem Format das Datum vorliegt (denn es gibt ja nicht nur
> unixtimestamps). - Wow das gibt bestimmt ne Super Performance und der
> Wasserkopf und der doppelte Code ...
> 
> 
> Oder wie meinst du das?
Hallo Sebastian. Ohne jetzt auf dass gemoser eingehen zu wollen, stellt sich
für mich persönlich die Frage, was du willst:
Objektorientiert Programmieren?
Wo ist dann das Problem, eine Zeile mehr einzubauen?
Dann wird aus  
> echo Date::getAsIso( $unix_timestamp );
eben
> $dat = new Date ( $unixTimestamp );
> $dat -> getAsIso();

Oder willst du Zeilensparend programmieren?
Dann bist du wieder 'vor zwei Jahren' und verwendest am Besten gar keine
Klassen sondern nur Funktionssammlungen, die du in verschiedenen Dateien
sammelst und einbindest. (Mal abgesehen davon, dass es auch vor zwei Jahren
Leute gab, die echt Objekt-Orientiert Programmiert haben. Auch mit PHP. Und
vor allem abgesehen davon, das eine echte Objektorientierte Programmierung
auch Zeilen sparen kann. du kannst nämlich in deinem Beispiel komplett auf
die Prüfung eines optionalen Parameters $unixTimestamp in der Methode
getAsIso() verzichten, da kein Parameter übergeben wird. Sind auch wieder 5
Zeilen....)

Grüße

Andreas

PS. Wenn du daran wieder etwas auszusetzen hast, rutscht das ganze eher in
den OT-Bereich ab und du kannst mir deine Antwort ja direkt zukommen lassen
;-) 


-- 

wdv Medien & Kommunikation GmbH & Co. OHG
Mediendatenverarbeitung
Andreas Heigl
Siemensstrasse 6
61352 Bad Homburg
Germany
Telefon +49-(0)6172-670-185
Telefax +49-(0)6172-670-181
www.wdv.de



php::bar PHP Wiki   -   Listenarchive