2015-10-19 12 views
8

Ich möchte Slim 3 in einem Unterverzeichnis verwenden, aber es scheint nicht zu laden. Alle Dateien sind im Unterverzeichnis enthalten, einschließlich composer.json. Hier ist meine composer.json:Class 'Slim Slim' nicht gefunden mit Composer

"require": { 
    "slim/slim": "3.0.0-RC1" 
} 

Hier ist mein Skript:

<?php 
require "vendor/autoload.php"; 
use \Slim\Slim; 

$app = new \Slim\Slim(); 
$app->get('/subdirectory/hello/:name', function ($name) { 
    echo "Hello, $name"; 
}); 
$app->run(); 

ich viele Dinge ausprobiert, darunter Class Slim not found when installing slim with composer und PHP Fatal error: Class 'Slim' not found. Leider haben sie mein Problem nicht gelöst.

Der Fehler, den ich bekomme, ist Fatal error: Class 'Slim\Slim' not found in ... on line 5, was $app = new \Slim\Slim(); entspricht.

Wer weiß, was ich vermisse?

+0

Haben Sie überprüft, ob es offene Fragen mit dem RC1? Haben Sie überprüft, ob der Autoloader korrekt eingebunden ist? Haben Sie überprüft, welchen Pfad der Autoloader verwendet? Haben Sie versucht, den Autoloader * zu dumpen? – m02ph3u5

+0

Auch, wenn Sie die Klasse importieren über * verwenden * nicht den Namespace beim Erstellen einer neuen Instanz setzen – mTorres

Antwort

13

Es scheint, dass Slim3 is not using Slim as main class name but App.

So sollte Ihr Code sein:

<?php 
require "vendor/autoload.php"; 
use \Slim\App; 

$app = new App(); 
$app->get('/subdirectory/hello/:name', function ($name) { 
    echo "Hello, $name"; 
}); 
$app->run(); 
+0

Für mich hat es nicht geholfen :(Gleicher Fehler ('Schwerwiegender Fehler: Klasse 'App' nicht gefunden in .. .') –

+2

@VladaKatlinskaya, Haben Sie den Anwendungs ​​\ Slim \ App-Satz vor dem Einfügen der Anwendungsvariablen gesetzt? Wenn Sie dies getan haben, fragen Sie einfach eine andere Frage, die besagt, dass diese Lösung nicht für Sie funktioniert. – mTorres