1. Go to this page and download the library: Download tobento/app-cache library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
tobento / app-cache example snippets
use Tobento\App\AppFactory;
// Create the app
$app = (new AppFactory())->createApp();
// Add directories:
$app->dirs()
->dir(realpath(__DIR__.'/../'), 'root')
->dir(realpath(__DIR__.'/../app/'), 'app')
->dir($app->dir('app').'config', 'config', group: 'config')
->dir($app->dir('root').'public', 'public')
->dir($app->dir('root').'vendor', 'vendor');
// Adding boots:
$app->boot(\Tobento\App\Cache\Boot\Cache::class);
// Run the app:
$app->run();
use Tobento\App\AppFactory;
use Tobento\Service\Cache\CacheItemPoolsInterface;
use Tobento\Service\Cache\Simple\CachesInterface;
use Psr\Cache\CacheItemPoolInterface;
use Psr\SimpleCache\CacheInterface;
// Create the app
$app = (new AppFactory())->createApp();
// Add directories:
$app->dirs()
->dir(realpath(__DIR__.'/../'), 'root')
->dir(realpath(__DIR__.'/../app/'), 'app')
->dir($app->dir('app').'config', 'config', group: 'config')
->dir($app->dir('root').'public', 'public')
->dir($app->dir('root').'vendor', 'vendor');
// Adding boots:
$app->boot(\Tobento\App\Cache\Boot\Cache::class);
$app->booting();
// PSR-6 cache:
// using the default pool:
$pool = $app->get(CacheItemPoolInterface::class);
// using the pools:
$pools = $app->get(CacheItemPoolsInterface::class);
// PSR-16 simple cache:
// using the default pool:
$cache = $app->get(CacheInterface::class);
// using the caches:
$caches = $app->get(CachesInterface::class);
// Run the app:
$app->run();
use Tobento\Service\Cache\CacheItemPoolsInterface;
use Tobento\Service\Cache\Simple\CachesInterface;
use Psr\Cache\CacheItemPoolInterface;
use Psr\SimpleCache\CacheInterface;
class SomeService
{
public function __construct(
protected CacheItemPoolsInterface $pools,
protected CacheItemPoolInterface $pool,
protected CachesInterface $caches,
protected CacheInterface $cache,
) {}
}
use Tobento\App\AppFactory;
use Tobento\Service\Cache\CacheItemPoolsInterface;
use Tobento\Service\Cache\Simple\CachesInterface;
use Psr\Cache\CacheItemPoolInterface;
use Psr\SimpleCache\CacheInterface;
// Create the app
$app = (new AppFactory())->createApp();
// Add directories:
$app->dirs()
->dir(realpath(__DIR__.'/../'), 'root')
->dir(realpath(__DIR__.'/../app/'), 'app')
->dir($app->dir('app').'config', 'config', group: 'config')
->dir($app->dir('root').'public', 'public')
->dir($app->dir('root').'vendor', 'vendor');
// PSR-6:
$app->on(CacheItemPoolsInterface::class, function(CacheItemPoolsInterface $pools) {
// using the add method:
$pools->add(name: 'name', pool: $pool);
// using the register method:
$pools->register(
name: 'name',
pool: function(string $name): CacheItemPoolInterface {
// create the pool:
return $pool;
},
);
});
// PSR-16:
$app->on(CachesInterface::class, function(CachesInterface $caches) {
// using the add method:
$caches->add(name: 'name', cache: $cache);
// using the register method:
$caches->register(
name: 'name',
cache: function(string $name): CacheInterface {
// create the cache:
return $cache;
},
);
});
// Adding boots:
$app->boot(\Tobento\App\Cache\Boot\Cache::class);
// Run the app:
$app->run();
use Tobento\Service\Schedule\Task;
use Butschster\CronExpression\Generator;
$schedule->task(
(new Task\CommandTask(
command: 'cache:pool:prune',
))
// schedule task:
->cron(Generator::create()->weekly())
);
app/config/cache.php
php ap cache:pool:prune
php ap cache:prune
php ap cache:pool:clear
php ap cache:pool:clear --pool=file --pool=another
php ap cache:clear
php ap cache:clear --cache=file --cache=another
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.