Current File : //home/strato/chroot/opt/RZphp80/includes/XML/Query2XML/Callback.php
<?php
/**
 * This file contains the interface XML_Query2XML_Callback.
 *
 * PHP version 5
 *
 * @category  XML
 * @package   XML_Query2XML
 * @author    Lukas Feiler <lukas.feiler@lukasfeiler.com>
 * @copyright 2007 Lukas Feiler
 * @license   http://www.gnu.org/copyleft/lesser.html  LGPL Version 2.1
 * @version   CVS: $Id: Callback.php 276639 2009-03-01 13:17:08Z lukasfeiler $
 * @link      http://pear.php.net/package/XML_Query2XML 
 */

/**
 * Callback interface
 *
 * If you want to use a non-static method as a callback for XML_Query2XML
 * you have to use an instance of a class that implements this interface.
 * Your command class (read more about the command pattern 
 * {@link http://en.wikipedia.org/wiki/Command_pattern here}) therefore
 * has to implement a public method that is named "execute" and accepts an
 * array as its first argument. Here goes an example:
 * <code>
 * require_once 'XML/Query2XML/Callback.php';
 * class MyCallback implements XML_Query2XML_Callback
 * {
 *   public function execute(array $record)
 *   {
 *       $data = $record['some_column'];
 *       // do some really complex things with $data
 *
 *       return $data;
 *   }
 * }
 * $myCallback = new MyCallback();
 * </code>
 * XML_Query2XML will always invoke the execute() method and will pass
 * the current record as an associative array as the first and only argument.
 * A command object can be used for
 * - Simple Element Specifications
 * - Complex Element Specifications ($options['value')
 * - Simple Attribute Specifications
 * - Complex Attribute Specifications ($options['value')
 * - $options['condition']
 * - $options['sql']['data']
 * - $options['idColumn']
 *
 * If you want to use the same command class for different columns, I suggest
 * you pass the column name to the constructor:
 * <code>
 * require_once 'XML/Query2XML/Callback.php';
 * class MyCallback implements XML_Query2XML_Callback
 * {
 *   private $_columnName = '';
 *   public function __construct($columnName)
 *   {
 *       $this->_columnName = $columnName;
 *   }
 *   public function execute(array $record)
 *   {
 *       if (!isset($record[$this->_columnName])) {
 *           // throw an exception here
 *       }
 *       $data = $record[$this->_columnName];
 *       // do some really complex things with $data
 *
 *       return $data;
 *   }
 * }
 * $myCallback = new MyCallback('some_column_name');
 * </code>
 *
 * @category  XML
 * @package   XML_Query2XML
 * @author    Lukas Feiler <lukas.feiler@lukasfeiler.com>
 * @copyright 2006 Lukas Feiler
 * @license   http://www.gnu.org/copyleft/lesser.html  LGPL Version 2.1
 * @version   Release: 1.7.2
 * @link      http://pear.php.net/package/XML_Query2XML
 * @since     Release 1.1.0
 */
interface XML_Query2XML_Callback
{
    /**
     * This method will be called by XML_Query2XML.
     * This method has to return a value that can be cast to a string
     * or if used within a Complex Element Specification, an instance
     * of DOMNode.
     *
     * @param array $record A record as an associative array.
     *
     * @return mixed A value that can be cast to a string or an instance of DOMNode.
     */
    public function execute(array $record);
}
?>