Portal > Foren > PHP > PHP-Programmierung > Subclasses in PHP - sinnvoll?
Antwort
 
Themen-Optionen Thema durchsuchen
Alt 11.08.2006, 02:42 Nach oben    #1
Ben
Benjamin Klaile
 
Benutzerbild von Ben
 
Registriert seit: 02.12.2004
Ort: Remagen
Beiträge: 4.480
Standard Subclasses in PHP - sinnvoll?

Hi,
ich habe nie darüber nachgedacht bis ich auf diesen Artikel hier gestoßen bin.
http://www.santosj.name/php/dont-advocate-subclasses/

Fazit: Subclasses oder "innere Klassen" werden nicht benötigt.

Ich habe mal anonyme innere Klassen in Java verwendet, aber das war ein komplett anderer Anwendungsbereich.
Der Autor sagt ja aus, dass innere Klassen in PHP nicht nötig und sogar "schlecht" sind.

Würde gerne ein paar Meinungen von unseren PHP-Theorie-Spezis hören.
Nicht, dass mir letztlich noch etwas "Tolles" entgeht oder so (auch wenn ich das eher nicht glaube). Man soll ja nicht alles so hinnehmen, was man so liest.

Grüße, Ben.
Ben ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 11.08.2006, 09:40 Nach oben    #2
axo
Gast
 
Beiträge: n/a
Standard

das ist geschmackssache und liegt in der entscheidungsgewalt des entwicklers. genau wie die sexuelle präferenz einem menschen freigestellt wird, ist es auch dem geschmack des entwicklers zu überlassen, ob er mit unterklassen arbeitet oder nicht. wozu gedanken daran verschwenden? die welt ist frei...

btw ist der artikel nicht gerade ernst zu nehmen ... man substituiert doch nicht nach belieben ein class mit einem array und sagt dann, dass die klasse nicht nötig ist. so ein schwachfug. desweiteren sind auch 'normale' klassen nicht nötig. ich kenne viele entwickler, die auch komplett ohne OOP zurecht kommen und funktionierenden code abliefern können. so what?

grüße
axo

Geändert von axo (11.08.2006 um 09:43 Uhr).
 
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 11.08.2006, 10:58 Nach oben    #3
Lutz
 
Benutzerbild von MrNiceGuy
 
Registriert seit: 14.08.2005
Ort: Nienburg / Weser
Beiträge: 684
Standard

Also den Sinn einer solchen Anwendung habe ich a) noch nie gebraucht und b) noch nicht erkannt. Was soll es einem bitte bringen direkt in eine Klasse eine weitere einzufriemeln? Ich greife wenn dann überhaupt auf in der Klasse zur Laufzeit erstellte Instanzen anderer Klassen zu, ja, aber Klassen zu verschachteln, dazu fehlt mir die nötige abstrakte Sicht bzw. ein sinnvoller Anwendungsbereich!?
__________________
Paradox ist, wenn jemand für seinen Alkoholkonsum geradestehen soll
MrNiceGuy ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 11.08.2006, 11:16 Nach oben    #4
Ben
Benjamin Klaile
 
Benutzerbild von Ben
 
Registriert seit: 02.12.2004
Ort: Remagen
Beiträge: 4.480
Standard

Zitat:
Zitat von MrNiceGuy
dazu fehlt mir die nötige abstrakte Sicht bzw. ein sinnvoller Anwendungsbereich!?
Ich kenn das.

@axo:
Jou, genau was du sagst .. der Artikel ist .. solala und deswegen habe ich hier mal nachgefragt.

Grüße, Ben.
Ben ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 11.08.2006, 11:29 Nach oben    #5
axo
Gast
 
Beiträge: n/a
Standard

Zitat:
dazu fehlt mir die nötige abstrakte Sicht bzw. ein sinnvoller Anwendungsbereich!?
gut fakturierter (bäh... aus diesem grund mag ich deutsch bei technischen diskussionen nicht) code besteht aus einer sehr großen menge an klassen, die jede für sich relativ klein sind (d.h. wenig code enthalten). high cohesion, low coupling.
allerdings verliert man leicht mal die übersicht (viele klassen-dateien, viele packages und subpackages), und es gibt extrem viele klassen, die eh nur in einem bestimmten kontext verwendbar sind. nichtsdestotrotz macht es oft sinn, diese winzigen objekte auch als objekte zu behalten und nicht aufzulösen. aber man kann sie erstmal aus dem "öffentlichen" namensraum befreien, indem man sie zur inneren klasse des klienten macht.

es ist daher hilfreich, eine weitere kapselungs-ebene einzuführen, um 1. die anzahl an files im projekt zu reduzieren und um 2. hilfsklassen auch als solche kenntlich zu machen.
nein, nötig ist es nicht. aber man kann die anzahl an nötigen packages und klassen reduzieren, und damit etwas mehr übersicht schaffen.
wie gesagt - religiös darüber zu werden macht keinen sinn. wer's mag, verwendet es, wer nicht, nicht. inner classes haben meiner meinung nach vorteile (kapselung, weniger files im projekt, evtl. bessere übersicht für den klienten, leichteres refactoring für den autor, und laufzeitunterschiede sind mir dabei reichlich egal), aber ich drehe keinem einen strick daraus, wenn er/sie inner classes nicht braucht.

grüße
axo
 
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 11.08.2006, 11:35 Nach oben    #6
Waq
Erfahrener Benutzer
 
Registriert seit: 18.08.2005
Beiträge: 108
Standard

Das Problem bei PHP ist, dass es die Engine im Moment nicht schafft, irgend etwas anderes als einfache Variablen lokal zu halten, alles andere wird sofort globalisiert (Klassen, Funktionen...).
Und da selbst die Referenz-Magie der Variablen nur gerade so funktioniert, wäre es wohl wirklich ein Fehler, auf die schnelle lokal begrenzte Klassen einzuführen.

Die sollen irgendwann mal die Namespaces hinbekommen, lokale Klassen sind mir sowieso relativ egal, da wären mir closures in PHP wichtiger.
Waq ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 11.08.2006, 11:46 Nach oben    #7
axo
Gast
 
Beiträge: n/a
Standard

jo, das mit den referenzen ist so ziemlich das übelste an php. macht mich auch immer wieder wahnsinnig.
daher bleibt als quintessenz übrig: sollte ein php-projekt so groß werden, dass innere klassen vorteilhaft wären, sollte man aufhören, php zu benutzen.

grüße
axo
 
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 11.08.2006, 14:58 Nach oben    #8
Ben
Benjamin Klaile
 
Benutzerbild von Ben
 
Registriert seit: 02.12.2004
Ort: Remagen
Beiträge: 4.480
Standard

Zitat:
Zitat von axo
es gibt extrem viele klassen, die eh nur in einem bestimmten kontext verwendbar sind. nichtsdestotrotz macht es oft sinn, diese winzigen objekte auch als objekte zu behalten und nicht aufzulösen. aber man kann sie erstmal aus dem "öffentlichen" namensraum befreien, indem man sie zur inneren klasse des klienten macht.
Jou, das klingt ganz plausibel.

Allerdings nehme ich als persönliches Fazit diese Aussage hier
Zitat:
Zitat von axo
sollte ein php-projekt so groß werden, dass innere klassen vorteilhaft wären, sollte man aufhören, php zu benutzen.
Ben ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 14.08.2006, 06:45 Nach oben    #9
Lutz
 
Benutzerbild von MrNiceGuy
 
Registriert seit: 14.08.2005
Ort: Nienburg / Weser
Beiträge: 684
Standard

@axo: Danke für die Erklärung, es ist doch schon recht einleuchtend. Aber: Ich verstehe jetzt auch, warum ich diese Sichtweise nicht bedacht habe. Ich schreibe nämlich nicht für jeden kleinen Furz eine Klasse, da ich es unvorteilhaft finde, die OOP bis ins kleinste Byte zu vollziehen, denn weniger ist manchmal einfach mehr. Für diejenigen, die unbedingt eine Klasse schreiben wollen, die nur einen String enthält, bitteschön, für die macht es sicher Sinn, ich behalte dann doch lieber meinen etwas weniger OOP-lastigen Programmierstil bei und freue mich dennoch, dass ich bisher alles hinbekommen habe, was ich wollte
__________________
Paradox ist, wenn jemand für seinen Alkoholkonsum geradestehen soll
MrNiceGuy ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
PHP 5.2 Kompilierung schlägt fehl Byrel Tools, Server, Betriebssysteme 0 03.11.2006 21:09
[Rezension] PHP 5 Kochbuch Artemis Literatur 2 07.09.2006 19:15
PHP 5.1.5, PHP 4.4.4 und PHP 5.2.0 RC2 veröffentlicht Ben Nachrichten 2 01.09.2006 16:05
PHP 5.1 ist drausen robo47 Nachrichten 5 28.11.2005 20:30
Neue PHP "release candidates": PHP 4.4.2 RC 1 und PHP 5.1 RC 6 Ben Nachrichten 1 21.11.2005 20:48


Alle Zeitangaben in WEZ +2. Es ist jetzt 00:26 Uhr.


Powered by vBulletin® Version 3.7.3 (Deutsch)
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44