2013-06-14 1 views
3

Я создал папку «красноречивый», чтобы начать тестирование/обучение компонент, и мой файл composer.json является:Использование Красноречивый ОРМ из Laravel 4 снаружи Laravel

{ 
    "require": { 
    "php": ">=5.3.0", 
    "illuminate/database": "4.0.*" 
    } 
} 

Ниже мой тест. php файл с удаленными учетными данными. Он отлично работает, пока я не добавлю -> запомнить (10) в команду. Я хотел бы посмотреть, как добавить к нему следующий «Illuminate Cache», если это то, что нужно для начала использования -> запомнить(). Кто-нибудь знает какие-либо сообщения в блоге или учебные пособия о том, как это сделать?

<?php 
/** 
* Testing Laravel's Eloquent ORM 
* @see https://github.com/illuminate/database 
* @see http://laravel.com/docs/database 
*/ 
require 'vendor/autoload.php'; 

use Illuminate\Database\Capsule\Manager as Capsule; 

$capsule = new Capsule; 

$capsule->addConnection(array(
    'driver' => '', 
    'host'  => '', 
    'database' => '', 
    'username' => '', 
    'password' => '', 
    'charset' => 'utf8', 
    'collation' => 'utf8_unicode_ci', 
    'prefix' => '', 
)); 

//$capsule->bootEloquent(); 
$capsule->setAsGlobal(); 

$name = Capsule::table('user')->where('id', 123)->remember(10)->get(); 

var_dump($name); 

// PHP Fatal error: Uncaught exception 'ReflectionException' with message 'Class cache does not exist' 

Я не уверен, что следующий шаг, чтобы получить -> помню() работает. Я попробовал добавить подсветку/кеш в файл composer.json и обновлен. Я не был уверен, как использовать его с Красноречивым, за пределами Ларавеля.

+0

Может быть, это суть поможет вы: https://gist.github.com/clauddiu/4234104 –

ответ

4

Он должен уже затягивать «подсветку/кеш», искать в поставщике, и вы должны увидеть его там.

Вам нужно настроить диспетчер кэша, а затем передать, что через по телефону

$capsule->setCacheManager(CacheManager $cache); 

Я не смотрел под капотом подробную информацию о том, как это сделать, но, надеюсь, это будет достаточно деталей, чтобы получить Вас идти вперед.

Edit:

Вот что вам нужно добавить, чтобы получить его работу:

use Illuminate\Cache\CacheManager as CacheManager; 

$container = $capsule->getContainer(); 

$container->offsetGet('config')->offsetSet('cache.driver', 'array'); 

$cacheManager = new CacheManager($container); 

$capsule->setCacheManager($cacheManager); 

Очевидно, не стесняйтесь, чтобы изменить драйвер кэша, используемый, но имейте в виду, что изменение драйвера кэша потребует добавив дополнительные требуемые настройки.

+0

saf33r, спасибо за руководство. Кстати, поклонник вашего блога. Может быть, вы могли бы осветить эту тему и показать, как настроить другие драйверы кэша? – Poe

5

saff33r прав, но только, чтобы помочь кому-то, как мне, что потребность «файл» кэш это как:
в вашем composer.json

"illuminate/cache": "4.0.*", 
    "illuminate/filesystem": "4.0.*", 

в файле загрузки:

use \Illuminate\Database\Capsule\Manager as Capsule; 
    use \Illuminate\Cache\CacheManager as CacheManager; 
    use \Illuminate\Filesystem\Filesystem as Filesystem; 
    ... 

    $container = $capsule->getContainer(); 
    $container['config']['cache.driver'] = 'file'; 
    $container['config']['cache.path'] = __DIR__ . '/uploads/cache/eloquent'; 
    $container['config']['cache.connection'] = null; 
    $container['files'] = new Filesystem(); 

    $cacheManager = new CacheManager($container); 
    $capsule->setCacheManager($cacheManager); 
    $capsule->bootEloquent(); 
0

Отъезд https://github.com/Luracast/Laravel-Database Он обеспечивает полную красноречивую поддержку вне ларавелла, включая переработку ремесленников и многое другое

  • 4.2 ветвь содержит Laravel 4.2 * компоненты
  • 5.2 ветвь содержит Laravel 5.2 * компоненты

Раскрытие информации:.. Я автор выше хранилища