18e6796726
* REST API routes are handle by Slim. * Every API controller go through ApiMiddleware which handles security. * First service implemented `/info`, for tests purpose.
54 lines
1,023 B
PHP
54 lines
1,023 B
PHP
<?php
|
|
|
|
namespace Shaarli\Api\Controllers;
|
|
|
|
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 \LinkDB
|
|
*/
|
|
protected $linkDb;
|
|
|
|
/**
|
|
* @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->linkDb = $ci->get('db');
|
|
if ($this->conf->get('dev.debug', false)) {
|
|
$this->jsonStyle = JSON_PRETTY_PRINT;
|
|
} else {
|
|
$this->jsonStyle = null;
|
|
}
|
|
}
|
|
}
|