Ich habe eine benutzerdefinierte Controller-Provider-Klasse, die gut funktioniert. Ich habe versucht, eine zweite Zugabe, und es hält nur sagen:Benutzerdefinierte ControllerProvider-Klasse nicht gefunden
Fatal error: Class 'Bar\BarControllerProvider' not found in C:\xampp\htdocs\foobar\src\app.php on line 18
ich habe es eingestellt auf die gleiche Weise wie die erste oben, mit
namespace Bar;
...
class BarControllerProvider implements ControllerProviderInterface {
public function connect(Application $app) {
...
$controllers = $app['controllers_factory'];
$controllers->get('/', function() use ($app) {
...
});
...
return $controllers;
}
}
Und der Autoloader eingerichtet in Komponist:
{
"require": {
"silex/silex": "~1.3",
"doctrine/dbal": "~2.2",
"symfony/security": "^3.0"
},
"autoload" : {
"psr-0": {
"Foo": "/src/Foo",
"Bar": "/src/Bar"
}
}
}
Datei-Verzeichnis sieht wie folgt aus:
-config (bunch of stuff in here)
-src
|-Foo
| |-FooControllerProvider.php
|-Bar
| |-BarControllerProvider.php
|-app.php
-vendor (bunch of stuff in here)
-web (bunch of stuff in here)
-composer.json
-composer.lock
app.php hat diese:
$app->mount("/foos", new Foo\FooControllerProvider());
$app->mount("/bars", new Bar\BarControllerProvider());
Ich habe die gesamten Anbieter-Ordner tatsächlich gelöscht und habe ein frischer Komponisten installieren und das hat keinen Unterschied machen.
Wenn ich die Bars mount, kommen foos gut. Warum kann es den BarControllerProvider nicht finden?
der Komponist [docs] (https://getcomposer.org/doc/04-schema.md#psr-0) Erwähnen Sie, dass Sie t o Beenden Sie jede Namespace-Deklaration mit '\\\'. Versuche das zu tun. – nVitius