60 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
		
		
			
		
	
	
			60 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| 
								 | 
							
								<?php
							 | 
						||
| 
								 | 
							
								/* vim: set expandtab tabstop=4 shiftwidth=4: */
							 | 
						||
| 
								 | 
							
								/**
							 | 
						||
| 
								 | 
							
								* File containing the Net_LDAP2_SchemaCache interface class.
							 | 
						||
| 
								 | 
							
								*
							 | 
						||
| 
								 | 
							
								* PHP version 5
							 | 
						||
| 
								 | 
							
								*
							 | 
						||
| 
								 | 
							
								* @category  Net
							 | 
						||
| 
								 | 
							
								* @package   Net_LDAP2
							 | 
						||
| 
								 | 
							
								* @author    Benedikt Hallinger <beni@php.net>
							 | 
						||
| 
								 | 
							
								* @copyright 2009 Benedikt Hallinger
							 | 
						||
| 
								 | 
							
								* @license   http://www.gnu.org/licenses/lgpl-3.0.txt LGPLv3
							 | 
						||
| 
								 | 
							
								* @version   SVN: $Id: SchemaCache.interface.php 286718 2009-08-03 07:30:49Z beni $
							 | 
						||
| 
								 | 
							
								* @link      http://pear.php.net/package/Net_LDAP2/
							 | 
						||
| 
								 | 
							
								*/
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/**
							 | 
						||
| 
								 | 
							
								* Interface describing a custom schema cache object
							 | 
						||
| 
								 | 
							
								*
							 | 
						||
| 
								 | 
							
								* To implement a custom schema cache, one must implement this interface and
							 | 
						||
| 
								 | 
							
								* pass the instanciated object to Net_LDAP2s registerSchemaCache() method.
							 | 
						||
| 
								 | 
							
								*/
							 | 
						||
| 
								 | 
							
								interface Net_LDAP2_SchemaCache
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								    /**
							 | 
						||
| 
								 | 
							
								    * Return the schema object from the cache
							 | 
						||
| 
								 | 
							
								    *
							 | 
						||
| 
								 | 
							
								    * Net_LDAP2 will consider anything returned invalid, except
							 | 
						||
| 
								 | 
							
								    * a valid Net_LDAP2_Schema object.
							 | 
						||
| 
								 | 
							
								    * In case you return a Net_LDAP2_Error, this error will be routed
							 | 
						||
| 
								 | 
							
								    * to the return of the $ldap->schema() call.
							 | 
						||
| 
								 | 
							
								    * If you return something else, Net_LDAP2 will
							 | 
						||
| 
								 | 
							
								    * fetch a fresh Schema object from the LDAP server.
							 | 
						||
| 
								 | 
							
								    *
							 | 
						||
| 
								 | 
							
								    * You may want to implement a cache aging mechanism here too.
							 | 
						||
| 
								 | 
							
								    *
							 | 
						||
| 
								 | 
							
								    * @return Net_LDAP2_Schema|Net_LDAP2_Error|false
							 | 
						||
| 
								 | 
							
								    */
							 | 
						||
| 
								 | 
							
								    public function loadSchema();
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    /**
							 | 
						||
| 
								 | 
							
								    * Store a schema object in the cache
							 | 
						||
| 
								 | 
							
								    *
							 | 
						||
| 
								 | 
							
								    * This method will be called, if Net_LDAP2 has fetched a fresh
							 | 
						||
| 
								 | 
							
								    * schema object from LDAP and wants to init or refresh the cache.
							 | 
						||
| 
								 | 
							
								    *
							 | 
						||
| 
								 | 
							
								    * In case of errors you may return a Net_LDAP2_Error which will
							 | 
						||
| 
								 | 
							
								    * be routet to the client.
							 | 
						||
| 
								 | 
							
								    * Note that doing this prevents, that the schema object fetched from LDAP
							 | 
						||
| 
								 | 
							
								    * will be given back to the client, so only return errors if storing
							 | 
						||
| 
								 | 
							
								    * of the cache is something crucial (e.g. for doing something else with it).
							 | 
						||
| 
								 | 
							
								    * Normaly you dont want to give back errors in which case Net_LDAP2 needs to
							 | 
						||
| 
								 | 
							
								    * fetch the schema once per script run and instead use the error
							 | 
						||
| 
								 | 
							
								    * returned from loadSchema().
							 | 
						||
| 
								 | 
							
								    *
							 | 
						||
| 
								 | 
							
								    * @return true|Net_LDAP2_Error
							 | 
						||
| 
								 | 
							
								    */
							 | 
						||
| 
								 | 
							
								    public function storeSchema($schema);
							 | 
						||
| 
								 | 
							
								}
							 |