Files
geodb/geoapi/api/Api.php
2013-07-01 17:47:45 +02:00

72 lines
1.7 KiB
PHP

<?php
namespace api;
include_once "../../global.inc.php";
include_once PATH_DATABASE . "/SQLManager.php";
include_once PATH_UTILITTY . "/XmlManager.php";
include_once PATH_UTILITTY . "/JsonManager.php";
require_once PATH_3PARTY . "/Slim/Slim.php";
\Slim\Slim::registerAutoloader();
/**
* This class provides some general API methods
* @author stubbfel
* @since 20.06.2013
*/
abstract class Api extends \Slim\Slim {
/**
* Variable for the sql manager of the api
* @var <T>:SqlManager
*/
protected $sqlManager;
/**
* Variable for the serialazarion manager of the api
* @var <T>:SqlManager
*/
protected $serialManager;
protected static $contentypeXML = "application/xml;charset=utf-8";
protected static $contentypeJson = "application/json;charset=utf-8";
/**
* Default-Constructor
*/
public function __construct($headers = array()) {
$this->connect();
parent::__construct();
// set content type td xml
if ($headers && preg_match('/json/', $headers["Accept"])) {
$this->serialManager = new \utiliy\JsonManager();
$this->contentType(self::$contentypeJson);
} else {
$this->serialManager = new \utiliy\XmlManager();
$this->contentType(self::$contentypeXML);
}
}
/**
* Default-DeConstructor
*/
public function __destruct() {
// destroy the sqlManager
$this->sqlManager->closeConnection();
unset($this->sqlManager);
unset($this->serialManager);
}
/**
* Method start a connection to the database
*/
public function connect() {
$this->sqlManager->connect();
}
}
?>