php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > PHP Developer Forum
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 22-03-2008, 19:26
kevin-k
 Newbie
Links : Onlinestatus : kevin-k ist offline
Registriert seit: Dec 2004
Beiträge: 120
kevin-k ist zur Zeit noch ein unbeschriebenes Blatt
Standard Allgemeine Fragen, Rückgabewerte, Errorlogging

Hallo,

Ich stehe gerade vor einem Problem, in dem ich nicht weiterkomme, bzw. noch keine "durchdachte" Lösung gefunden habe.

Folgendes Problem:
Ich habe mehrere Klassen, die ich "überwachen" möchte, d.h. ich möchte wissen, wenn manche Klassen einen bekannten, möglichen Fehler zurückgeben.

Beispiel:
Klasse zu Übertragung von Dateien mittels XMLRPC.
Wird eine Datei mittels XMLRPC übertragen, so können viele, bekannte und mögliche Fehler auftreten, z.b.:
- Server nicht erreichbar
- Datei falsch übermittelt (Hash)
- etc.

Diese Fehler möchte ich nun abfangen und loggen, damit ich diesen Fehler später untersuchen und beheben kann.

Derzeit habe ich mir folgendes überlegt:
Ich habe eine Liste von möglichen Errorcodes, die beschreiben, was der Fehler ist und wo dieser Auftreten kann:

PHP-Code:

# DB
$_e[1] = array("DB_CONNECTION_FAILED""db connection failed"ERR_CRITICAL_ERROR);

# Exec
$_e[50] = array("EXEC_ERRORCODE_FALSE""return code was not 0"ERR_NORMAL); 
Dabei hat jede Klasse einen eigenen Error-ID Bereich.

In jeder Klasse erstelle ich nun die Abfragen um die Fehler zu erkennen, und übergebe eine Error-ID aus $_e.

An jedem kritischem Punkt einer Methode, rufe ich die errorLog() Funktion auf, der ich ebenfalls eine Error-ID übergebe.
Anhand der Stärke des Fehlers (ERR_CRITICAL_ERROR), entscheide ich in der errorLog()-Funktion, was nun passiert (SMS/eMail-Benachrichtigung, etc).

Was mich nun gründsätzlich stört, ist, das in jeder Methode immer eine extra Funktion drinnen hab, und ansich nur an den Stellen, in der wirklich ein Kritischer-Fehler entstehen kann.

Ich möchte nun eine Art Überwachung, bei der ich jeden Rückgabewert nachvollziehen kann und dynamisch entscheiden kann, welche Fehlerstärke nun was auslößt.
Und zwar denke ich mir, das jeder Rückgabewert einer Methode, *immer* durch eine errorLog()-Funktion läuft, und ich so anhand der übermittelten Error-ID entscheiden kann, was nun kritisch ist, und was nicht.


Ich weiß, ist alles ein wenig schwierig zu erklären, ich hoffe ich habe es soweit verständlich erklärt und ihr könnt nachvollziehen, was ich vorhabe.

Was meint Ihr? Was gibt es sonst für Lösungen?
Wie regelt Ihr das, wenn eine Methode mehrere Rückgabewerte zurückgeben kann?

Und gibt es eine Möglichkeit, direkt in einer Methode/Funktion den eigenen Klassen/Methoden/Funktions-Namen anzuzeigen oder gar die aktuelle Zeile auszugeben, in der sich der Parser gerade findet? (Bei parse-errors zeigt PHP ebenfalls eine Zeile an).

Vielen Dank.

Gruß
Kevin

Geändert von kevin-k (22-03-2008 um 19:42 Uhr)
Mit Zitat antworten
  #2 (permalink)  
Alt 22-03-2008, 19:49
Benutzerbild von onemorenerd onemorenerd
  Moderator
Links : Onlinestatus : onemorenerd ist offline
Registriert seit: Mar 2005
Ort: Berlin
Beiträge: 9.471
onemorenerd wird schon bald berühmt werdenonemorenerd wird schon bald berühmt werden
Standard

Exceptions?
Mit Zitat antworten
  #3 (permalink)  
Alt 22-03-2008, 22:35
TobiaZ
  Moderator
Links : Onlinestatus : TobiaZ ist offline
Registriert seit: Jan 2001
Ort: MUC und MGL, Germany
Beiträge: 34.421
Blog-Einträge: 1
TobiaZ befindet sich auf einem aufstrebenden Ast
Standard

Japp, habs Posting auch gar nicht bis zum ende durchgelesen, weil ich erst gucken wollte, ob der Hinweis auf Exceptions nicht schon gegeben wurde.
__________________
ERST LESEN: Unsere Regeln. | Ich hab schon Pferde kotzen sehn!

READ THIS: Strings richtig trennen/verbinden | JOINs, das leidige Thema | Wegwerf E-Mail Adressen

Ich werde keinen privaten 1:1 Support leisten, außer ich biete ihn ausdrücklich an.

Wenn man sich selbst als "Noob" bezeichnet, sollte man die Finger davon lassen.
Wenn man gewillt ist daran etwas zu ändern, lernt man Grundlagen!
Mit Zitat antworten
  #4 (permalink)  
Alt 23-03-2008, 00:32
kevin-k
 Newbie
Links : Onlinestatus : kevin-k ist offline
Registriert seit: Dec 2004
Beiträge: 120
kevin-k ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Hi,

Hm, warum ist mir das vorher nicht eingefallen :S.
Danke, werde mir das nochmals genauer ansehen.

Nur eine Allgemeine Frage:
Wie handelt das mit Rückgabewerten?
Wie gibt man am besten Fehlerwerte zurück?


Danke.

Gruß
Kevin
Mit Zitat antworten
  #5 (permalink)  
Alt 23-03-2008, 00:39
TobiaZ
  Moderator
Links : Onlinestatus : TobiaZ ist offline
Registriert seit: Jan 2001
Ort: MUC und MGL, Germany
Beiträge: 34.421
Blog-Einträge: 1
TobiaZ befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Wie handelt das mit Rückgabewerten?
Ziemlich ungenaue Fragestellung. Aber vielleicht beantwortet debug_backtrace deine Frage.

Zitat:
Wie gibt man am besten Fehlerwerte zurück?
Genauso unpräzise. Welche Fehlerwerte willst du wohin zurückgeben?

Ich würde vorschlagen du informierst dich erstmal grundlegend und stellst im Anschluss noch mal ne konkrete Frage, falls die dann überhaupt noch offen ist.
__________________
ERST LESEN: Unsere Regeln. | Ich hab schon Pferde kotzen sehn!

READ THIS: Strings richtig trennen/verbinden | JOINs, das leidige Thema | Wegwerf E-Mail Adressen

Ich werde keinen privaten 1:1 Support leisten, außer ich biete ihn ausdrücklich an.

Wenn man sich selbst als "Noob" bezeichnet, sollte man die Finger davon lassen.
Wenn man gewillt ist daran etwas zu ändern, lernt man Grundlagen!
Mit Zitat antworten
  #6 (permalink)  
Alt 23-03-2008, 00:58
kevin-k
 Newbie
Links : Onlinestatus : kevin-k ist offline
Registriert seit: Dec 2004
Beiträge: 120
kevin-k ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Nehmen wir an, wir haben eine File-Upload Klasse. Diese Klasse kann verschiedene Fehler produzieren:
- Keine Datei angegeben
- Datei defekt
- Datei leer
- and so on

Was gebe ich als return-Wert der Methode an?
"Nur" false? Damit weiß ich jedoch noch nicht den Fehler.

Gebe ich nun -1, -2 zurück? Oder 1, 2? Oder einen String "empty file"?

Wie macht man es "richtig"?

Danke für debug_backtrace.
Mit Zitat antworten
  #7 (permalink)  
Alt 23-03-2008, 01:04
TobiaZ
  Moderator
Links : Onlinestatus : TobiaZ ist offline
Registriert seit: Jan 2001
Ort: MUC und MGL, Germany
Beiträge: 34.421
Blog-Einträge: 1
TobiaZ befindet sich auf einem aufstrebenden Ast
Standard

Das wiederum sind imho ganz normale Prüfungen. Da reicht ein

PHP-Code:
if(datei kapott$error 'Ihre Datei enthält Fehler'
schon ausreichen. Solche Fehler sollen ja schließlich nicht den Scriptabbruch zur folge haben, sondern dem User die Korrektur ermöglichen. (Stichwort: Affenformular)
__________________
ERST LESEN: Unsere Regeln. | Ich hab schon Pferde kotzen sehn!

READ THIS: Strings richtig trennen/verbinden | JOINs, das leidige Thema | Wegwerf E-Mail Adressen

Ich werde keinen privaten 1:1 Support leisten, außer ich biete ihn ausdrücklich an.

Wenn man sich selbst als "Noob" bezeichnet, sollte man die Finger davon lassen.
Wenn man gewillt ist daran etwas zu ändern, lernt man Grundlagen!
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre 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


PHP News

Die RIGID-FLEX-Technologie
Die RIGID-FLEX-TechnologieDie sogenannte "Flexible Elektronik" , oftmals auch als "Flexible Schaltungen" bezeichnet, ist eine zeitgemäße Technologie zum Montieren von elektronischen Schaltungen.

06.12.2018 | Berni

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni


 

Aktuelle PHP Scripte

ADSMAN V3 - Werbe-Manager ansehen ADSMAN V3 - Werbe-Manager

ADSMAN V3 - mehr als nur ein Bannermanager! Banner, Textanzeigen und PagePeel Manager! Mit ADSMAN PRO haben Sie die Marketinglösung für eine effektive und effiziente Werbeschaltung mit messbaren Ergebnissen. Unterstützt werden Bannerformate in beliebi

25.10.2018 virtualsystem | Kategorie: PHP/ Bannerverwaltung
PHP News und Artikel Script V2

News schreiben, verwalten, veröffentlichen. Dies ist jetzt mit dem neuen PHP News & Artikel System von virtualsystem.de noch einfacher. Die integrierte Multi-User-Funktion und der WYSIWYG-Editor (MS-Office ähnliche Bedienung) ermöglichen...

25.10.2018 virtualsystem | Kategorie: PHP/ News
Top-Side Guestbook

Gästebuch auf Textbasis (kein MySQL nötig) mit Smilies, Ip Sperre (Zeit selbst einstellbar), Spamschutz, Captcha (Code-Eingabe), BB-Code, Hitcounter, Löschfunktion, Editierfunktion, Kommentarfunktion, Kürzung langer Wörter, Seiten- bzw. Blätterfunktion, V

22.10.2018 webmaster10 | Kategorie: PHP/ Gaestebuch
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 08:22 Uhr.