*/ class LSioFormatDriver extends LSlog_staticLoggerClass { protected $options=array(); /** * Constructor * * @param[in] array $options Driver's options * * @retval void **/ public function __construct($options) { $this -> options = $options; } /** * Load file * * @param[in] string $file The file path to load * * @retval boolean True if file is loaded, false otherwise **/ public function loadFile($path) { return False; } /** * Check if loaded file data are valid * * @retval boolean True if loaded file data are valid, false otherwise **/ public function isValid() { return False; } /** * Retrieve all object data contained by the loaded file * * The objects are returned in array : * * array ( * array ( // Object 1 * '[field1]' => '[value1]', * '[field2]' => '[value2]', * [...] * ), * array ( // Object 2 * '[field1]' => '[value1]', * '[field2]' => '[value2]', * [...] * ), * ) * * @retval array The objects contained by the loaded file **/ public function getAll() { return array(); } /** * Retrieve fields names of the loaded file * * The fields names are returned in array : * * array ( * '[field1]', * '[field2]', * [...] * ) * * @retval array The fields names of the loaded file **/ public function getFieldNames() { return array(); } /** * Retrieve all objects data of the loaded file formated * * This method format objects data using ioFormat configuration * given as parameters. * * @param[in] $fields Array of file's fields name mapping with object attribute * @param[in] $generated_fields Array of object attribute to generate using other object data * * @retval array All objects data of the loaded file formated **/ public function getAllFormated($fields, $generated_fields) { if (!is_array($fields)) return False; if (!is_array($generated_fields)) $generated_fields=array(); $all = $this -> getAll(); if (!is_array($all)) return False; $retall = array(); foreach($all as $one) { $retone = array(); foreach($fields as $key => $attr) { if (!isset($one[$key])) continue; if (!isset($retone[$attr])) $retone[$attr] = array(); $retone[$attr][] = $one[$key]; } foreach ($generated_fields as $attr => $formats) { $retone[$attr] = array(); foreach (ensureIsArray($formats) as $format) { $value = getFData($format, $retone); if (!is_empty($value)) { $retone[$attr][] = $value; } } if (empty($retone[$attr])) unset($retone[$attr]); } $retall[] = $retone; } return $retall; } /** * Export objects data * * @param[in] $objects_data Array of objects data to export * @param[in] $stream resource|null The output stream (optional, default: STDOUT) * * @return boolean True on success, False otherwise */ public function exportObjectsData($objects_data, $stream=null) { // Must be implement in real drivers return False; } /** * Return a option parameter (or default value) * * @param[] $param The configuration parameter * @param[] $default The default value (default : null) * @param[] $cast Cast resulting value in specific type (default : disabled) * * @retval mixed The option parameter value or default value if not set **/ public function getOption($param, $default=null, $cast=null) { return LSconfig :: get($param, $default, $cast, $this -> options); } }