У меня в настоящее время есть ларавельная подсветка базы данных и красноречивая работа за пределами laravel.Ключ Laravel за пределами laravel
Теперь я пытаюсь заставить кэш работать.
Это то, что у меня есть сейчас.
<?php
require dirname(dirname(__DIR__)) . '/vendor/autoload.php';
require dirname(__DIR__) . '/config.php';
use Illuminate\Database\Capsule\Manager as DB;
use Illuminate\Cache\CacheManager as CacheManager;
$dbc = new DB;
$dbc->addConnection(array(
'driver' => 'mysql',
'host' => DB_HOST,
'database' => DB_NAME,
'username' => DB_USER,
'password' => DB_PASSWORD,
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
));
# Set the default fetch mode for all queries
$dbc->setFetchMode(PDO::FETCH_CLASS);
# Set up the cache
$container = $dbc->getContainer();
$container['config']['cache.driver'] = 'memcached';
$container['config']['cache.memcached'] = array('host' => '127.0.0.1', 'port' => 11211, 'weight' => 100);
$container->offsetGet('config')->offsetSet('cache.driver', 'array');
$cacheManager = new CacheManager($container);
$dbc->setCacheManager($cacheManager);
$dbc->setAsGlobal();
$dbc->bootEloquent();
global $dbc;
Это не работает для меня, несмотря на то, что memcached и php module memcached установлены и работают.
ОБНОВЛЕНИЕ У меня нет ошибок в этой конфигурации. Я просто ничего не вижу в memcached. Я тестировал следующую строку кода.
$dbc->table('users')->limit(10)->cacheTags(array('people', 'authors'))->remember(10)->get();
При просмотре на коробке с
[[email protected] vagrant]# telnet 127.0.0.1 11211
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.
stats items
END
Какая версия Laravel? –
Я использую версию 4. * @JosephSilber – David
FYI, модуль кэширования пакета DB был прерван в Laravel 5. Поэтому, даже если вы можете заставить его работать, я бы по-прежнему советовал вам не использовать его. –