73 lines
1.4 KiB
PHP
73 lines
1.4 KiB
PHP
<?php
|
|
|
|
namespace Shaarli\Api\Controllers;
|
|
|
|
use Shaarli\Bookmark\BookmarkServiceInterface;
|
|
use Shaarli\Config\ConfigManager;
|
|
use Shaarli\History;
|
|
use Slim\Container;
|
|
|
|
/**
|
|
* Abstract Class ApiController
|
|
*
|
|
* Defines REST API Controller dependencies injected from the container.
|
|
*
|
|
* @package Api\Controllers
|
|
*/
|
|
abstract class ApiController
|
|
{
|
|
/**
|
|
* @var Container
|
|
*/
|
|
protected $ci;
|
|
|
|
/**
|
|
* @var ConfigManager
|
|
*/
|
|
protected $conf;
|
|
|
|
/**
|
|
* @var BookmarkServiceInterface
|
|
*/
|
|
protected $bookmarkService;
|
|
|
|
/**
|
|
* @var History
|
|
*/
|
|
protected $history;
|
|
|
|
/**
|
|
* @var int|null JSON style option.
|
|
*/
|
|
protected $jsonStyle;
|
|
|
|
/**
|
|
* ApiController constructor.
|
|
*
|
|
* Note: enabling debug mode displays JSON with readable formatting.
|
|
*
|
|
* @param Container $ci Slim container.
|
|
*/
|
|
public function __construct(Container $ci)
|
|
{
|
|
$this->ci = $ci;
|
|
$this->conf = $ci->get('conf');
|
|
$this->bookmarkService = $ci->get('db');
|
|
$this->history = $ci->get('history');
|
|
if ($this->conf->get('dev.debug', false)) {
|
|
$this->jsonStyle = JSON_PRETTY_PRINT;
|
|
} else {
|
|
$this->jsonStyle = null;
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Get the container.
|
|
*
|
|
* @return Container
|
|
*/
|
|
public function getCi()
|
|
{
|
|
return $this->ci;
|
|
}
|
|
}
|