Das heißt,
in einer Funktion die ich Aufrufe/Benutze, finde bei der Validierung ein Fehler statt.
Ich erstelle eine neue Exception mit den Fehlerdaten und kann Sie
nach der Ausführung der Funktion mit catch anzeigen lassen!?
Ich kann jedoch nicht mehrere Exceptions in einem Durchlauf definieren und catch'n !?
Das wäre sogesehen eine Funktion, welche viel Flexibler ist und somit
brauche ich bei einem Fehler oder auch bei KEINEM Fehler, keine err/msg etc. Daten mit übertragen.
Sehe ich das richtig?
Arraynamen "array['etc']" deklarieren
Einklappen
X
-
Ich bin mir da gar nicht so sicher.auch wenn ich persönlich der meinung bin, dass man sich erst mit prozeduraler programmierung auskennen sollte, bevor man sich auf oop stürzt.
Kann da allerdings auch nicht objektiv sein.
Einen Kommentar schreiben:
-
-
Und das herumgetue mit den Arrays empfindest du nicht als unübersichtlich? Für mich wär das ein Horror. Und für Exceptions ist ja auch nicht soooo viel Wissen über OOP erforderlich.Zitat von phpMorpheus2 Beitrag anzeigenMit oop kannste mich jagen.
Gut,ich bin Anfänger und irgendwann, wenn ein gewisses Niveau erreicht ist,
strebt man nach mehr und wird die Vorteile am Objektor. Pr. finden.
Aber bislang krieg ich davon nur einen Nervenzusammenbruch und
finde es persöhnlich unübersichtlich.
PHP-Code:<?php
function inverse($x) {
if ($x == 0) throw new Exception('Division durch Null!');
return 1/$x;
}
$zahl = 0;
try {
echo '1 / ' . $zahl . ' = ' . inverse($zahl);
} catch (Exception $e) {
echo 'Es ist ein Fehler aufgetreten: ' . $e->getMessage();
}
?>
Einen Kommentar schreiben:
-
Wer will, findet Wege.
Wer nicht will, findet Gründe.
Übersichtlich?
OOP ist eine andere Art zu denken.
Damit kommt dann auch die Übersicht.
Einen Kommentar schreiben:
-
Mit oop kannste mich jagen.
Gut,ich bin Anfänger und irgendwann, wenn ein gewisses Niveau erreicht ist,
strebt man nach mehr und wird die Vorteile am Objektor. Pr. finden.
Aber bislang krieg ich davon nur einen Nervenzusammenbruch und
finde es persöhnlich unübersichtlich.
Erstmal sehen wie weit ich mit dem Standard komme, dann irgendwann kommt das oop
Einen Kommentar schreiben:
-
Warum verwendest du nicht einfach Exceptions statt Error und Error Message mit dem Array zu übergeben?
Einen Kommentar schreiben:
-
Wie sonst?Zitat von onemorenerd Beitrag anzeigenZusammen mit den Daten. Das ist schon sehr ungewöhnlich. Normalerweise haben Systemzustandsmeldungen eigene Kanäle.
Ich gebe immer eine Array als Rückgabewert aus.
In dieser gibt es:
Die Validierungsoptionen, also die Ergebnisse der Validierung werden immer mit in der Array verschickt, in der die Ergebnisdaten auch sind.PHP-Code:$arr['err'] true or false
$arr['msg'] //Die Fehlermeldung
$arr['row'] //bei einer oder mehreren Zeilen Datenausgabe
$arr['nr'] //So weiß die angefoderte Funktion, was für Daten angekommen sind. Entweder eine einzige Nachricht, die steht dann in ['msg'] oder was für ein Fehler genau.
//usw.
Ist die Validierung fehlgeschlagen und es trat ein fehler auf,
so ist die $arr sowieso ohne Ergebnisdaten, nur die Validierungsdaten sind beinhaltet (logisch).
Ausgabevalidierung?Zitat von onemorenerdIch glaube wir reden aneinander vorbei. Darf ich die "Ausgabevalidierung" mal sehen, zumindest konzeptionell?
Wie meinst du das?
Die Ausgabevalidierung einer Validierungsfunktion oder das Konzept der Ausgabe und was passiert, wenn die Validierung fehlgeschlagen ist und wenn nicht?
Einen Kommentar schreiben:
-
Zusammen mit den Daten. Das ist schon sehr ungewöhnlich. Normalerweise haben Systemzustandsmeldungen eigene Kanäle.Zitat von phpMorpheus2 Beitrag anzeigenDarum ja die einheitliche Weiterleitung der Meldungen.
Ich glaube wir reden aneinander vorbei. Darf ich die "Ausgabevalidierung" mal sehen, zumindest konzeptionell?Zitat von phpMorpheus2 Beitrag anzeigenDer Empfänger des Rückgabewertes sendet das Paket 1:1 weiter bis das Paket in der endgültigen Ausgabevalidierung landet.
Einen Kommentar schreiben:
-
Richtig.Zitat von onemorenerd Beitrag anzeigenDu hast lauter Funktionen, die irgendwas machen. Soweit alles klar.
Und jede Funktion hat ihren Wrapper für die Validierung, also ungefähr so?
Dann brauchst du aber trotzdem noch irgendwo anders Logik. Diese Validatoren sorgen also für Ordnung in den Funktionen, sonst nichts.PHP-Code:function _foo() {
/* macht irgendwas */
return $row;
}
function foo() {
$row = _foo();
if (/* alles ok mit $row */) {
return array('row' => $row, 'err' => null, 'msg' => null);
} else {
return array('row' => null, 'err' => true, 'msg' => 'oops');
}
}
Ich gebe doch nicht gleich aus.Zitat von onemorenerdEs gibt auch noch was anderes außer "gleich ausgeben" und err/msg.
Darum ja die einheitliche Weiterleitung der Meldungen.
Nein. Der Empfänger des Rückgabewertes sendet das Paket 1:1 weiter bis das Paket in der endgültigen Ausgabevalidierung landet.Zitat von onemorenerdUnd der Empfänger des Rückgabewerts muss dann auch angepasst werden.
Zitat von onemorenerdOh doch, das wirst du.


Einen Kommentar schreiben:
-
Du hast lauter Funktionen, die irgendwas machen. Soweit alles klar.Zitat von phpMorpheus2 Beitrag anzeigenIch habe mehrere Funktionen zur Validierung.
Bestimmte Funktionen benutze bestimmte Validierungsfunktionen um Ihre Ergebnisse zu Validieren.
Hat eine Funktion etwas gemacht, so prüft die passende Validierungsfunktion, ob das Ergebnis korrekt ist.
Ist das Ergebnis inkorrekt, z.B. ein query fehler oder sonstiges,
so gibt die spezifische Validierungsfunktion einen Fehler zurück.
Err=true und die dazugehörige fehlermeldung msg=fehler
Die Funktion, welche nun etwas gemacht hat und von der Validierung einen Fehler zurück erhält, gibt diesen Fehler weiter.
Sprich Err und Msg.
Und jede Funktion hat ihren Wrapper für die Validierung, also ungefähr so?
Dann brauchst du aber trotzdem noch irgendwo anders Logik. Diese Validatoren sorgen also für Ordnung in den Funktionen, sonst nichts.PHP-Code:function _foo() {
/* macht irgendwas */
return $row;
}
function foo() {
$row = _foo();
if (/* alles ok mit $row */) {
return array('row' => $row, 'err' => null, 'msg' => null);
} else {
return array('row' => null, 'err' => true, 'msg' => 'oops');
}
}
Es gibt auch noch was anderes außer "gleich ausgeben" und err/msg.Zitat von phpMorpheus2 Beitrag anzeigenAuf der Oberfläche kann nun direkt eine spezielle anzeige programmiert werden für den Fehler.
Ich könnte den Fehler auch gleich ausgeben lassen aus der Funktion,
aber dann kann ich die Fehlermeldungen nicht seperat gestalten!
Und der Empfänger des Rückgabewerts muss dann auch angepasst werden.Zitat von phpMorpheus2 Beitrag anzeigenAußerdem ist die Weitergabe von Daten IMMER identisch.
In jeder Funktion.
Alles wird einheitlich gemacht und falls etwas hinzukommt,
so wird es in den benötigten Funktionen geändert.
Oh doch, das wirst du.Zitat von phpMorpheus2 Beitrag anzeigenIch denke, ich werde damit kein Problem in Zukunft haben, wenn alles Einheitlich aufgebaut ist.
Einen Kommentar schreiben:
-
array_push? javascript? was ist das?Zitat von Kropff Beitrag anzeigenund vergiss array_push und javascript
peter
Einen Kommentar schreiben:
-
und vergiss array_push und javascriptZitat von phpMorpheus2 Beitrag anzeigenJa, das wollte ich wissen.
Perfekt. Somit wieder ein haufen unnütze Arbeit unf Performance erspart!
peter
Einen Kommentar schreiben:
-
Guter Hinweis!
Ich habe mehrere Funktionen zur Validierung.
Bestimmte Funktionen benutze bestimmte Validierungsfunktionen um Ihre Ergebnisse zu Validieren.
Hat eine Funktion etwas gemacht, so prüft die passende Validierungsfunktion,
ob das Ergebnis korrekt ist.
Ist das Ergebnis inkorrekt, z.B. ein query fehler oder sonstiges,
so gibt die spezifische Validierungsfunktion einen Fehler zurück.
Err=true und die dazugehörige fehlermeldung msg=fehler
Die Funktion, welche nun etwas gemacht hat und von der Validierung einen Fehler zurück erhält, gibt diesen Fehler weiter.
Sprich Err und Msg.
Auf der Oberfläche kann nun direkt eine spezielle anzeige programmiert werden für den Fehler.
Ich könnte den Fehler auch gleich ausgeben lassen aus der Funktion,
aber dann kann ich die Fehlermeldungen nicht seperat gestalten!
Nungut, ich bin noch ein Anfänger, und Klassen finde ich überflüssig,
aber man lässt sich doch gern beraten :-)
Außerdem ist die Weitergabe von Daten IMMER identisch.
In jeder Funktion.
Alles wird einheitlich gemacht und falls etwas hinzukommt,
so wird es in den benötigten Funktionen geändert.
Ich denke, ich werde damit kein Problem in Zukunft haben, wenn alles Einheitlich aufgebaut ist.
(Ich hoffe es)
Ich finde solche Einwände bzw. gedankenanstöße super!
Einen Kommentar schreiben:
Einen Kommentar schreiben: