]> git.mxchange.org Git - friendica-addons.git/blob - dav/SabreDAV/examples/addressbookserver.php
Merge branch 'master' of git://github.com/friendica/friendica-addons
[friendica-addons.git] / dav / SabreDAV / examples / addressbookserver.php
1 <?php
2
3 /*
4
5 Addressbook/CardDAV server example
6
7 This server features CardDAV support
8
9 */
10
11 // settings
12 date_default_timezone_set('Canada/Eastern');
13
14 // Make sure this setting is turned on and reflect the root url for your WebDAV server.
15 // This can be for example the root / or a complete path to your server script
16 $baseUri = '/';
17
18 /* Database */
19 $pdo = new PDO('sqlite:data/db.sqlite');
20 $pdo->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
21
22 //Mapping PHP errors to exceptions
23 function exception_error_handler($errno, $errstr, $errfile, $errline ) {
24     throw new ErrorException($errstr, 0, $errno, $errfile, $errline);
25 }
26 set_error_handler("exception_error_handler");
27
28 // Autoloader
29 require_once 'lib/Sabre/autoload.php';
30
31 // Backends
32 $authBackend      = new Sabre_DAV_Auth_Backend_PDO($pdo);
33 $principalBackend = new Sabre_DAVACL_PrincipalBackend_PDO($pdo);
34 $carddavBackend   = new Sabre_CardDAV_Backend_PDO($pdo);
35 //$caldavBackend    = new Sabre_CalDAV_Backend_PDO($pdo);
36
37 // Setting up the directory tree //
38 $nodes = array(
39     new Sabre_DAVACL_PrincipalCollection($principalBackend),
40 //    new Sabre_CalDAV_CalendarRootNode($authBackend, $caldavBackend),
41     new Sabre_CardDAV_AddressBookRoot($principalBackend, $carddavBackend),
42 );
43
44 // The object tree needs in turn to be passed to the server class
45 $server = new Sabre_DAV_Server($nodes);
46 $server->setBaseUri($baseUri);
47
48 // Plugins
49 $server->addPlugin(new Sabre_DAV_Auth_Plugin($authBackend,'SabreDAV'));
50 $server->addPlugin(new Sabre_DAV_Browser_Plugin());
51 //$server->addPlugin(new Sabre_CalDAV_Plugin());
52 $server->addPlugin(new Sabre_CardDAV_Plugin());
53 $server->addPlugin(new Sabre_DAVACL_Plugin());
54
55 // And off we go!
56 $server->exec();