2 /* vim: set expandtab tabstop=4 shiftwidth=4: */
4 * File containing the Net_LDAP2_SchemaCache interface class.
10 * @author Benedikt Hallinger <beni@php.net>
11 * @copyright 2009 Benedikt Hallinger
12 * @license http://www.gnu.org/licenses/lgpl-3.0.txt LGPLv3
13 * @version SVN: $Id: SchemaCache.interface.php 286718 2009-08-03 07:30:49Z beni $
14 * @link http://pear.php.net/package/Net_LDAP2/
18 * Interface describing a custom schema cache object
20 * To implement a custom schema cache, one must implement this interface and
21 * pass the instanciated object to Net_LDAP2s registerSchemaCache() method.
23 interface Net_LDAP2_SchemaCache
26 * Return the schema object from the cache
28 * Net_LDAP2 will consider anything returned invalid, except
29 * a valid Net_LDAP2_Schema object.
30 * In case you return a Net_LDAP2_Error, this error will be routed
31 * to the return of the $ldap->schema() call.
32 * If you return something else, Net_LDAP2 will
33 * fetch a fresh Schema object from the LDAP server.
35 * You may want to implement a cache aging mechanism here too.
37 * @return Net_LDAP2_Schema|Net_LDAP2_Error|false
39 public function loadSchema();
42 * Store a schema object in the cache
44 * This method will be called, if Net_LDAP2 has fetched a fresh
45 * schema object from LDAP and wants to init or refresh the cache.
47 * In case of errors you may return a Net_LDAP2_Error which will
48 * be routet to the client.
49 * Note that doing this prevents, that the schema object fetched from LDAP
50 * will be given back to the client, so only return errors if storing
51 * of the cache is something crucial (e.g. for doing something else with it).
52 * Normaly you dont want to give back errors in which case Net_LDAP2 needs to
53 * fetch the schema once per script run and instead use the error
54 * returned from loadSchema().
56 * @return true|Net_LDAP2_Error
58 public function storeSchema($schema);