Login   Register  
PHP Classes
elePHPant
Icontem

File: KVerifiableData_Demo.php

Recommend this page to a friend!
Stumble It! Stumble It! Bookmark in del.icio.us Bookmark in del.icio.us
  Classes of Kinika Tasie-Amadi  >  KVerifiableData  >  KVerifiableData_Demo.php  >  Download  
File: KVerifiableData_Demo.php
Role: Example script
Content type: text/plain
Description: Example
Class: KVerifiableData
Validate data by type, constraint or dependency
Author: By
Last change:
Date: 2004-11-23 18:08
Size: 2,703 bytes
 

Contents

Class file image Download
<?php

// import from same directory as this file
require_once(dirname(__FILE__) . "/KVerifiableData.php");

/////////////////////////////////////////////////////////////////////
// DEMO
// This shows an example that specifies some data to be verified
// As is, array $info below contains 4 errors;
// update $info to fix these errors, or to introduce errors that should be 'caught'

// STEP 1: specify attributes of data to verify
$verifiableData =& new KVerifiableData();
$verifiableData->addRequiredItem('name',      KVDATA_STRING);
$verifiableData->addOptionalItem('dob',       KVDATA_DATE);
$verifiableData->addOptionalItem('isMale',    KVDATA_BOOLEAN);
$verifiableData->addOptionalItem('date',      KVDATA_DATE);
$verifiableData->addRequiredItem('numItems',  KVDATA_INTEGER, array('moreThan'=>1));
$verifiableData->addRequiredItem('summary',   KVDATA_STRING,  array('minLength'=>5,'maxLength'=>9));
$verifiableData->addOptionalItem('price',     KVDATA_FLOAT,   array('minValue'=>24.5));
$verifiableData->addRequiredItem('countryId'KVDATA_INTEGER);
$verifiableData->addOptionalItem('times',     KVDATA_TIME KVDATA_ARRAY, array('minValue'=>1200,'minCollectionLength'=>3));
$verifiableData->addOptionalItem('prices',    KVDATA_FLOAT KVDATA_COMMA_LIST, array('minValue'=>3.5,'minCollectionLength'=>2,'maxCollectionLength'=>2));
$verifiableData->addDependency('dob',    KVDATA_SAME_OR_COMES_BEFORE'date');
$verifiableData->addDependency('times',  KVDATA_SIZE_IS_GREATER_THAN'prices');
$verifiableData->addDependency('prices'KVDATA_SIZE_IS_SAME_AS'numItems');

// STEP 2: specify data to be verified
// Alternatively, this data can come from elsewhere, e.g. $_GET
$info = array(
    
'name'      => 'Templar' ,
    
'numItems'  => ,
    
'summary'   => 'cars' ,
    
'isMale'    => 'no' ,    // WARNING: will result in isMale=1 as isMale is boolean above
//    'countryId' => 19 ,
    
'price'     => 2.34 ,
    
'dob'       => "2/6/1989" ,
    
'date'      => "1/6/1991" ,
    
'prices'    => "23.3,86" ,
    
'times'     => array(2349,"12:34","19.20") ,
);

// STEP 3: verify data
$verifiableData->loadValues($info);
$errorMessageBlocks $verifiableData->verify();
if (
$errorMessageBlocks !== null) {
    
// error(s) occurred - print them all
    
echo "Error(s):<pre>";
    foreach (
$errorMessageBlocks as $errorMessageBlock) {
        echo 
$errorMessageBlock['message']."<br>";
    }
    print 
"</pre>";
} else {
    
// no errors found - in this case, show resulting values
    
printArrayToHtml($verifiableData->getValues());
}


function 
printArrayToHtml($arr)
{
    print 
"<pre>";
    
print_r($arr);
    print 
"</pre>";
}

?>