99 lines
2.9 KiB
PHP
99 lines
2.9 KiB
PHP
<?php
|
|
|
|
namespace App\Controllers;
|
|
|
|
use CodeIgniter\Controller;
|
|
use CodeIgniter\HTTP\CLIRequest;
|
|
use CodeIgniter\HTTP\IncomingRequest;
|
|
use CodeIgniter\HTTP\RequestInterface;
|
|
use CodeIgniter\HTTP\ResponseInterface;
|
|
use Psr\Log\LoggerInterface;
|
|
use CodeIgniter\Cache\CacheInterface;
|
|
|
|
|
|
/**
|
|
* Class BaseController
|
|
*
|
|
* BaseController provides a convenient place for loading components
|
|
* and performing functions that are needed by all your controllers.
|
|
* Extend this class in any new controllers:
|
|
* class Home extends BaseController
|
|
*
|
|
* For security be sure to declare any new methods as protected or private.
|
|
*/
|
|
class BaseController extends Controller
|
|
{
|
|
/**
|
|
* Instance of the main Request object.
|
|
*
|
|
* @var CLIRequest|IncomingRequest
|
|
*/
|
|
protected $request;
|
|
|
|
/**
|
|
* An array of helpers to be loaded automatically upon
|
|
* class instantiation. These helpers will be available
|
|
* to all other controllers that extend BaseController.
|
|
*
|
|
* @var array
|
|
*/
|
|
protected $helpers = [];
|
|
|
|
/**
|
|
* Constructor.
|
|
*/
|
|
public function initController(RequestInterface $request, ResponseInterface $response, LoggerInterface $logger)
|
|
{
|
|
// Do Not Edit This Line
|
|
parent::initController($request, $response, $logger);
|
|
|
|
// Preload any models, libraries, etc, here.
|
|
|
|
// E.g.: $this->session = \Config\Services::session();
|
|
}
|
|
|
|
|
|
public function saveCache($cacheKey,$data){
|
|
$cacheKey = CACHE_DOMAIN."-".$cacheKey;
|
|
// $cache = \Config\Services::cache();
|
|
if (! $foo = cache($cacheKey)) {
|
|
echo 'Saving to the cache!<br>';
|
|
// cache()->save($cacheKey, $this->data_stringify($data), 3000);
|
|
cache()->save($cacheKey, serialize($data), 3000);
|
|
|
|
//serialize
|
|
}
|
|
$foo = cache()->get($cacheKey);
|
|
log_message('critical', "FROM Cache -> ".$foo );
|
|
|
|
}
|
|
|
|
public function getCache($cacheKey){
|
|
$data = [];
|
|
$cacheKey = CACHE_DOMAIN."-".$cacheKey;
|
|
if (cache($cacheKey)) {
|
|
// echo 'Getting Data From Cache!<br>';
|
|
$data = unserialize(cache()->get($cacheKey));
|
|
}
|
|
return $data;
|
|
}
|
|
private function data_stringify($data) {
|
|
switch (gettype($data)) {
|
|
case 'string' : return '\''.addcslashes($data, "'\\").'\'';
|
|
case 'boolean': return $data ? 'true' : 'false';
|
|
case 'NULL' : return 'null';
|
|
case 'object' :
|
|
case 'array' :
|
|
$expressions = [];
|
|
foreach ($data as $c_key => $c_value) {
|
|
$expressions[] = $this->data_stringify($c_key).' => '.
|
|
$this->data_stringify($c_value);
|
|
}
|
|
return gettype($data) === 'object' ?
|
|
'(object)['.implode(', ', $expressions).']' :
|
|
'['.implode(', ', $expressions).']';
|
|
default: return (string)$data;
|
|
}
|
|
}
|
|
}
|