php.de

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

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

Antwort
 
LinkBack (1) Themen-Optionen Bewertung: Bewertung: 2 Stimmen, 4,50 durchschnittlich.
Alt 17.10.2008, 22:32  
Moderator und Wett-König
 
Benutzerbild von dr.e.
 
Registriert seit: 21.05.2008
Beiträge: 3.629
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

Hallo Andy,

ich kann dir leider nicht helfen, da ich das Buch nicht kenne. Solltest du dich für das APF interessieren, kann ich dir gerne die Intension und Verwendung der Registry erläutern.
__________________
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
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 17.10.2008, 23:42  
Erfahrener Benutzer
 
Registriert seit: 06.09.2008
Beiträge: 189
#Avedo befindet sich auf einem aufstrebenden Ast
Standard

Wie wird denn das Registry-Design-Pattern beim APF umgesetzt. Ich denke mal dass die Umsetzung zumindest an das Pattern angelehnt ist. Im allgemeinen verstehe ich ja auch den Sinn (glaube ich), aber leider kann ich eben nicht verstehen, wie die Trennung in SessionRegistry und Registry zu stande kommt. Eine allgemeine Erläuterung des Patterns würde mir schon reichen. Schau mir natürlich auch gern die APF-Komponente an. Allerdings geht es mir hier eigentlich erstmal nur um das allgemeine Verständnis des Pattern.
MfG, Andy
__________________
I'm so tired of slitting the throats of people calling me a violent psychopath.
#Avedo ist offline   Mit Zitat antworten
Alt 18.10.2008, 10:20  
Moderator und Wett-König
 
Benutzerbild von dr.e.
 
Registriert seit: 21.05.2008
Beiträge: 3.629
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

Hallo Andy,

Zitat:
Wie wird denn das Registry-Design-Pattern beim APF umgesetzt.
Die Registry ist eine Klasse, die über die Methoden register() und retrieve() Werte unterhalb eines Namespaces organisieren kann. Um die Registry überall in gleichem Maße zur Verfügung zu haben ist die Registry als Singleton zu behandeln. Möchtest du Werte zur Verfügung stellen, passiert das mit einem

PHP-Code:
$Reg = &Singleton::getInstance('Registry');
$Reg->register('my::namespace','mykey','myvalue'); 
Die Abfrage funktioniert äquivalent dazu per

PHP-Code:
$Reg = &Singleton::getInstance('Registry');
echo 
$Reg->retrieve('my::namespace','mykey'); 
Dabei kann der Wert beliebig sein (String, Array, Objekt, ...). Weiterhin wird die Registry als Mittel zur globalen Konfiguration verwendet. Einige Komponenten des Frameworks benötigen beispielsweise Informationen darüber, in welchem Umfeld und mit welchem Kontext die Applikation betrieben wird. Diese Parameter werden in der Registry gespeichert und später von Core-Komponenten wieder bezogen.

Zitat:
Im allgemeinen verstehe ich ja auch den Sinn (glaube ich), aber leider kann ich eben nicht verstehen, wie die Trennung in SessionRegistry und Registry zu stande kommt.
Das ist doch ganz einfach: die SessionRegistry hat über Requests hinweg und innerhalb einer PHP-Session bestand, die Werte der "normalen" Registry sind nur innerhalb eines Requests verfügbar. Was du verwendest, hängt nun vom Anwendungsfall ab. Du könntest dir z.B. überlegen, eine Business-Komponente in eine SessionRegistry zu legen, damit die Initialisierung nicht bei jedem Request erfolgen muss. Diese Performance-Optimierung ist übrigens auch mit der APF-Implementierung der SessionSingleton-Komponente möglich. Mit dieser wird eine Komponente auch über die Session hinweg gehalten. Die Verwendung unterscheidet sich dabei nicht von der des Singleton-Pattern.

Zitat:
Allerdings geht es mir hier eigentlich erstmal nur um das allgemeine Verständnis des Pattern.
Da würde ich dir wirklich empfehlen, ein Buch über Pattern und deren Anwendung zu lesen. Das hilft nicht nur dir, sondern auch uns, denn das komplette Thema Pattern hier in einem Thread zu diskutieren macht zwar Spass, aber hinterher hat dieser Thread 500 Seiten. Nicht, dass ich mich dagegen wehre, aber dann hast du etwas kompaktes zum Nachlesen. In die Diskussion werde ich mich jedoch gerne einbinrgen.

Als Einstieg würde ich dir das Buch "Patterns of enterprise application architecture" von Martin Fowler (bitte auf englisch lesen) empfehlen. Da stehen nicht nur die Pattern beschrieben, sondern auch Anwendungsfälle und wann ein Pattern besser nicht verwendet werden sollte.

Zitat:
Schau mir natürlich auch gern die APF-Komponente an.
Um dir hierbei ein bischen unter die Arme zu greifen kannst du mal auf den folgenden Seiten vorbei schauen:

* Adventure PHP Framework - Klassenreferenz Registry
* Adventure PHP Framework - Klassenreferenz Singleton SessionSingleton
* Adventure PHP Framework - Konfiguration

Die Seiten beschreiben, wie die Registry und das Thema SessionSingleton angeboten wird und verwendet werden kann.
__________________
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 20.10.2008, 00:20  
Erfahrener Benutzer
 
Registriert seit: 06.09.2008
Beiträge: 189
#Avedo befindet sich auf einem aufstrebenden Ast
Standard

Danke für deine Hilfe und die Links. Wie bereits erwähnt, habe ich mir das Buch PHP Design Pattern zugelegt. Dies arbeite ich zur Zeit auch Schritt für Schritt durch und versuche die verschiedenen Pattern, ihr Einsatzgebiet und ihre Vor- und Nachteile zu verstehen. Zudem werde ich, wenn ich das richtig gesehen habe, Design Pattern auch in meiner Informatik I Vorlesung anschneiden. Dort wird dieses Thema natürlich etwas allgemeiner und losgelöst von Programmiersprachen und Anwendungsbeispielen behandelt. In diesem Thread erhoffe ich mir Antworten auf offen gebliebene Fragen. Zu meinem Erfreuen, hast du dich ja bereits als motivierter Diskussions-Partner erklärt. Damit ich aber nicht nur bei der Theorie der einzelnen Pattern hängen bleibe, werde ich, nach Vollendung meines momentanen Projekts, ein kleines und schlichtes Blog-System strukturieren und schreiben, in dem ich die verschiedenen Pattern gezielt einsetzen werde, soweit es eben sinnvoll ist. Learning by doing - wie man so schön sagt - ist für mich persönlich, ein sehr praktikables und angenehmes System. Dafür werde ich jedoch, wenn Fragen oder Probleme auftreten, einen neuen Thread bemühen. Ich hoffe, dass ich dann auch dort auf eure Unterstützung zählen kann. Danke nochmal für die bisherige Hilfe. Werde mich sicher bald mit neuen Fragen und Ansätzen zurück melden.
MfG, Andy
__________________
I'm so tired of slitting the throats of people calling me a violent psychopath.
#Avedo ist offline   Mit Zitat antworten
Alt 20.10.2008, 09:11  
Moderator und Wett-König
 
Benutzerbild von dr.e.
 
Registriert seit: 21.05.2008
Beiträge: 3.629
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

Hallo Andy,

Zitat:
Learning by doing - wie man so schön sagt - ist für mich persönlich, ein sehr praktikables und angenehmes System.
Was du nicht vergessen solltest: ein fertiges Framework einzusetzen schützt dich keineswegs davor, Pattern verstehen und anwenden zu können. Softwaredesign hat zunächst erst ein mal nichts mit einem Framework zu tun, sondern kommt von Dir. Aus diesem Grund solltest du vielleicht in einer ruhigen Minute nachdenen, ob es nicht doch sinnvoll ist, Teile nicht selbst zu schreiben, sondern dich auch erfahrene Entwickler zu verlassen. Wenn du dir beispielsweise das Gästebuch-Tutorial unter Adventure PHP Framework - Gaestebuch Tutorial ansiehst, ist dort ungefähr 20% Framework-spezifisch, der Rest des Designs ist "frei".

Es geht mir nicht darum dir dein Einsatz eines fertigen Frameworks mit aller Gewalt schmackhaft zu machen, ich möchte dir nur mit auf deinen Weg geben, dass Software-Design != Framework ist und dass man auch und gerade beim Einsatz eines Frameworks noch viel über Software-Design und -Architektur lernen muss!
__________________
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 23.10.2008, 20:14  
Benutzer
 
Registriert seit: 19.10.2008
Beiträge: 44
tohms befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von phpdummi Beitrag anzeigen
Da man immer gegen Schnittstellen programmieren sollte...
Hier muss ich jetzt mal einsteigen
Ich finde dieses Thema hier super und interessant, denn mit OOP und Design Patterns in PHP beschäftige ich mich derzeit auch recht intensiv. Irgendwie hatte ich aber die 5er Version etwas verschlafen und hinke nun hinterher.
Ich weiß die Frage ist Off-Topic und Du darfst mir auch gern eine Message schicken, aber wo genau liegt der Vorteil einer Schnittstelle für einen "Stand-Alone"-Programmierer? Irgendwie will das nicht ganz in meinen Kopf und ich würde mich freuen, wenn Du oder jemand anderes hier mir das mal erläutern könnte
tohms ist offline   Mit Zitat antworten
Alt 23.10.2008, 23:37  
Moderator und Wett-König
 
Benutzerbild von dr.e.
 
Registriert seit: 21.05.2008
Beiträge: 3.629
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:
Ich weiß die Frage ist Off-Topic und Du darfst mir auch gern eine Message schicken, aber wo genau liegt der Vorteil einer Schnittstelle für einen "Stand-Alone"-Programmierer? Irgendwie will das nicht ganz in meinen Kopf und ich würde mich freuen, wenn Du oder jemand anderes hier mir das mal erläutern könnte
Ganz einfach:

* Wiederverwendbarkeit
* Austauschbarkeit von Komponenten
* Einfacheres - und auf Komponenten basierendes - Design
* Einfache Wartbarkeit
* Geringe Fehleranfälligkeit wegen geringer Komplexität
* ...

Weiter Punkte gefällig?
__________________
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 23.10.2008, 23:40  
Supermoderator HD
 
Benutzerbild von Manko10
 
Registriert seit: 16.03.2008
Beiträge: 8.401
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

Vereinfachte Typenprüfung übergebener Objekte / Typehinting nicht zu vergessen.
__________________
Refining Linux Advent Calendar series “24 Outstanding ZSH Gems
Manko10 ist offline   Mit Zitat antworten
Alt 24.10.2008, 10:33  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 34.048
PHP-Kenntnisse:
Fortgeschritten
nikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz sein
Standard

Schließlich auch die Schere im Kopf, weil man sich vorher Gedanken über das Design machen muß und nicht später in Versuchung kommt, hier und dort wieder vetwas anzubauen. Ist vielleicht sogar der wichtigste Punkt.
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline   Mit Zitat antworten
Alt 24.10.2008, 11:10  
Benutzer
 
Registriert seit: 19.10.2008
Beiträge: 44
tohms befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von nikosch Beitrag anzeigen
Schließlich auch die Schere im Kopf, weil man sich vorher Gedanken über das Design machen muß und nicht später in Versuchung kommt, hier und dort wieder vetwas anzubauen. Ist vielleicht sogar der wichtigste Punkt.
Ja, also der Punkt leuchtet mir ein. Schätze mal es ist einfach wie immer: anwenden und schätzen lernen. Werde bei meinem nächsten Projekt mal damit anfangen.

Danke für die Infos an alle!
tohms ist offline   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

LinkBacks (?)
LinkBack to this Thread: http://www.php.de/software-design/48056-strukturierung-groessyerrer-projekte.html
Erstellt von For Type Datum
Adventure PHP Framework - Literatur This thread Refback 02.12.2008 15:17

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Suche kleinere Projekte Gawain Beitragsarchiv 1 24.07.2008 20:09
Zend Studio und Projekte breaker PHP-Fortgeschrittene 0 26.05.2008 13:51
Partner für neuartige online Projekte gesucht iSi Trash 0 25.03.2006 21:22
Strukturierung einer kleinen DB c-f-g Datenbanken 6 24.03.2006 09:54
Strukturierung modularer Website mit CleanUrls ssm PHP Tipps 2006 20 22.03.2006 16:49
Mach Websiten und oder ganze Projekte ClaBo3 Trash 26 06.02.2006 15:12
[Erledigt] Projekte effektiv Planen? PHP Tipps 2005 17 18.10.2005 16:06
Programierer für projekte gesucht! Beitragsarchiv 3 19.09.2005 16:20
mehrere projekte auf 1 Datenbank möglich? PHP Tipps 2005-2 5 17.07.2005 17:20
Erfahrener Typo3-Entwickler sucht neue Projekte Beitragsarchiv 1 16.07.2005 14:53
S: Programm, Projekte verwalten Flor1an Beitragsarchiv 5 17.04.2005 12:12
Partner für Projekte Beitragsarchiv 5 03.03.2005 12:23
Freelancer: PHP Entwickler sucht Projekte phpprofi Beitragsarchiv 4 18.02.2005 17:16
Projekte nachträglich auf Klassen und Objekte umstellen??? PHP-Fortgeschrittene 7 10.12.2004 15:33
Freelancer sucht neue Projekte Beitragsarchiv 0 12.08.2004 09:31

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
zitat strukturierung, software zur strukturierung, php struckturierung, \immer gegen schnittstellen\, projekte organisieren, php framework mehrere projekte, registry pattern php session, software architektur, tutorial singleton php

Alle Zeitangaben in WEZ +1. Es ist jetzt 16:25 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