A simple module to try on caching external requests
This commit is contained in:
Vendored
+107
@@ -0,0 +1,107 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Core\Cache;
|
||||||
|
|
||||||
|
use \App\Core\Template\Output as Output;
|
||||||
|
use \App\Core\Cache\Classes\Cache as Cache;
|
||||||
|
use RR\Response;
|
||||||
|
|
||||||
|
class CacheController extends \DefaultController
|
||||||
|
{
|
||||||
|
|
||||||
|
protected $_class = Cache::class;
|
||||||
|
protected $_baseUrl = '/cache';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Index
|
||||||
|
* Show the main Cache list
|
||||||
|
*/
|
||||||
|
function index()
|
||||||
|
{
|
||||||
|
Output::render('index', array('list' => Cache::findAll()));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Create
|
||||||
|
*
|
||||||
|
* Render the main Cache formulary
|
||||||
|
*/
|
||||||
|
function create()
|
||||||
|
{
|
||||||
|
Output::render('form', ['id' => 0]);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Store
|
||||||
|
*
|
||||||
|
* Store the param on the database
|
||||||
|
* @param Cache $cache
|
||||||
|
*/
|
||||||
|
function store(Cache $cache)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Search
|
||||||
|
*
|
||||||
|
* Store the param on the database
|
||||||
|
* @param Cache $cache
|
||||||
|
*/
|
||||||
|
function search()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Show
|
||||||
|
*
|
||||||
|
* Render one register
|
||||||
|
*
|
||||||
|
* @param Cache $cache
|
||||||
|
*/
|
||||||
|
function show(Cache $cache)
|
||||||
|
{
|
||||||
|
Response::json(stripslashes($cache->value))->send();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Edit
|
||||||
|
*
|
||||||
|
* Render the formular for a database Cache
|
||||||
|
*
|
||||||
|
* @param Cache $cache
|
||||||
|
*/
|
||||||
|
function edit(Cache $cache)
|
||||||
|
{
|
||||||
|
Output::render('form', $cache);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Update
|
||||||
|
* Store the changes of the param on the database
|
||||||
|
*
|
||||||
|
* @param Cache $cache
|
||||||
|
*/
|
||||||
|
function update(Cache $cache)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Destroy
|
||||||
|
* If the object has soft delete.
|
||||||
|
*
|
||||||
|
* @param Cache $cache
|
||||||
|
*/
|
||||||
|
function destroy(Cache $cache)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Purge
|
||||||
|
* Remove object even with soft delete.
|
||||||
|
*
|
||||||
|
* @param Cache $cache
|
||||||
|
*/
|
||||||
|
function purge(Cache $cache)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
}
|
||||||
Vendored
+23
@@ -0,0 +1,23 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
use App\Core\Template\Output as Output;
|
||||||
|
use Routes\RouteCollection as RouteCollection;
|
||||||
|
use ORM\DBInstance as DB;
|
||||||
|
use App\Core\Cache\Classes\Cache as Cache;
|
||||||
|
//Menu itens
|
||||||
|
RouteCollection::get('*', function () {
|
||||||
|
Output::addOnSubmenu('dev', '/cache', "Cache", "", ['class' => 'nav-link']);
|
||||||
|
}, -10)->doIgnore();
|
||||||
|
|
||||||
|
RouteCollection::group("/cache", function () {
|
||||||
|
RouteCollection::get("/", "\App\Core\Cache\CacheController@index");
|
||||||
|
RouteCollection::get("/table", "\App\Core\Cache\CacheController@table");
|
||||||
|
RouteCollection::post("/table", "\App\Core\Cache\CacheController@searchTable");
|
||||||
|
RouteCollection::get("/form", "\App\Core\Cache\CacheController@create");
|
||||||
|
RouteCollection::post("/", "\App\Core\Cache\CacheController@store");
|
||||||
|
RouteCollection::post("/search", "\App\Core\Cache\CacheController@search");
|
||||||
|
RouteCollection::get("/[i:id]", "\App\Core\Cache\CacheController@show");
|
||||||
|
RouteCollection::get("/[i:id]/edit", "\App\Core\Cache\CacheController@edit");
|
||||||
|
RouteCollection::put("/[i:id]/edit", "\App\Core\Cache\CacheController@update");
|
||||||
|
RouteCollection::delete("/[i:id]", "\App\Core\Cache\CacheController@destroy");
|
||||||
|
});
|
||||||
Vendored
+37
@@ -0,0 +1,37 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Core\Cache\Classes;
|
||||||
|
|
||||||
|
use ORM\Entity as Entity;
|
||||||
|
|
||||||
|
class Cache extends Entity {
|
||||||
|
|
||||||
|
//const _idPolice = Array("type" => "", "min" => 0, "max" => 100000, "step" => 2);
|
||||||
|
|
||||||
|
const _tableName = "core_caches";
|
||||||
|
const _timestamps = true;
|
||||||
|
|
||||||
|
const _properties = Array(
|
||||||
|
'id',
|
||||||
|
'name',
|
||||||
|
'description'
|
||||||
|
);
|
||||||
|
|
||||||
|
const _listable = Array(
|
||||||
|
'id',
|
||||||
|
'name'
|
||||||
|
);
|
||||||
|
|
||||||
|
const _searchable = Array(
|
||||||
|
'name'
|
||||||
|
);
|
||||||
|
|
||||||
|
const _orderable = Array(
|
||||||
|
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
//const _softdelete = true;
|
||||||
|
|
||||||
|
//const _connectionName = "";
|
||||||
|
}
|
||||||
Vendored
+30
@@ -0,0 +1,30 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
use Schema\Wrapper as Wrapper;
|
||||||
|
use App\Core\Sanity\MigratorController as Migrator;
|
||||||
|
|
||||||
|
//https://book.cakephp.org/phinx/0/en/migrations.html#valid-column-types
|
||||||
|
function core_cache_upgrade($pluginversion) {
|
||||||
|
if ($pluginversion < "0.0.1") {
|
||||||
|
$table = Wrapper::get_table("core_caches");
|
||||||
|
$table->addColumn("key", "string", Array("null" => false));
|
||||||
|
$table->addColumn("type", "string", Array("null" => false));
|
||||||
|
$table->addColumn("format", "string", Array("null" => false));
|
||||||
|
$table->addColumn("value", "text", Array("null" => true));
|
||||||
|
|
||||||
|
$table->addTimestamps();
|
||||||
|
$table->create();
|
||||||
|
|
||||||
|
Migrator::getInstance()->update_plugin_version("core_cache", "1.0.0");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
function core_cache_rollback($pluginversion) {
|
||||||
|
if($pluginversion > "0.0.1"){
|
||||||
|
$table = Wrapper::get_table("core_caches");
|
||||||
|
$table->drop();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
Vendored
+2
@@ -0,0 +1,2 @@
|
|||||||
|
<?php
|
||||||
|
$lang["cache"]["module_name"] = "Cache";
|
||||||
Vendored
+2
@@ -0,0 +1,2 @@
|
|||||||
|
<?php
|
||||||
|
$lang["cache"]["module_name"] = "Cache";
|
||||||
Vendored
Vendored
+4
@@ -0,0 +1,4 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
$plugin->name = "core_cache";
|
||||||
|
$plugin->version = "1.0.0";
|
||||||
Vendored
+62
@@ -0,0 +1,62 @@
|
|||||||
|
{{#id}}
|
||||||
|
<form method="POST" action="/cache/{{id}}/edit">
|
||||||
|
<input type="hidden" name="id" value="{{id}}" />
|
||||||
|
<input type="hidden" name="_method" value="put" />
|
||||||
|
{{/id}}
|
||||||
|
{{^id}}
|
||||||
|
<form method="POST" action="/cache">
|
||||||
|
<input type="hidden" name="id" value="" />
|
||||||
|
{{/id}}
|
||||||
|
<div class='row'>
|
||||||
|
<div class="col-md-8 col-xs-12 g-3">
|
||||||
|
<div class="card">
|
||||||
|
<div class="card-header">Header</div>
|
||||||
|
<div class="card-body">
|
||||||
|
<div class="row g-3">
|
||||||
|
<div class="col-xs-12 col-3">
|
||||||
|
<label class="form-label">Código</label>
|
||||||
|
<input type="text" class="form-control" name='code' value="{{code}}">
|
||||||
|
</div>
|
||||||
|
<div class="col-xs-12 col-9">
|
||||||
|
<label class="form-label">Nome</label>
|
||||||
|
<input type="text" class="form-control" name='name' value="{{name}}">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-xs-12 g-3">
|
||||||
|
<label class="form-label">Descrição</label>
|
||||||
|
<textarea class="form-control" name="descricao">{{description}}</textarea>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class='row'>
|
||||||
|
<div class="col-md-8 col-xs-12 g-3">
|
||||||
|
<div class="card">
|
||||||
|
<div class="card-header">Header</div>
|
||||||
|
<div class="card-body">
|
||||||
|
<div class="row g-3">
|
||||||
|
<div class="col-xs-12 col-3">
|
||||||
|
<label class="form-label">Código</label>
|
||||||
|
<input type="text" class="form-control" name='code' value="{{code}}">
|
||||||
|
</div>
|
||||||
|
<div class="col-xs-12 col-9">
|
||||||
|
<label class="form-label">Nome</label>
|
||||||
|
<input type="text" class="form-control" name='name' value="{{name}}">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-xs-12 g-3">
|
||||||
|
<label class="form-label">Descrição</label>
|
||||||
|
<textarea class="form-control" name="descricao">{{description}}</textarea>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
Vendored
+39
@@ -0,0 +1,39 @@
|
|||||||
|
<link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/11.7.0/styles/default.min.css">
|
||||||
|
<script src="//cdnjs.cloudflare.com/ajax/libs/highlight.js/11.7.0/highlight.min.js"></script>
|
||||||
|
|
||||||
|
<style>
|
||||||
|
.highlight {
|
||||||
|
padding: 20px;
|
||||||
|
background-color: #f8f9fa;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
||||||
|
<table class="table table-responsive">
|
||||||
|
{{#list}}
|
||||||
|
<tr id="{{id}}">
|
||||||
|
<td>{{id}}</td>
|
||||||
|
<td>{{key}}</td>
|
||||||
|
<td>{{type}}</td>
|
||||||
|
<td>{{format}}</td>
|
||||||
|
<td>{{created_at}}</td>
|
||||||
|
</tr>
|
||||||
|
{{/list}}
|
||||||
|
</table>
|
||||||
|
|
||||||
|
<pre>
|
||||||
|
<code id="canvas" class="language-json"></code>
|
||||||
|
</pre>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
// https://highlightjs.org/download/
|
||||||
|
// https://www.tutorialspoint.com/how-to-format-json-string-in-javascript
|
||||||
|
$('tr').on('click', function (e) {
|
||||||
|
let id = $(this).attr('id');
|
||||||
|
fetch("/cache/" + id)
|
||||||
|
.then(response => response.json())
|
||||||
|
.then(function (data) {
|
||||||
|
$('#canvas').html(JSON.stringify(data, null, 4));
|
||||||
|
hljs.highlightAll();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
</script>
|
||||||
Reference in New Issue
Block a user