Php 未找到Silex\Route::setPath()
我正在进行一个新的Silex项目,在安装到控制器提供商的路由时遇到了问题。我以前在另一个项目中成功地做到了这一点,但现在我在app.php中添加了以下路径: 我收到一个致命错误:致命错误:在第255行的[root]/vendor/symfony/routing/symfony/Component/routing/RouteCollection.php中调用未定义的方法Silex\Route::setPath 编辑: 装载根路由时不会引发错误。仅当我添加/feed或/admin时。 结束编辑 我不知道这可能是从哪里来的——我在我的另一个工作项目中搜索了这个函数定义,但在代码中找不到它。我想我可能缺少composer.json中的一个库,但我不确定它可能是哪一个-两个项目中的文件几乎相同: WORKING composer.json: Breaked composer.json: 再说一次,这甚至可能不是我问题的根本原因,只是我的直觉。有人能解释这里发生了什么吗 第二次编辑:FeedsController.phpPhp 未找到Silex\Route::setPath(),php,silex,Php,Silex,我正在进行一个新的Silex项目,在安装到控制器提供商的路由时遇到了问题。我以前在另一个项目中成功地做到了这一点,但现在我在app.php中添加了以下路径: 我收到一个致命错误:致命错误:在第255行的[root]/vendor/symfony/routing/symfony/Component/routing/RouteCollection.php中调用未定义的方法Silex\Route::setPath 编辑: 装载根路由时不会引发错误。仅当我添加/feed或/admin时。 结束编辑 我不
我已经将问题缩小到供应商文件夹中的坏库,尽管我不能确定是哪一个。我将正常工作的供应商文件夹复制到我的坏文件夹中,然后一切都开始工作
一旦我知道确切的问题是什么,我将更新此答案。您问题中损坏的composer.json文件中包含的设置是否是此问题与正常问题之间的唯一区别?您能否向我们展示您的FeedController,例如,缩短了,所以只包含一条路由?@Adam-E这些文件被完全复制了。@Maerlyn我添加了FeedsController的代码。phpy您从底部缺少return$controller语句,这是这里的错误还是代码中的错误?
$app->mount('/', new CommonController());
$app->mount('/feeds', new FeedsController());
$app->mount('/admin', new AdminController());
{
"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" : "lyrixx@lyrixx.info"
}
],
"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]
}
}
}
{
"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]
}
}
}
<?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;
}
}