ilch Forum » Ilch CMS 2.X » Kritik und Verbesserungen » [FIXED] Validierung

Geschlossen
  1. #1
    User Pic
    Mairu Coder
    Registriert seit
    16.06.2006
    Beiträge
    15.334
    Beitragswertungen
    386 Beitragspunkte
    Da im Thema Neues & Änderungen keine Diskussionen erwünscht sind, habe ich diesen als Diskussionsthema, für die Valdierung als Antwort auf
    ZitatBeitrag aus Thema "Neues & Änderungen" von dastii
    Validations: www.ilch.de/redmine/projects/dev2/wiki/Validation

    Sind allerdings noch nicht fertig und koennen sich noch grundlegend aendern. Einige gewuenschte Features fehlen auch noch
    erstellt.

    ----------

    So dann mal an dieser Stelle, das mit den Filtern gefällt mir von der Sache her.

    Ich verstehe nur nicht ganz warum diese an 'required' hängen, genauso wie 'breakChain'.

    Mein erster Gedanke für die Konfiguration wäre jetzt:
    $validator = new \Ilch\Validator;
    $validator->addRules([
        'name' => [
            'breakChain',
            'filter.before' => ['alnum'],
            'required',
            'datetime' => [
                'format' => 'd.m.Y H:i:s', // Default: Y-m-d H:i:s
            ]
        ],
        'datetime' => [
            'required',
            'datetime' => [
                'format' => 'd.m.Y H:i:s', // Default: Y-m-d H:i:s
            ],
            'filter.after' => [
                'DateTime::createFromFormat' => ['d.m.Y H:i:s', \Ilch\Validator::SELF]
            ]
        ]
    ]);

    Wobei es nichtmal nur nur filter.before und filter.after geben müsste, sondern einfach alles mit filter. als Filter benutzt wird, somit wären auch zwischengelagerte Filter möglich.

    Bei breakChain würde ich einfach prüfen, ob es im Array drin ist und auch direkt entfernen und als Option für diese Feld setzen, und danach halt mit dem foreach beginnen.


    Zuletzt modifiziert von Mairu am 06.06.2014 - 07:27:56
    Und auch immer mal ein Blick auf die FAQ werfen. | Mairus Ilchseite
    0 Mitglieder finden den Beitrag gut.
  2. #2
    User Pic
    dastiii Mitglied
    Registriert seit
    27.12.2005
    Beiträge
    2.354
    Beitragswertungen
    84 Beitragspunkte
    Hab es bereits bearbeitet: www.ilch.de/redmine/projects/dev2/wiki/Validation

    Hast schon recht, hatte da wohl eine exklusive Idee, die ich jetzt nicht mehr rekonstruieren kann.

    Funktioniert jetzt in etwa so, wie du gepostet hast. Statische Klassenmethoden funktionieren nun uebrigens auch, an die hatte ich gar nicht weiter gedacht.

    $data = ['name' => 'a', 'datetime' => '28.05.2014 13:31:21', 'password' => '12345', 'password_confirmation' => '123456'];
    
    $validation = new \Ilch\Validator;
    $validation->addRules([
        'name' => [
            'required',
            'maxLength' => 30,
            'minLength' => 5,
            'breakChain',
            'filters' => [
                'before' => ['stringToLower'],
                'after'  => [
                    'trim' => [\Ilch\Validator::SELF]
                ]
            ]
        ],
        'datetime' => [
            'required',
            'datetime' => [
                'format' => 'd.m.Y H:i:s',
            ],
        ],
        'password' => [
            'required',
            'minLength' => '6',
            'same' => [
                'as' => 'password_confirmation'
            ],
            'filters' => [
                'after' => ['crypt' => [\Ilch\Validator::SELF]]
            ],
            'breakChain'
        ],
    ]);
    0 Mitglieder finden den Beitrag gut.
  3. #3
    User Pic
    Pion Hall Of Fame
    Registriert seit
    25.07.2007
    Beiträge
    870
    Beitragswertungen
    51 Beitragspunkte
    required/maxLength/minLength sind Validatoren.
    Wenn ich jetzt einen neuen Validator hinzufügen möchte, kann ich diesen dann benutzen wie die anderen Validatoren sprich

    'name' => [ 'meiner' => 30


    Was hat das mit \Ilch\Validator::SELF auf sich?
    0 Mitglieder finden den Beitrag gut.
  4. #4
    User Pic
    dastiii Mitglied
    Registriert seit
    27.12.2005
    Beiträge
    2.354
    Beitragswertungen
    84 Beitragspunkte
    \Ilch\Validator::SELF ist lediglich ein Platzhalter, wo spaeter der Inhalt des Feldes eingefuegt wird.

    Wenn er nach Ilch\Validators kommt und Meiner.php, die Klasse dann natuerlich auch 'Meiner', dann kannst du es einfach als
    'name' => [ 'meiner' => 30]

    schreiben.

    Falls du jetzt mit einem Modul einen Validator mitbringst, dann einfach:
    'name' => [ '\Modules\Module\Validators\Meiner' => 30]


    Als Beispiel.
    0 Mitglieder finden den Beitrag gut.
Geschlossen

Zurück zu Kritik und Verbesserungen

Optionen: Bei einer Antwort zu diesem Thema eine eMail erhalten