php.de

Zurück   php.de > Webentwicklung > Software-Design

Software-Design Diskussionen auf Profi-Niveau: PHP Lösungen auf konzeptioneller Ebene

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 25.05.2009, 21:45  
Neuer Benutzer
 
Registriert seit: 25.05.2009
Beiträge: 17
BlackJack01090 befindet sich auf einem aufstrebenden Ast
Standard Mehrere Klassen verknüpfen

Hallo,

nachfolgend mein erster Beitrag in diesem Forum Ich programmiere schon seit längerem PHP und Klassen sind mir ein Begriff und werden von mir bevorzugt. Auch die Neuerungen in PHP5 sind mir bekannt. Da ich meist alles in einer Klasse oder in voneinander abhängigen Klasen in Form von Eltern / Kind Klassen entwickelt habe, kam bei mir nie eien Frage zu mehreren Klassen auf. Nun möchte ich aber alle Funktionen in Klassen ausgliedern, da mein nächsten (hobbybedinngtes) Projekt sehr umfangreich ist und es zu jeder Funktion eine eigene Klasse geben soll. Beispiel: DB-Klasse, ACCESS-Klasse, TEMPLATE-Klasse, usw. Klar gbt es viele Informationen im www dazu aber so ganz genau das was ich mir vorstelle hatte ich noch nicht gefunden. Jede Klasse soll andre Klassen verwenden können. Aufgerufen wird aber nur die Hauptklasse z.B. Ich rufe MAIN auf, diese überprüft standatroutinen mit der ACCESS Klasse, welche sich aber der DB Klasse bedient. Nach erfolgreicher Überprüfung soll nun die TEMPLATE Klasse seien Arbeit verrichten. wleche sich wieder der DB Klasse bedient.

Ich hatte erst gedacht ich binde die Klassen als Interface ein. Nur leider konnte ich die Klasen nicht untereinander verknüpfen. Wenn ich die alle Public setze, werden mehrere Instanzen geladen (bei eine DB Klasse nicht so gut). Ich habe auch einiges über Pattern und Singelton gelesen, aber ich weis immernoch nicht wie genau ich alle Klassen in die MAIN einbinden kann und die eingebundenen Klassen nun untereinander in der sleben Instanz arbeiten können. Vielleicht kann mir da ein "Profi" oder auch "Hobbyprofi" einen Tipp geben. Habs leider noch nicht dazu gebracht Informatik zu studieren und leider hapert es jetzt ein wenig

Ich danke Euch

Gruß

BJ
BlackJack01090 ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 25.05.2009, 22:50  
Supermoderator HD
 
Benutzerbild von Manko10
 
Registriert seit: 16.03.2008
Beiträge: 8.709
PHP-Kenntnisse:
Fortgeschritten
Manko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende Zukunft
Standard

Hallo,

für eine anspruchsvolle aber gute Einführung in OOP kann ich dir folgende Seite empfehlen: Professionelle Softwareentwicklung mit PHP 5
Anschließend loht sich unbedingt die Lektüre des Werks »PHP Design Patterns« von Stephan Schmidt, erschienen im O’Reilly-Verlag.
__________________
Refining Linux Advent Calendar series “24 Outstanding ZSH Gems
Manko10 ist offline   Mit Zitat antworten
Alt 25.05.2009, 23:01  
Moderator und Wett-König
 
Benutzerbild von dr.e.
 
Registriert seit: 21.05.2008
Beiträge: 3.657
PHP-Kenntnisse:
Fortgeschritten
dr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblick
dr.e. eine Nachricht über Skype™ schicken
Standard

Hi,

grundsätzlich bedeutet Klassen schreiben nicht automatisch objektorientiert zu entwickeln. Gerade der Ansatz

Zitat:
[..] nun möchte ich aber alle Funktionen in Klassen ausgliedern,[..]
ist ein Rückschritt in die Informatik-Steinzeit bzw. führt unweigerlich dazu, dass wir wieder in Assembler entwickeln. Objektorientierung - und daher "kommen" Klassen - ist weit mehr als das. Es geht darum, die Realität in Objekte und deren Funktionen und Beziehungen abzubilden. Um das bewerkstelligen zu können, solltest du dir zunächst über die Anforderungen deiner Software Gedanken machen. Das Design und später die Umsetzung sind erst der zweite Schritt im Software-Lifecycle.

Da du
Zitat:
DB-Klasse, ACCESS-Klasse, TEMPLATE-Klasse,
ansprichst: diese Komponenten sind keinesfalls zum Selbstzweck da, sondern bei der Erstellung der Komponenten hat sich irgendjemand Gedanken über Abstraktion, Kapselung und Wiederverwendbarkeit - was zweifelsohne Anforderungen sind - gemacht.

Daher kann ich dir nur den Rat geben, deine Anforderungen aufzuschreiben und dann mit uns hier über das konkrete Design (Klassen und deren Beziehungen und Funktionen) und die Implementierung zu sprechen. Solltest du das PHPJournal aboniert haben erscheint dort in der nächsten Ausgabe ein Artikel über genau diesen Sachverhalt. Quintessenz werden die goldenen Regeln in meinem Footer sein - soviel kann ich schon mal verraten.

Viele Grüße,
Dr.E.
__________________
Viele Grüße,
Dr.E.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1. Think about software design before you start to write code!
2. Discuss and review it together with experts!
3. Choose good tools (-> Adventure PHP Framework (APF))!
4. Write clean and reusable software only!
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
dr.e. ist offline   Mit Zitat antworten
Alt 25.05.2009, 23:08  
Supermoderator HD
 
Benutzerbild von Manko10
 
Registriert seit: 16.03.2008
Beiträge: 8.709
PHP-Kenntnisse:
Fortgeschritten
Manko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende Zukunft
Standard

Nagut, wenn wir schon dabei sind, ihn zu überfallen, dann gebe ich nochmal meinen Senf dazu, indem ich Dr. Es Worte mit einem weiteren Link ergänze: Galileo Computing :: Praxisbuch Objektorientierung
__________________
Refining Linux Advent Calendar series “24 Outstanding ZSH Gems
Manko10 ist offline   Mit Zitat antworten
Alt 26.05.2009, 07:51  
Moderator und Wett-König
 
Benutzerbild von dr.e.
 
Registriert seit: 21.05.2008
Beiträge: 3.657
PHP-Kenntnisse:
Fortgeschritten
dr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblick
dr.e. eine Nachricht über Skype™ schicken
Standard

Zitat:
Nagut, wenn wir schon dabei sind, ihn zu überfallen,[..]
Ich zittiere nur den Spruch meines Arbeitskollegen (den ich sehr schätze), denn an vielen Stellen wird zwar von OO gesprochen, aber funktional programmiert. Und auf Assembler habe ich genausowenig Lust wie du.
__________________
Viele Grüße,
Dr.E.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1. Think about software design before you start to write code!
2. Discuss and review it together with experts!
3. Choose good tools (-> Adventure PHP Framework (APF))!
4. Write clean and reusable software only!
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
dr.e. ist offline   Mit Zitat antworten
Alt 26.05.2009, 09:54  
Neuer Benutzer
 
Registriert seit: 25.05.2009
Beiträge: 17
BlackJack01090 befindet sich auf einem aufstrebenden Ast
Standard

Vielen Dank für eure Tipps. Mir war schon klar das OOP mehr als nur Klassen und funktionne sind und ich wusste das dieser Schritt nun ein etwas großer Schritt ist, wenn man php nur als Hobby betrachtet. Ich danke euch für die vielen Hinweise und werde mich nochmal melden nachdem ich mich weiter eingelesen habe und ein ersten Design fertig habe.

Vielen Dank

Gruß

BJ
BlackJack01090 ist offline   Mit Zitat antworten
Alt 26.05.2009, 10:56  
Supermoderator HD
 
Benutzerbild von Manko10
 
Registriert seit: 16.03.2008
Beiträge: 8.709
PHP-Kenntnisse:
Fortgeschritten
Manko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende Zukunft
Standard

Zitat:
Ich zittiere nur den Spruch meines Arbeitskollegen (den ich sehr schätze), denn an vielen Stellen wird zwar von OO gesprochen, aber funktional programmiert.
Ja, das stimmt. Oft werden Klassen mit prozeduraler Denkweise verbunden und dann als OOP deklariert. Der TE weckte aber in mir nicht den Anschein, er hielte das, was er da schon tut wirklich für OO, zumal er das noch mit keinem Wort erwähnt hat.
__________________
Refining Linux Advent Calendar series “24 Outstanding ZSH Gems
Manko10 ist offline   Mit Zitat antworten
Alt 26.05.2009, 12:27  
Moderator und Wett-König
 
Benutzerbild von dr.e.
 
Registriert seit: 21.05.2008
Beiträge: 3.657
PHP-Kenntnisse:
Fortgeschritten
dr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblick
dr.e. eine Nachricht über Skype™ schicken
Standard

Zitat:
Zitat von BlackJack01090 Beitrag anzeigen
Ich danke euch für die vielen Hinweise und werde mich nochmal melden nachdem ich mich weiter eingelesen habe und ein ersten Design fertig habe.BJ
Ich hoffe schon vorher - nämlich wenn die Anforderungen stehen?!
__________________
Viele Grüße,
Dr.E.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1. Think about software design before you start to write code!
2. Discuss and review it together with experts!
3. Choose good tools (-> Adventure PHP Framework (APF))!
4. Write clean and reusable software only!
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
dr.e. ist offline   Mit Zitat antworten
Alt 26.05.2009, 15:54  
Erfahrener Benutzer
 
Benutzerbild von phpdummi
 
Registriert seit: 06.06.2008
Beiträge: 1.631
PHP-Kenntnisse:
Anfänger
phpdummi ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Ich fände es nicht schlecht mal an einem konkreten Beispiel zu sehen was du wie verknüpfen möchtest. Die passenden Design Pattern bekommst du dann kostenlos von uns um die Ohren gehauen
__________________
"Nobody is as smart as everybody" - Kevin Kelly
— The best things in life aren't things
phpdummi ist offline   Mit Zitat antworten
Alt 26.05.2009, 20:43  
Moderator
 
Benutzerbild von Chriz
 
Registriert seit: 11.05.2008
Beiträge: 6.269
Chriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer Anblick
Standard

Zitat:
Zitat von dr.e. Beitrag anzeigen
denn an vielen Stellen wird zwar von OO gesprochen, aber funktional programmiert
Wie wahr. Ein Schritt um das zu verhindern ist meiner Meinung nach die Faustregel, dass eine Methode nicht mehr als 20 Zeilen haben sollte. Das ist zumindest schonmal ein Schritt dahin, ein Problem zu zerbröseln und in entsprechend passende Methoden oder gar eigene Objekte/Klassen auszulagern.
__________________
"Nuschel ich?" - "Was?"
Chriz ist gerade online   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
Modulare Programmierung - Klassen nur in Klassen Gültig iXtends Software-Design 6 26.05.2009 15:37
Klassen verknüpfen Lavalampe PHP-Fortgeschrittene 14 01.04.2009 22:05
[Erledigt] Klassen zur Laufzeit erzeugen theraipper PHP-Fortgeschrittene 16 10.10.2008 23:52
Klassen und externe Funktionen ? ssm PHP-Fortgeschrittene 17 18.07.2007 11:59
Fragen zu Klassen Kein Genie PHP Tipps 2006 3 08.05.2006 11:25
Sessions an includete Klassen übergeben Dr_Enquinox PHP Tipps 2006 4 29.04.2006 10:25
mit html klassen definieren und in php ausgeben PHP-Fortgeschrittene 4 16.01.2006 10:31
Klassen Fatal Error PHP Tipps 2005-2 3 19.10.2005 15:31
Klassen und OOP Problem PHP-Fortgeschrittene 3 08.09.2005 10:37
klassen und methoden anderer klassen in methoden.... PHP Tipps 2005 17 25.05.2005 09:46
Klassen PHP Tipps 2005 5 09.04.2005 18:51
Klassen in Klassen verwenden PHP Tipps 2005 5 23.02.2005 14:08
Klassen in PHP PHP Tipps 2004 4 12.08.2004 13:17
Klassen?! PHP Tipps 2004 14 03.06.2004 17:33

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php mehrere klassen, php klassen verbinden, php klassen verknüpfen, klassen verknüpfen, php 2 klassen verbinden, php zwei klassen, php klassen beziehungen, php mehrere klassen verbinden, mehrere klassen php, klassen verknüpfen php, php 2 klassen, mehrere php klassen, klassen verbinden php, php klassen beziehung, php verschiedene klassen, 2 klassen php, zwei klassen verknüpfen, mehrere klassen verbinden, php zwei classen, klasse und interface verknüpft

Alle Zeitangaben in WEZ +2. Es ist jetzt 00:34 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