过去我用 Laravel 做过几个项目,但现在我需要一个非常轻量级的项目,然后使用 Slim,它非常适合我的需要,我想要 Laravel 的出色的 Eloquent ORM 和查询构建器,不能现在不用它:) 现在我设法让这一切都与作曲家一起工作,使用泰勒在他的 GitHub 上显示的信息,复制了他的一段代码
use Illuminate\Database\Capsule\Manager as Capsule;
$capsule = new Capsule;
$capsule->addConnection([
'driver' => 'mysql',
'host' => 'localhost',
'database' => '',
'username' => '',
'password' => '',
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
]);
// Set the event dispatcher used by Eloquent models... (optional)
use Illuminate\Events\Dispatcher;
use Illuminate\Container\Container;
$capsule->setEventDispatcher(new Dispatcher(new Container));
// Set the cache manager instance used by connections... (optional)
$capsule->setCacheManager(...);
// Make this Capsule instance available globally via static methods... (optional)
$capsule->setAsGlobal();
// Setup the Eloquent ORM... (optional; unless you've used setEventDispatcher())
$capsule->bootEloquent();
这在我的本地开发(PHP 5.4.x)上非常有效,但是当我把它放在我的服务器PHP 5.3.x上时,它就不再工作了:(现在我看到 1 个问题是我们不能使用匿名数组像这样[]
,但应该写成旧的方式array()
,那就是在addConnection(array($settings))
伟大的内部,现在更远一点......但是之后它似乎在内部崩溃$capsule->setEventDispatcher()
并且我的服务器上没有日志(我只通过 var_dump( )在这里和那里),它只是一个 NAS,我什至不想花几个小时来了解如何启用它。但有趣的是,我有一个 Laravel 4 项目正在使用它......那么为什么只构建它的一部分Illuminate\Database
不起作用呢?我还发现了另一段代码让 Eloquent ORM 在 PHP 5.3.x 中工作
$settings = array(
'driver' => '',
'host' => '127.0.0.1',
'database' => '',
'username' => '',
'password' => '',
'charset' => "utf8",
'collation' => 'utf8_general_ci',
'prefix' => ''
);
// Bootstrap Eloquent ORM
$connFactory = new \Illuminate\Database\Connectors\ConnectionFactory(new Illuminate\Container\Container);
$conn = $connFactory->make($settings);
$resolver = new \Illuminate\Database\ConnectionResolver();
$resolver->addConnection('default', $conn);
$resolver->setDefaultConnection('default');
\Illuminate\Database\Eloquent\Model::setConnectionResolver($resolver);
但是如果我使用这段代码,顺便说一句,这对模型很好。我需要使用$conn->table('...')...
而不是我想要的 Facade 简单方式DB::table(....)
,为什么你会说它很重要?好吧,如果我将来想转换为 Laravel 怎么办...我必须将所有内容更改为$conn->
,DB::
所以我宁愿第一次就做对。如果有人知道如何在第二段代码上创建外观,我也会很高兴......感谢您的帮助。