/** * Creates CFPropertyList object, filled with provided array * @param array $array * @return static */ public function createPlistFromArray(array $array) { $typeDetector = new CFTypeDetector(); $guessedStructure = $typeDetector->toCFType($array); $this->plist->add($guessedStructure); return $this; }
/** * Encode the given data in plist format * * @param array $data * resulting data that needs to * be encoded in plist format * @param boolean $humanReadable * set to true when restler * is not running in production mode. Formatter has to * make the encoded output more human readable * * @return string encoded string */ public function encode($data, $humanReadable = false) { //require_once 'CFPropertyList.php'; if (!isset(self::$compact)) { self::$compact = !$humanReadable; } /** * * @var CFPropertyList */ $plist = new CFPropertyList(); $td = new CFTypeDetector(); $guessedStructure = $td->toCFType(Object::toArray($data)); $plist->add($guessedStructure); return self::$compact ? $plist->toBinary() : $plist->toXML(true); }
/** * Create CFType-structure from guessing the data-types. * The functionality has been moved to the more flexible {@link CFTypeDetector} facility. * @param mixed $value Value to convert to CFType * @param boolean $autoDictionary if true {@link CFArray}-detection is bypassed and arrays will be returned as {@link CFDictionary}. * @return CFType CFType based on guessed type * @uses CFTypeDetector for actual type detection * @deprecated */ public static function guess($value, $autoDictionary = false) { static $t = null; if ($t === null) { $t = new CFTypeDetector($autoDictionary); } return $t->toCFType($value); }
/** * Create CFType-structure from guessing the data-types. * The functionality has been moved to the more flexible {@link CFTypeDetector} facility. * @param mixed $value Value to convert to CFType * @param array $options Configuration for casting values [autoDictionary, suppressExceptions, objectToArrayMethod, castNumericStrings] * @return CFType CFType based on guessed type * @uses CFTypeDetector for actual type detection * @deprecated */ public static function guess($value, $options = array()) { static $t = null; if ($t === null) { $t = new CFTypeDetector($options); } return $t->toCFType($value); }
*/ namespace CFPropertyList; use DateTime, DateTimeZone; // just in case... error_reporting(E_ALL); ini_set('display_errors', 'on'); /** * Require CFPropertyList */ require_once __DIR__ . '/../classes/CFPropertyList/CFPropertyList.php'; /* * create a new CFPropertyList instance without loading any content */ $plist = new CFPropertyList(); /* * import the array structure to create the sample.xml.plist * We make use of CFTypeDetector, which truly is not almighty! */ $structure = array('Year Of Birth' => 1965, 'Date Of Graduation' => gmmktime(19, 23, 43, 06, 22, 2004), 'Date Of Birth' => new DateTime('1984-09-07 08:15:23', new DateTimeZone('Europe/Berlin')), 'Pets Names' => array(), 'Picture' => 'PEKBpYGlmYFCPA==', 'City Of Birth' => 'Springfield', 'Name' => 'John Doe', 'Kids Names' => array('John', 'Kyra')); $td = new CFTypeDetector(); $guessedStructure = $td->toCFType($structure); $plist->add($guessedStructure); /* * Save PList as XML */ $plist->saveXML(__DIR__ . '/example-create-02.xml.plist'); /* * Save PList as Binary */ $plist->saveBinary(__DIR__ . '/example-create-02.binary.plist');