7 This server features CalDAV support
12 date_default_timezone_set('Canada/Eastern');
14 // If you want to run the SabreDAV server in a custom location (using mod_rewrite for instance)
15 // You can override the baseUri here.
19 $pdo = new PDO('sqlite:data/db.sqlite');
20 $pdo->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
22 //Mapping PHP errors to exceptions
23 function exception_error_handler($errno, $errstr, $errfile, $errline ) {
24 throw new ErrorException($errstr, 0, $errno, $errfile, $errline);
26 set_error_handler("exception_error_handler");
29 require_once 'lib/Sabre/autoload.php';
32 $authBackend = new Sabre_DAV_Auth_Backend_PDO($pdo);
33 $calendarBackend = new Sabre_CalDAV_Backend_PDO($pdo);
34 $principalBackend = new Sabre_DAVACL_PrincipalBackend_PDO($pdo);
36 // Directory structure
38 new Sabre_CalDAV_Principal_Collection($principalBackend),
39 new Sabre_CalDAV_CalendarRootNode($principalBackend, $calendarBackend),
42 $server = new Sabre_DAV_Server($tree);
45 $server->setBaseUri($baseUri);
48 $authPlugin = new Sabre_DAV_Auth_Plugin($authBackend,'SabreDAV');
49 $server->addPlugin($authPlugin);
51 $aclPlugin = new Sabre_DAVACL_Plugin();
52 $server->addPlugin($aclPlugin);
54 $caldavPlugin = new Sabre_CalDAV_Plugin();
55 $server->addPlugin($caldavPlugin);
57 // Support for html frontend
58 $browser = new Sabre_DAV_Browser_Plugin();
59 $server->addPlugin($browser);