php.de

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

PHP-Fortgeschrittene Arbeiten mit PHP ohne Einschränkungen

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 30.09.2006, 19:32  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 34.256
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 Klassen sinnvoll nutzen, Grundlegendes

Hallo,

ich beabsichtige, bzw. bin mitten drin, viele meiner bisherigen 'täglichen Programmieraufgaben' auf Klassen und Objekte umzumünzen. (Bevor diese Diskussion wieder losgeht: Die Abstraktion und Klarheit ist so wohl die bestmöglich mit PHP machbare).
Jedenfalls bin ich gerade dabei, mir einige Basis-Klassen zu erstellen, Frameworks sozusagen, stelle mir aber noch einige grundlegende Fragen, die tw. auch ins Projektmanagement gehen. Ich weiß, das meiste ist eine Frage des persönliche Geschmacks, aber vielleicht hat ja einer n paar Anregungen oder Erfahrungswerte zu folgenden Fragen:

- Wie organisier ich den Aufbau meiner Includes für einzelne Klassen. Am besten in einem gemeinsamen Verzeichnis? Und mit absoluter Pfadangabe beim Include?

- Damit verbunden, wo binde ich Basisklassen von abgeleiteten Klassen ein, im Script das die abgel. Klasse instanziert oder bindet die abgel. ihre Basisklasse selbst ein, ist Redundanz via require_once() für jede abgeleitete Klasse sinnvoll? Wenn ja benötige ich wieder eine Bestimmung
des Pfades der Basisklasse.

- Welche Ressourcen setzt ihr als gegeben voraus? Z.B. Übergabeparameter an den Konstruktor? Ist es sinnvoll, sozusagen einen Selbsttest der Klasse auf Ressourcen wie benötigte (externe) Funktionen oder das Setting bestimmter globaler Variablen einzubauen um Fehler des Programmierers auszuschließen (nicht zu reden von Nutzereingaben, DB Handler und dergleichen versteht sich von selbst)

- Wie handhabt ihr Fehlermanagements von Objekten, nutzt ihr eigene Fehlernummern und wenn scriptweit oder klassenweite? Meiner Meinung nach reicht der Spielraum von trigger_error () und co nicht wirklich aus, um auf bestimmte Ereignisse zu reagieren.

Bin gespannt auf eure Ideen und Anregungen.
Gruß nikosch
nikosch ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 30.09.2006, 22:08  
Erfahrener Benutzer
 
Registriert seit: 18.07.2004
Beiträge: 2.162
PHP-Kenntnisse:
Fortgeschritten
Basti
Standard Re: Klassen sinnvoll nutzen, Grundlegendes

Zitat:
Zitat von nikosch77
- Wie organisier ich den Aufbau meiner Includes für einzelne Klassen. Am besten in einem gemeinsamen Verzeichnis? Und mit absoluter Pfadangabe beim Include?
Wichtig hierbei ist die Entscheidung, ob du wirklich ein Framework bauen möchtest der nur eine möglichst universelle Klassen-Bibliothek, wie z.B. PEAR, ezComponents, Zend-Framework.

Im einfachsten Fall machst du je Klasse ein require_once() je benötiter Klasse mit relativem Pfad zu deinem lib-Verzeichnis und ergänzt den include_path zentral um eben dieses Verzeichnis.

In einem Framework kannst du auch sehr fein von __autoload() gebrauch machen. Weiter kannst du gehen z.B. mit einer Funktion, wie Prado::using().

Interessant in dem Zusammenhang der Themenkomplex "Inversion Of Control" bzw. "Dependency Injection":

http://www.martinfowler.com/articles/injection.html

Gibt es natürlich auch in der PHP-Welt, hab aber grad keinen Link ... doch, schu dir mal "Phemto" oder so an.

Zitat:
- Damit verbunden, wo binde ich Basisklassen von abgeleiteten Klassen ein, im Script das die abgel. Klasse instanziert oder bindet die abgel. ihre Basisklasse selbst ein, ist Redundanz via require_once() für jede abgeleitete Klasse sinnvoll? Wenn ja benötige ich wieder eine Bestimmung
des Pfades der Basisklasse.
Wie geschrieben: Jede Klasse bindet ein, was sie benötigt. Und, require_once ist wohl ziemlich lahm aber in dem Punkt sicher am flexibelsten, da du keine weiteren Funktionen/Klassen/Objekte brauchst, sondern nur eben einen korrekt gesetzten include_path(). Hängt eben davon ab, was du bauen willst. Unit-Testing und Mock-Objects sind an dem Punkt auch ein Kriterium.

Zitat:
- Welche Ressourcen setzt ihr als gegeben voraus? Z.B. Übergabeparameter an den Konstruktor? Ist es sinnvoll, sozusagen einen Selbsttest der Klasse auf Ressourcen wie benötigte (externe) Funktionen oder das Setting bestimmter globaler Variablen einzubauen um Fehler des Programmierers auszuschließen (nicht zu reden von Nutzereingaben, DB Handler und dergleichen versteht sich von selbst)
Globale solltest du soweit möglich vermeiden. Als Globals sowieso, als Singletons und statische Objekte meiner (jetzigen) Meinung nach auch. Via Type Hinting kannst du festlegen, welches Interface ein Parameter impelemtieren soll.

Ansonsten verstehe ich deine Frage, glaub ich, nicht ganz. Sinnvoll ist es natürlich immer, die Abhängigkeiten so weit als möglich zu reduzieren und eben auf Interfaces zu verlagern. Aber wie weit du da gehen willst und kasst hängt von deinen Anfordrungen ab.

Zitat:
- Wie handhabt ihr Fehlermanagements von Objekten, nutzt ihr eigene Fehlernummern und wenn scriptweit oder klassenweite? Meiner Meinung nach reicht der Spielraum von trigger_error () und co nicht wirklich aus, um auf bestimmte Ereignisse zu reagieren.
Ist auch wieder eine Frage, wie weit du universal bleiben willst oder dich konkret festlegen willst. Man kann in PHP den Error Handler definieren, also ist trigger_error() an sich keine schlechte Sache. Fehlernummern taugen mir nicht. Ich hab gerne einfach den Code vor mir und nicht noch irgendwelche Tabellen auf meinem Schreibtisch liegen. Lies dich mal in Exceptions ein.

Viel Spaß - du wirst den Schritt nicht bereuen, dich wahrscheinlich hinterher eher fragen, wie du die ganze Zeit anders programmieren konntest.

Basti
Basti 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

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
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
[Erledigt] PHP 4 - Klassen? patr1k PHP Tipps 2005 10 18.11.2005 10:48
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
Externe Referenzen in Klassen nutzen PHP Tipps 2004 3 16.08.2004 21:10
Klassen in PHP PHP Tipps 2004 4 12.08.2004 13:17
Sessions in Klassen benutzen zwelch PHP Tipps 2004 2 09.08.2004 08:54
Klassen?! PHP Tipps 2004 14 03.06.2004 17:33

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php klassenprogrammierung, klassenprogrammierung php, php mit klassen arbeiten, php klasse sinnvoll, php klassen sinnvoll, php klassenweite variablen, php sinnvolle klassen, php basisklasse, php objekte sinnvoll, php basis klasse, wie binde ich php klassen ein, php klassenweite variable, php klassen sinvoll nutzen, klassendatei include php, wie binde ich bei html klassen ein, php sinnvoll auf homepage nutzen, php sinnvolle klassenprogrammierung, php funktionen als klasse sinvoll, sinnvolle php klassen, php sinnvoll nutzen

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