Sto lavorando su un nuovo progetto Silex e sto avendo problemi di montaggio di un percorso ai miei fornitori controller. Ho fatto con successo questo prima in un altro progetto, ma ora quando ho messo le seguenti rotte app.php
:
$app->mount('/', new CommonController());
$app->mount('/feeds', new FeedsController());
$app->mount('/admin', new AdminController());
Ricevo un errore fatale: Fatal error: Call to undefined method Silex\Route::setPath() in [root]/vendor/symfony/routing/Symfony/Component/Routing/RouteCollection.php on line 255
EDIT:
L'errore non viene generata quando monto la via principale. Solo quando aggiungo /feeds
o /admin
.
END EDIT
Non riesco a capire dove questo potrebbe essere provenienti da - Ho cercato il mio altro progetto di lavoro per questa definizione di funzione, ma è introvabile nel codice. Penso che potrei mancare una biblioteca composer.json
, ma non sono sicuro di quale potrebbe essere - il file è quasi identico in entrambi i progetti:
LAVORO 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]
}
}
}
composer.json rotto:
{
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]
}
}
}
Di nuovo, questo può anche non essere la causa principale del mio problema, solo il mio istinto. Qualcuno può decifrare quello che sta succedendo qui?
SECONDO 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;
}
}