• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Best Practice - Array zusammenfassen

bodo92

Aktives Mitglied
Guten Morgen,

in meiner Klasse für die Formularvalidierung ist ein Array der bei einem Fehler die Meldungen beinhaltet!
Habe also einen leeren Array initialisiert der bei Fehlern über array_merge() mit den Meldungen gefüllt wird, funktioniert alles super würde nur gerne wissen ob es auch eine gute Lösung ist!?

Hier ein Auszug meiner Klasse zur Validierung:
PHP:
<?php

class Validator {

    private $state = true;
    private $message = array();

    public function __construct() {
        $this->validate();
    }

    public function validate() {
        foreach ($_POST as $key => $value) {
            var_dump($key, $value);
            switch ($key) {
                case 'datum':
                    list($tag, $monat, $jahr) = explode('.', $value);
                    if (empty($value)) {
                        $this->state = false;
                        $this->message = array_merge($this->message, array('Bitte geben Sie ein Datum an!'));
                    } else {
                        if (!checkdate($monat, $tag, $jahr)) {
                            $this->state = false;
                            $this->message = array_merge($this->message, array('Das angegebene Datum ist fehlerhaft!'));
                        }
                    }
                    break;
                case 'zeit':
                    list($stunde, $minute) = explode(':', $value);
                    if (empty($value)) {
                        $this->state = false;
                        $this->message = array_merge($this->message, array('Bitte geben Sie eine Zeit an!'));
                    } else {
                        if (!($stunde > 0 && $stunde < 24 && strlen($stunde) == 2 && $minute > 0 && $minute < 60 && strlen($minute) == 2)) {
                            $this->state = false;
                            $this->message = array_merge($this->message, array('Die angegebene Zeit ist fehlerhaft!'));
                        }
                    }
                    break;
            }
        }
    }

    public function isValid() {
        return array(
            'state' => $this->state,
            'message' => $this->message
        );
    }
}
 
Warum überhaupt array_merge?
Und bei einer Funktion isValid würde ich als Return-Wert eher true oder false erwarten und kein Array
 
Guten Morgen,

in meiner Klasse für die Formularvalidierung ist ein Array der bei einem Fehler die Meldungen beinhaltet!
Habe also einen leeren Array initialisiert der bei Fehlern über array_merge() mit den Meldungen gefüllt wird, funktioniert alles super würde nur gerne wissen ob es auch eine gute Lösung ist!?

Hier ein Auszug meiner Klasse zur Validierung:
PHP:
<?php

class Validator {

    private $state = true;
    private $message = array();

    public function __construct() {
        $this->validate();
    }

    public function validate() {
        foreach ($_POST as $key => $value) {
            var_dump($key, $value);
            switch ($key) {
                case 'datum':
                    list($tag, $monat, $jahr) = explode('.', $value);
                    if (empty($value)) {
                        $this->state = false;
                        $this->message = array_merge($this->message, array('Bitte geben Sie ein Datum an!'));
                    } else {
                        if (!checkdate($monat, $tag, $jahr)) {
                            $this->state = false;
                            $this->message = array_merge($this->message, array('Das angegebene Datum ist fehlerhaft!'));
                        }
                    }
                    break;
                case 'zeit':
                    list($stunde, $minute) = explode(':', $value);
                    if (empty($value)) {
                        $this->state = false;
                        $this->message = array_merge($this->message, array('Bitte geben Sie eine Zeit an!'));
                    } else {
                        if (!($stunde > 0 && $stunde < 24 && strlen($stunde) == 2 && $minute > 0 && $minute < 60 && strlen($minute) == 2)) {
                            $this->state = false;
                            $this->message = array_merge($this->message, array('Die angegebene Zeit ist fehlerhaft!'));
                        }
                    }
                    break;
            }
        }
    }

    public function isValid() {
        return array(
            'state' => $this->state,
            'message' => $this->message
        );
    }
}

PHP:
$this->message[] = 'Bitte geben Sie ein Datum an!';
 
Zurück
Oben