Verwendung von Illuminate Database Query Builder & Eloquent in einem anderen Framework mit PHP 5.3.x

Ich habe in der Vergangenheit ein paar Projekte mit Laravel gemacht, aber jetzt brauche ich etwas sehr Leichtes für ein Projekt und bin auf Slim umgestiegen. Es funktioniert hervorragend für das, was ich brauche, und ich möchte, dass der großartige eloquente ORM- und Abfrage-Generator von Laravel es nicht kann Jetzt muss ich darauf verzichten :) Jetzt gelingt es mir, alles mit dem Komponisten zum Laufen zu bringen, indem ich die Informationen verwende, die Taylor auf seinem GitHub angezeigt hat, und seinen Code kopiere

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

Das funktioniert perfekt auf meinem lokalen Entwickler (PHP 5.4.x), aber wenn ich es auf meinen Server legePHP 5.3.x, es funktioniert einfach nicht mehr :( Jetzt sehe ich ein Problem darin, dass wir so ein anonymes Array nicht verwenden können[] sondern sollte auf die alte Art und Weise geschrieben werdenarray(), das ist in deraddConnection(array($settings)) toll, jetzt ein bisschen weiter ... aber dann scheint es drinnen zusammenzubrechen$capsule->setEventDispatcher() und ich habe keine Logs auf meinem Server (ich habe nur hier und da durch var_dump () gefunden), es ist nur ein NAS und ich möchte nicht einmal daran denken, ein paar Stunden damit zu verbringen, nur um herauszufinden, wie man es aktiviert. Aber was lustig ist, dass ich ein Laravel 4-Projekt damit arbeiten ließ ... warum also nur einen Teil davon bauen?Illuminate\Database funktioniert dann nicht Ich habe auch einen weiteren Code gefunden, mit dem Eloquent ORM in PHP 5.3.x funktioniert

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

aber wenn ich diesen Code verwende, ist das übrigens gut mit Models. Ich muss verwenden$conn->table('...')... anstelle der Fassade einfache Art und WeiseDB::table(....) was ist was ich will, warum ist es wichtig was du sagen würdest? Was ist, wenn ich in Zukunft zu Laravel konvertieren möchte? Ich müsste all das ändern$conn-> zuDB:: also mache ich es lieber gleich beim ersten mal richtig. Wenn jemand weiß, wie man Facade auf dem 2. Teil des Codes erstellt, würde ich mich auch freuen ... Vielen Dank für jede Hilfe.

Antworten auf die Frage(3)

Ihre Antwort auf die Frage