Ik ben bezig met een nieuwe Silex project en heb problemen met het monteren van een route naar mijn Controller providers. Ik heb met succes eerder gedaan in een ander project, maar nu wanneer Ik zet in de volgende routes app.php
:
$app->mount('/', new CommonController());
$app->mount('/feeds', new FeedsController());
$app->mount('/admin', new AdminController());
Ik ontvang een fatale fout: Fatal error: Call to undefined method Silex\Route::setPath() in [root]/vendor/symfony/routing/Symfony/Component/Routing/RouteCollection.php on line 255
EDIT:
De fout niet wordt gegenereerd wanneer ik monteer de wortel route. Alleen als ik toe te voegen /feeds
of /admin
.
END EDIT
Ik kan niet achterhalen waar dit zou kunnen komen uit - ik heb mijn andere werken project zocht voor deze functie definitie, maar het is nergens te vinden in de code. Ik denk dat ik zou kunnen missen een bibliotheek in composer.json
, maar ik ben niet zeker welke het zou kunnen zijn - het bestand is bijna identiek voor beide projecten:
WERKEN composer.json:
{
name : lyrixx/Silex-Kitchen-Edition,
type : library,
description : A Silex Edition. This project is a base for your silex applications.,
keywords : [framework],
homepage : http://lyrixx.github.com/Silex-Kitchen-Edition/,
license : MIT,
authors : [
{
name : Grégoire Pineau,
email : [email protected]
}
],
repositories: [
{
type: package,
package: {
name : twitter/bootstrap,
version : 2.0.4,
source : {
url : https://github.com/twitter/bootstrap.git,
type : git,
reference : v2.0.4
}
}
}
],
require: {
php : >=5.3.3,
silex/silex : dev-master,
twig/twig : 1.*,
monolog/monolog : 1.0.*,
symfony/form : 2.1.*,
symfony/translation : 2.1.*,
symfony/twig-bridge : 2.1.*,
symfony/validator : 2.1.*,
symfony/yaml : 2.1.*,
symfony/config : 2.1.*,
kriswallsmith/assetic : 1.0.*,
twitter/bootstrap : 2.0.4,
doctrine/dbal : 2.2.*,
symfony/security : 2.1.*,
fate/silex-extensions : dev-master,
michelf/php-markdown : 1.3.*@dev,
swiftmailer/swiftmailer : >=4.1.2,<4.2-dev
},
require-dev: {
symfony/dom-crawler : 2.1.*,
symfony/css-selector : 2.1.*,
symfony/browser-kit : 2.1.*
},
minimum-stability : dev,
scripts: {
post-install-cmd: Lx\\Composer\\Script::postInstall
},
autoload: {
psr-0: {
[autoload routes defined here]
}
}
}
Gebroken composer.json:
{
require: {
php : >=5.3.3,
silex/silex : dev-master,
twig/twig : 1.*,
monolog/monolog : 1.0.*,
symfony/form : 2.1.*,
symfony/translation : 2.1.*,
symfony/twig-bridge : 2.1.*,
symfony/validator : 2.1.*,
symfony/yaml : 2.1.*,
symfony/config : 2.1.*,
kriswallsmith/assetic : 1.0.*,
twitter/bootstrap : 2.0.*,
doctrine/dbal : 2.2.*,
fate/silex-extensions : dev-master,
swiftmailer/swiftmailer : >=4.1.2,<4.2-dev
},
autoload: {
psr-0: {
[autoload routes defined here]
}
}
}
Nogmaals, dit misschien niet eens de oorzaak van mijn probleem, gewoon mijn buikgevoel zijn. Kan iedereen ontcijferen wat er hier aan de hand?
TWEEDE EDIT: FeedsController.php
<?php
namespace Controllers;
use Controllers\CommonController;
use Silex\Application;
use Symfony\Component\HttpFoundation\Request;
class FeedsController extends CommonController
{
public function connect(Application $app)
{
$controller = $app['controllers_factory'];
$controller->get('/', function (Request $request, Application $app)
{
return 'Yay!';
});
return $controller;
}
}