外からつかうなんてないよね?
- いやテストで・・・
- いや実はバッチで・・・
- いやフレームワークとは離したモジュールにしたくて・・・
いろんな理由でフレームワークの一部機能を外から使いたいなんて無謀なことに挑んでいる方は一定数いらっしゃると思われます。そんな人のお役に立てればと思い書きました。
ちなみに、ORMであるEloquentは拙筆のLaravel5でEloquentをフレームワークの外から使う方法をご覧ください。
ここではRedisをキャッシュとして使う方法を書いていますが、他のfileやopcacheなども同じ方法で可能と思われます。
結論
$app = new \Illuminate\Container\Container();
$app->singleton('redis', function () {
return new \Illuminate\Redis\Database([
'client' => 'predis',
'default' => [[
'host' => 'localhost',
'port' => 6379,
'database' => 0,
]],
]);
});
$app->singleton('config', function () {
return [
'cache.default' => 'redis',
'cache.prefix' => '',
'cache.stores.redis' => [
'driver' => 'redis',
'connection' => 'default',
],
];
});
$manager = new \Illuminate\Cache\CacheManager($app);
$cache = $manager->driver();
echo $cache->get('hogehoge');