72 lines
1.7 KiB
PHP
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();
|
|
}
|
|
|
|
}
|
|
|
|
?>
|