<?php
/**
* Examples for how to use CFPropertyList
* Create the PropertyList sample.xml.plist by using {@link CFTypeDetector}.
* @package plist
* @subpackage plist.examples
*/
// just in case...
/**
* Require CFPropertyList
*/
require_once(dirname(__FILE__).'/../CFPropertyList.php');
public function toCFType($value) {
return new CFString( $value->getMessage() );
}
return parent::toCFType($value);
}
}
/*
* import the array structure to create the sample.xml.plist
* We make use of CFTypeDetector, which truly is not almighty!
*/
$stack = new SplStack();
$stack[] = 1;
$stack[] = 2;
$stack[] = 3;
$structure = array(
'NullValueTest' => null,
'IteratorTest' => $stack,
);
/*
* Try default detection
*/
try {
$guessedStructure = $td->toCFType( $structure );
$plist->add( $guessedStructure );
$plist->saveXML( dirname(__FILE__
).
'/example-create-04.xml.plist' );
$plist->saveBinary( dirname(__FILE__
).
'/example-create-04.binary.plist' );
}
echo 'Normal detection: ', $e->getMessage(), "\n";
}
/*
* Try detection by omitting exceptions
*/
try {
$guessedStructure = $td->toCFType( $structure );
$plist->add( $guessedStructure );
$plist->saveXML( dirname(__FILE__
).
'/example-create-04.xml.plist' );
$plist->saveBinary( dirname(__FILE__
).
'/example-create-04.binary.plist' );
}
echo 'Silent detection: ', $e->getMessage(), "\n";
}
/*
* Try detection with an extended version of CFTypeDetector
*/
try {
$td = new DemoDetector();
$guessedStructure = $td->toCFType( $structure );
$plist->add( $guessedStructure );
$plist->saveXML( dirname(__FILE__
).
'/example-create-04.xml.plist' );
$plist->saveBinary( dirname(__FILE__
).
'/example-create-04.binary.plist' );
}
echo 'User defined detection: ', $e->getMessage(), "\n";
}
?>