aboutsummaryrefslogtreecommitdiffstats
path: root/vendor/examples/addressbookserver.php
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/examples/addressbookserver.php')
-rw-r--r--vendor/examples/addressbookserver.php57
1 files changed, 57 insertions, 0 deletions
diff --git a/vendor/examples/addressbookserver.php b/vendor/examples/addressbookserver.php
new file mode 100644
index 000000000..6d1c9b26c
--- /dev/null
+++ b/vendor/examples/addressbookserver.php
@@ -0,0 +1,57 @@
+<?php
+
+/*
+
+Addressbook/CardDAV server example
+
+This server features CardDAV support
+
+*/
+
+// settings
+date_default_timezone_set('Canada/Eastern');
+
+// Make sure this setting is turned on and reflect the root url for your WebDAV server.
+// This can be for example the root / or a complete path to your server script
+$baseUri = '/';
+
+/* Database */
+$pdo = new PDO('sqlite:data/db.sqlite');
+$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
+
+//Mapping PHP errors to exceptions
+function exception_error_handler($errno, $errstr, $errfile, $errline) {
+ throw new ErrorException($errstr, 0, $errno, $errfile, $errline);
+}
+set_error_handler("exception_error_handler");
+
+// Autoloader
+require_once 'vendor/autoload.php';
+
+// Backends
+$authBackend = new Sabre\DAV\Auth\Backend\PDO($pdo);
+$principalBackend = new Sabre\DAVACL\PrincipalBackend\PDO($pdo);
+$carddavBackend = new Sabre\CardDAV\Backend\PDO($pdo);
+//$caldavBackend = new Sabre\CalDAV\Backend\PDO($pdo);
+
+// Setting up the directory tree //
+$nodes = [
+ new Sabre\DAVACL\PrincipalCollection($principalBackend),
+// new Sabre\CalDAV\CalendarRoot($authBackend, $caldavBackend),
+ new Sabre\CardDAV\AddressBookRoot($principalBackend, $carddavBackend),
+];
+
+// The object tree needs in turn to be passed to the server class
+$server = new Sabre\DAV\Server($nodes);
+$server->setBaseUri($baseUri);
+
+// Plugins
+$server->addPlugin(new Sabre\DAV\Auth\Plugin($authBackend));
+$server->addPlugin(new Sabre\DAV\Browser\Plugin());
+//$server->addPlugin(new Sabre\CalDAV\Plugin());
+$server->addPlugin(new Sabre\CardDAV\Plugin());
+$server->addPlugin(new Sabre\DAVACL\Plugin());
+$server->addPlugin(new Sabre\DAV\Sync\Plugin());
+
+// And off we go!
+$server->exec();