php.de

Zurück   php.de > Webentwicklung > PHP-Fortgeschrittene

PHP-Fortgeschrittene Arbeiten mit PHP ohne Einschränkungen

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 06.10.2004, 22:35  
Benutzer
 
Registriert seit: 02.02.2004
Beiträge: 53
eQuin
eQuin eine Nachricht über ICQ schicken
Standard ich raffe opp nicht :( !

also ich habe folgendesproblem:
ich code seit ca 3 jahren mit php und habe seitdem noch nie oop programmierung genutzt,da ichs bis jetzt noch nicht verstanden habe zu was es da ist, vielleicht könnte es mir hier jemand erklären!
ich habe schon viele erfolgreiche sachen gecodet und bin immer ohne oop ausgekommen!
eQuin ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 07.10.2004, 08:47  
Gast
 
Beiträge: n/a
Standard

ja und wo liegt dann das problem? wieso muss man krampfhaft versuchen
oop zu betreiben? wenn sich's anbietet wird man von alleine drauf kommen,
und wenn nicht dann nicht - da bricht auch nix zusammen.

oop ist "eigentlich" nur ne gruppierung von funktionen .. mit gedächtnis.
insofern würde ich mir da echt keinen kopf machen. wenn's kommt, dann
kommt's und wenn du dein leben lang ohne schreibst, dann schreibste eben
ohne ..
  Mit Zitat antworten
Alt 12.10.2004, 17:52  
Gast
 
Beiträge: n/a
Standard

Zitat:
Zitat von stef
ja und wo liegt dann das problem? wieso muss man krampfhaft versuchen
oop zu betreiben? wenn sich's anbietet wird man von alleine drauf kommen,
und wenn nicht dann nicht - da bricht auch nix zusammen.

oop ist "eigentlich" nur ne gruppierung von funktionen .. mit gedächtnis.
insofern würde ich mir da echt keinen kopf machen. wenn's kommt, dann
kommt's und wenn du dein leben lang ohne schreibst, dann schreibste eben
ohne ..
dazu habe ich noch ne frage - unterscheidet sich oop bei PHP4 und PHP5 erheblich?
  Mit Zitat antworten
Alt 12.10.2004, 17:58  
Erfahrener Benutzer
 
Registriert seit: 18.09.2003
Beiträge: 13.598
PHP-Kenntnisse:
Fortgeschritten
imported_Ben ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Zitat von RhenDark
unterscheidet sich oop bei PHP4 und PHP5 erheblich?
ja.
imported_Ben ist offline   Mit Zitat antworten
Alt 12.10.2004, 18:00  
Gast
 
Beiträge: n/a
Standard

Zitat:
Zitat von Ben
Zitat:
Zitat von RhenDark
unterscheidet sich oop bei PHP4 und PHP5 erheblich?
ja.
und was lernt "man" dann am besten? Bei den providern gibts meist nur php4, oder?

aber was altes lernen...hmmm.
  Mit Zitat antworten
Alt 12.10.2004, 19:23  
Gast
 
Beiträge: n/a
Standard

Willst du wirklich sowas coden?

PHP-Code:
                if (!empty($did)) {
                    
// Init from field block value
                    
$v $this->Block[$did]->get(REC_FIRST);
                    if ( (
$tmp _call_virtual('_'.$this->Key.'_'.$k.'_init',$v[$dkey])) != VIRTUAL_NA )
                        
$val $tmp;
                    else
                        
$val $v[$dkey];
                    if (
$ff) {
                        return 
$this->Field[$k]->init($val);
                    }
                } else {
                    if (
$ff) {
                        if ( (
$tmp _call_virtual('_'.$this->Key.'_'.$k.'_init',$this->Field[$k]->get_value())) != VIRTUAL_NA ) {
                            
$val $tmp;
                        } else {
                            if (
$ff)
                                
$val $this->Field[$k]->get_value();
                        }
                    }
                    
// Init from field initial value
                    
if ($ff)
                        return 
$this->Field[$k]->init($val);
                } 
Lass lieber die Finger davon... bereitet mehr Kopfschmerzen als man schon hat...

Lev
  Mit Zitat antworten
Alt 13.10.2004, 09:28  
Gast
 
Beiträge: n/a
Standard

Also im Prinzip muss man selber wissen wie man auskommt meine Meinung dazu ist einfach man sollte selber zusehen was man braucht und in welchem Umfang man es braucht.

Wenn man bei seinem gegenwärtigen Projekt halt nur die 4er version braucht dann sollte man es dabei belassen.
Wenn man aber in die Zukunft schaut ist es halt so das man nicht drumrum kommt fü die 5er Version sich zu wappnen.

und was die oop angeht man wird immer wieder auf Probleme stoßen die man eventuell garnicht ohne lösen kann oder es wird einfacher wenn man es benutzt. und so schwer ist oop ja garnicht wenn man erstmal die Grundidee verstanden hat ist der werdegang dann ein klacks.

Als kleines beispiel für oop in php5:

Es ist möglich zumindestens jetzt mit php5 Klasse dahingehend zu Typisieren : wie es vergleichsweise in C/C++ möglich, Objekten einer Klasse drei Merkmale zu erteilen. Private, Public und Protectet.
und vieles mehr ist jetzt mit oop in version 5 möglich.
  Mit Zitat antworten
Alt 14.10.2004, 08:21  
Gast
 
Beiträge: n/a
Standard

Zitat:
Zitat von lev
Willst du wirklich sowas coden?
Lass lieber die Finger davon... bereitet mehr Kopfschmerzen als man schon hat...
Naja, man muss aber auch zwischen schwierigem Code und einer
unsauberen Formatierung unterscheiden. :wink:
  Mit Zitat antworten
Alt 14.10.2004, 19:07  
Gast
 
Beiträge: n/a
Standard

Also, ich find meine Formatierung sauber... aber sehr abstrakter Code kann unter umständen chaotisch wirken, egal wie man ihn formatiert :P :P :P
  Mit Zitat antworten
Alt 14.10.2004, 19:31  
Gast
 
Beiträge: n/a
Standard

Zitat:
Zitat von 2oopuls
Zitat:
Zitat von lev
Willst du wirklich sowas coden?
Lass lieber die Finger davon... bereitet mehr Kopfschmerzen als man schon hat...
Naja, man muss aber auch zwischen schwierigem Code und einer
unsauberen Formatierung unterscheiden. :wink:
Komisch, das gleiche dachte ich auch, als ich es las :wink:

@Topic
Vielleicht solltest du dir erstmal klar machen, was ein Objekt ist und wozu es benutzt wird, bzw. wie verschiedene Objekte sinnvoll zusammen arbeiten. (Genau genommen hat man zunächst gar kein Objekt, sondern nur eine Klasse, von der man ein Objekt ableiten kann. Aber das interessiert zum Grundverständnis erstmal nicht, weshalb ich weiterhin von Objekten spreche.)

Zur Veranschaulichung ein kleines Beispiel aus der realen Welt:

Wir wollen ein Fahrrad bauen. Um nicht gleich die volle Verwirrung zu stiften, gehe ich nicht von einer Mutterklasse "Fahrzeug" aus, in der die Grundliegenden Dinge definiert sind, die jedem Fahrzeug zugrunde liegen. Das geht dann schon in die Vererbung und hier soll nur mal gezeigt werden, wie Objekte ansich funktionieren und wie sie aufgebaut sind.

Betrachten wir also zunächst worauf wir hinaus wollen:
Ziel: Fahrrad

Ein Fahrrad besteht aus verschiedenen Bauteilen. Das sind unsere Objekte. Wir müssen uns klar darüber werden, in wie kleine Grundbausteine (Objekte) wir das Fahrrad zerlegen wollen.

Teileliste (Objektliste):
Räder
Lenker
Rahmen
Gabel
Pedalen
Kettensatz
Kette
usw.

Gehen wir mal von dieser groben Einteilung aus. Natürlich kann man jedes der oben genannten Teile noch weiter zerlegen und macht es in der Praxis auch, wenn es sinnvoll ist (z.B. kann man Gewindebolzen definieren, da man sie sicher an den verschiedensten Stellen in einem Fahrrad verwenden kann.)

In unserem kleinen Beispiel hier wollen wir kein ganzes Fahrrad zusammen bauen, sondern wir nehmen uns exemplarisch Bauteile (Objekte) raus, die anschließend auch direkt miteinander zu tun haben.

Schauen wir uns doch mal das Antriebssystem an. Dazu gehört grob gesagt:
Pedalen
Kettensatz
Kette

Natürlich kann man auch noch die Räder dazu nehmen, aber irgendwo wird man immer einen Schnitt machen müssen, und wenn man in der Mathematik alles mit "Es sei..." definieren kann, dann können wir das beim Programmieren auch einfach machen. Nur sinnvoll muss es bleiben :wink:

Jedes dieser Bauteile hat Eigenschaften (Variablen) und Aufgaben (Methoden), die es auszeichnen. Auch hier stelle ich keine ganze Liste auf, sondern gehe wieder nur exemplarisch vor.

Die ausgewählten Teile haben Berührungspunkte, über die sie zusammen arbeiten können. Das sind die öffentlichen, von außen zugänglichen Komponenten. Das können sowohl Variablen, wie auch Methoden sein, die aus einem anderen Objekt raus gesetzt, ausgelesen oder aufgerufen werden.

Weiterhin hat jedes Bauteil Eigenschaften und Funktionen, die es nur für sich selbst benötigt, um zu funktionieren. Diese Gruppe ist privat. (Stichwort: Information Hiding)

In einem Posting weiter oben wurde noch protectet genannt. Da ich hier nicht auf Klassen, sondern auf Objekte eingehe (war doch etwas dumm), erkläre ich es nicht an dieser Stelle.

Grundsätzlich sollte man immer zusehen, soviel Information wie möglich vor anderen zu verbergen. Das verhindert viele Fehler und ermöglicht ganz klare Schnittstellen. Wozu soll es z.B. nötig sein, das die Pedale weiß, wo das Kettenschloß ist und wie man es öffnen kann?

Soweit das kleine und stark vereinfachte Prinzip von Objekten (Ich weiß, da fehlt noch jede Menge)


Um doch noch einmal was zu Klassen zu sagen:
Was ich oben gemacht habe war eigentlich gar kein Entwurf von Objekten, sondern von Klassen. Objekte werden erst von diesen Klassen abgeleitet. In den den meisten Programmiersprachen wird das mit "new..." gemacht.

Die Klasse liefert also nur eine Art Schablone und erst wenn ich ein Objekt von ihr ableite, stehen all die Variablen und Mehoden bereit, um mit Leben gefüllt zu werden.

Anhand des Fahrrades ist der Sinn dieses Vorgehens am besten an den Rädern zu erklären (gehen wir mal von einem Lauffahrrad aus, bei dem Hinter- und Vorderrad gleich sind :wink: )

Wir leiten uns von der Klasse "RAD" zwei Objekte ab: Hinterrad und Vorderrad. Diese beiden Objekte sind völlig unabhängig voneinander. Sie belegen als Objekt im Spiecher eigene Bereiche und wir können ihnen z.B. verschiedene Luftdrücke zuordnen.

Anhand der Räder könnte man auch ganz gut das Prinzip der Vererbung verdeutlichen, aber das spare ich mir an dieser Stelle, weil ein Neuling mit dem gesagten erstmal genug zu tun hat.

Um Objekte (Klassen) zu entwickeln, empfehle ich Rational Rose als Case Tool. Man wird nichts besseres finden. Um damit zu arbeiten, muss man sich allerdings schon sehr mit OOP auseinander gesetzt haben. Für einfache Klassen kann man auch erstmal von Hand vorgehen.

Ob man sich mit OOP auseinander setzt oder nicht hängt in erster Linie davon ab, wozu man Programmiert. Macht man es Beruflich oder möchte es in Zukunft machen, führt kein Weg daran vorbei. Programmiert man Java, führt kein Weg daran vorbei. Programmiert man C++ führen zwar Wege daran vorbei, aber spätestens wenn man in den Semiprofessionellen Bereich vordringt und beginnt mit Bibliotheken anderer zu arbeiten... Also alles in allem kann es nicht schaden sich dieses Werkzeuges zu bemächtigen.

Ich hoffe für nicht noch mehr Verwirrung gesorgt zu haben,

Agadir
  Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

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 an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
hochkommas in select abfrage.. ich raffe es nicht. hekto PHP Tipps 2005 31 22.01.2005 18:03


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:09 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.