Jak korzystać z Illuminate Database Query Builder & Eloquent w innych frameworkach z PHP 5.3.x

W przeszłości robiłem kilka projektów z Laravelem, ale teraz potrzebuję czegoś bardzo lekkiego dla projektu i poszedłem użyć Slim, działa świetnie na to, czego potrzebuję i chcę świetnego Eloquent ORM i Query Builder of Laravel, nie mogę idź teraz bez niego :) Teraz udaje mi się wszystko połączyć z kompozytorem, wykorzystując informacje, które Taylor wyświetlał na swoim GitHub, skopiował jego fragment kodu

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();

Działa to doskonale na moim lokalnym dev (PHP 5.4.x), ale kiedy umieszczam go na moim serwerzePHP 5.3.x, to już nie działa :( Teraz widzę, że 1 problem polega na tym, że nie możemy używać anonimowej tablicy w ten sposób[] ale zamiast tego powinien być zapisany stary sposóbarray(), to jest w środkuaddConnection(array($settings)) świetnie, teraz trochę dalej ... ale potem po tym, jak wydaje się, że się rozbija$capsule->setEventDispatcher() i nie mam dzienników na moim serwerze (znalazłem tylko przez var_dump () tu i tam), to tylko NAS i nie chcę nawet myśleć o spędzeniu kilku godzin tylko po to, aby dowiedzieć się, jak to włączyć. Ale zabawne jest to, że pracowałem z projektem Laravel 4 ... więc po co budować jego częśćIlluminate\Database nie działa wtedy? Znalazłem także inny fragment kodu, aby Eloquent ORM działał w 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);

ale jeśli użyję tego fragmentu kodu, który przy okazji jest dobry w modelach. Muszę użyć$conn->table('...')... zamiast prostej metody fasadyDB::table(....) czego chcę, dlaczego tak ważne jest powiedzenie? Cóż, jeśli chcę w przyszłości przejść na Laravel ... Musiałbym zmienić wszystkie$conn-> doDB:: więc wolałbym zrobić to dobrze za pierwszym razem. Jeśli ktoś wie, jak utworzyć fasadę na drugim kawałku kodu, byłbym też szczęśliwy ... Dzięki za pomoc.

questionAnswers(3)

yourAnswerToTheQuestion