Eu estou trabalhando em um novo projeto Silex e estou tendo problemas de montagem de uma rota aos meus fornecedores controlador. Eu tenho feito isso com sucesso antes em outro projeto, mas agora quando eu coloco as seguintes rotas em app.php
:
$app->mount('/', new CommonController());
$app->mount('/feeds', new FeedsController());
$app->mount('/admin', new AdminController());
Eu recebo um erro fatal: Fatal error: Call to undefined method Silex\Route::setPath() in [root]/vendor/symfony/routing/Symfony/Component/Routing/RouteCollection.php on line 255
EDIT:
O erro não são jogados quando eu montar a rota raiz. Só quando eu adiciono /feeds
ou /admin
.
EDIT FIM
Eu não consigo descobrir onde isso pode estar vindo - Eu procurei meu outro projeto de trabalhar para esta definição de função, mas é longe de ser encontrada no código. Eu acho que pode estar faltando uma biblioteca em composer.json
mas não tenho certeza de qual poderia ser - o arquivo é quase idêntico em ambos os projetos:
TRABALHO 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]
}
}
}
Quebrado 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]
}
}
}
Novamente, isto não pode mesmo ser a causa raiz do meu problema, apenas o meu sentimento de intestino. Alguém pode decifrar o que está acontecendo aqui?
SEGUNDO 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;
}
}