我有一个简单的Web应用程序,该应用程序最初是在Symfony 4.2中构建的,现在尝试将其更新为Symfony 4.4。我更新了composer.json并删除了composer.lock和symfony.lock文件以及供应商目录。
除了我的测试之外,一切都很好。
我得到了警告。
1x:“ Symfony \ Bundle \ FrameworkBundle \ Controller \ AbstractController :: get()”方法被认为是最终方法。从下一个主要版本开始,它可能会更改,恕不另行通知。您不应从“ App \ Controller \ ResourceController”扩展它。
这似乎是因为我的route.yaml是
main:
path: /{path}
defaults:
path: ''
requirements:
path: '.+'
methods: [HEAD, GET]
controller: App\Controller\ResourceController::get
所以我将其切换为
main:
path: /{path}
defaults:
path: ''
requirements:
path: '.+'
methods: HEAD|GET
controller: App\Controller\ResourceController::getResource
并在ResourceController中更改了函数名称。
如果我运行php ./bin/console server:start
,则可以使用该应用程序。
但是我的测试全部报告
5) App\Tests\Model\RDFSourceTest::testGetRDFSourceJSON
InvalidArgumentException: The controller for URI "/nobel_914.ttl" is not callable. Method "get" on class "App\Controller\ResourceController" should be public and non-abstract.
/sw/var/www/trellis-ldp/static-ldp/vendor/symfony/http-kernel/Controller/ControllerResolver.php:88
/sw/var/www/trellis-ldp/static-ldp/vendor/symfony/http-kernel/HttpKernel.php:129
/sw/var/www/trellis-ldp/static-ldp/vendor/symfony/http-kernel/HttpKernel.php:68
/sw/var/www/trellis-ldp/static-ldp/vendor/symfony/http-kernel/Kernel.php:201
/sw/var/www/trellis-ldp/static-ldp/vendor/symfony/http-kernel/Client.php:65
/sw/var/www/trellis-ldp/static-ldp/vendor/symfony/framework-bundle/Client.php:131
/sw/var/www/trellis-ldp/static-ldp/vendor/symfony/browser-kit/Client.php:404
/sw/var/www/trellis-ldp/static-ldp/test/Model/RDFSourceTest.php:77
因此,似乎没有在routes.yaml
中进行更改,但是我尝试了composer clear-cache
和composer dump-autoload
。我没主意了吗?