#1022: Introduce new validation report query API
-------------------------+--------------------------------------------------
 Reporter:  david        |       Owner:  david     
     Type:  enhancement  |      Status:  assigned  
 Priority:  normal       |   Milestone:  1.0       
Component:  validation   |     Version:  1.0.0beta8
 Severity:  normal       |    Keywords:            
Has_patch:  0            |  
-------------------------+--------------------------------------------------
Description changed by david:

Old description:

> #785 introduced a couple of refactorings to the validation system, and
> also new API parts for getting results out of the validation system, most
> notably via the new classes {{{AgaviValidationArgumentResult}}} and
> {{{AgaviValidationValidatorResult}}}.
>
> These need to go, because Dominik had a much better idea this week :)
>
> A new API for convenient querying of indicents, errors and result codes.
>
> Examples of sweetness:
> {{{
> #!php
> <?php
>
> $report = $this->getContainer()->getReport();
> // or $report = $this->getContainer()->getReport()->createQuery();
>
> $nameValid = !$report->byArgument('name')->has();
> $nameMissing =
> $report->byArgument('name')->byErrorName('required')->has();
>
> $myoptionalfileIsImage = $report->byArgument(new
> AgaviValidationArgument('myoptionalfile',
> AgaviWebRequestDataHolder::SOURCE_FILES))->byValidator('is_image')->getResult()
> === AgaviValidator::SUCCESS;
> }}}

New description:

 #785 introduced a couple of refactorings to the validation system, and
 also new API parts for getting results out of the validation system, most
 notably via the new classes {{{AgaviValidationArgumentResult}}} and
 {{{AgaviValidationValidatorResult}}}.

 These need to go, because Dominik had a much better idea this week :)

 A new API for convenient querying of indicents, errors and result codes.

 Examples of sweetness:
 {{{
 #!php
 <?php

 $report = $this->getContainer()->getReport();
 // or $report = $this->getContainer()->getReport()->createQuery();

 $nameValid = !$report->byArgument('name')->has();

 // every by() method returns a clone of the query object, so we do not
 have to make new instances here
 $nameMissing =
 $report->byArgument('name')->byErrorName('required')->has();

 $myoptionalfileIsImage = $report->byArgument(new
 AgaviValidationArgument('myoptionalfile',
 AgaviWebRequestDataHolder::SOURCE_FILES))->byValidator('is_image')->getResult()
 === AgaviValidator::SUCCESS;
 }}}

--

-- 
Ticket URL: <http://trac.agavi.org/ticket/1022#comment:6>
Agavi <http://www.agavi.org/>
An MVC Framework for PHP5


_______________________________________________
Agavi Tickets Mailing List
[email protected]
http://lists.agavi.org/mailman/listinfo/tickets

Reply via email to