web/lib/Zend/Server/Interface.php
changeset 64 162c1de6545a
parent 19 1c2f13fd785c
child 68 ecaf28ffe26e
equal deleted inserted replaced
63:5b37998e522e 64:162c1de6545a
       
     1 <?php
       
     2 /**
       
     3  * Zend Framework
       
     4  *
       
     5  * LICENSE
       
     6  *
       
     7  * This source file is subject to the new BSD license that is bundled
       
     8  * with this package in the file LICENSE.txt.
       
     9  * It is also available through the world-wide-web at this URL:
       
    10  * http://framework.zend.com/license/new-bsd
       
    11  * If you did not receive a copy of the license and are unable to
       
    12  * obtain it through the world-wide-web, please send an email
       
    13  * to license@zend.com so we can send you a copy immediately.
       
    14  *
       
    15  * @category   Zend
       
    16  * @package    Zend_Server
       
    17  * @copyright  Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com)
       
    18  * @license    http://framework.zend.com/license/new-bsd     New BSD License
       
    19  */
       
    20 
       
    21 /**
       
    22  * Zend_Server_Interface
       
    23  *
       
    24  * @category Zend
       
    25  * @package  Zend_Server
       
    26  * @copyright  Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com)
       
    27  * @license    http://framework.zend.com/license/new-bsd     New BSD License
       
    28  * @version $Id: Interface.php 20096 2010-01-06 02:05:09Z bkarwin $
       
    29  */
       
    30 interface Zend_Server_Interface
       
    31 {
       
    32     /**
       
    33      * Attach a function as a server method
       
    34      *
       
    35      * Namespacing is primarily for xmlrpc, but may be used with other
       
    36      * implementations to prevent naming collisions.
       
    37      *
       
    38      * @param string $function
       
    39      * @param string $namespace
       
    40      * @param null|array Optional array of arguments to pass to callbacks at
       
    41      * dispatch.
       
    42      * @return void
       
    43      */
       
    44     public function addFunction($function, $namespace = '');
       
    45 
       
    46     /**
       
    47      * Attach a class to a server
       
    48      *
       
    49      * The individual implementations should probably allow passing a variable
       
    50      * number of arguments in, so that developers may define custom runtime
       
    51      * arguments to pass to server methods.
       
    52      *
       
    53      * Namespacing is primarily for xmlrpc, but could be used for other
       
    54      * implementations as well.
       
    55      *
       
    56      * @param mixed $class Class name or object instance to examine and attach
       
    57      * to the server.
       
    58      * @param string $namespace Optional namespace with which to prepend method
       
    59      * names in the dispatch table.
       
    60      * methods in the class will be valid callbacks.
       
    61      * @param null|array Optional array of arguments to pass to callbacks at
       
    62      * dispatch.
       
    63      * @return void
       
    64      */
       
    65     public function setClass($class, $namespace = '', $argv = null);
       
    66 
       
    67     /**
       
    68      * Generate a server fault
       
    69      *
       
    70      * @param mixed $fault
       
    71      * @param int $code
       
    72      * @return mixed
       
    73      */
       
    74     public function fault($fault = null, $code = 404);
       
    75 
       
    76     /**
       
    77      * Handle a request
       
    78      *
       
    79      * Requests may be passed in, or the server may automagically determine the
       
    80      * request based on defaults. Dispatches server request to appropriate
       
    81      * method and returns a response
       
    82      *
       
    83      * @param mixed $request
       
    84      * @return mixed
       
    85      */
       
    86     public function handle($request = false);
       
    87 
       
    88     /**
       
    89      * Return a server definition array
       
    90      *
       
    91      * Returns a server definition array as created using
       
    92      * {@link * Zend_Server_Reflection}. Can be used for server introspection,
       
    93      * documentation, or persistence.
       
    94      *
       
    95      * @access public
       
    96      * @return array
       
    97      */
       
    98     public function getFunctions();
       
    99 
       
   100     /**
       
   101      * Load server definition
       
   102      *
       
   103      * Used for persistence; loads a construct as returned by {@link getFunctions()}.
       
   104      *
       
   105      * @param array $array
       
   106      * @return void
       
   107      */
       
   108     public function loadFunctions($definition);
       
   109 
       
   110     /**
       
   111      * Set server persistence
       
   112      *
       
   113      * @todo Determine how to implement this
       
   114      * @param int $mode
       
   115      * @return void
       
   116      */
       
   117     public function setPersistence($mode);
       
   118 }