4 * The baseclass for all server plugins.
6 * Plugins can modify or extend the servers behaviour.
10 * @copyright Copyright (C) 2007-2012 Rooftop Solutions. All rights reserved.
11 * @author Evert Pot (http://www.rooftopsolutions.nl/)
12 * @license http://code.google.com/p/sabredav/wiki/License Modified BSD License
14 abstract class Sabre_DAV_ServerPlugin {
17 * This initializes the plugin.
19 * This function is called by Sabre_DAV_Server, after
20 * addPlugin is called.
22 * This method should set up the requires event subscriptions.
24 * @param Sabre_DAV_Server $server
27 abstract public function initialize(Sabre_DAV_Server $server);
30 * This method should return a list of server-features.
32 * This is for example 'versioning' and is added to the DAV: header
33 * in an OPTIONS response.
37 public function getFeatures() {
44 * Use this method to tell the server this plugin defines additional
47 * This method is passed a uri. It should only return HTTP methods that are
48 * available for the specified uri.
53 public function getHTTPMethods($uri) {
60 * Returns a plugin name.
62 * Using this name other plugins will be able to access other plugins
63 * using Sabre_DAV_Server::getPlugin
67 public function getPluginName() {
69 return get_class($this);
74 * Returns a list of reports this plugin supports.
76 * This will be used in the {DAV:}supported-report-set property.
77 * Note that you still need to subscribe to the 'report' event to actually
83 public function getSupportedReportSet($uri) {