Php 供应商更新了FOS用户捆绑包,其中包含;对非对象调用成员函数has();
我为一个Symfony 2.8项目更新了我的供应商,但登录页面突然无法加载–相反,我得到了以下信息: 错误:对中的非对象调用成员函数has() 供应商/symfony/symfony/src/symfony/Bundle/FrameworkBundle/Controller/Controller.php 第184行Php 供应商更新了FOS用户捆绑包,其中包含;对非对象调用成员函数has();,php,symfony,fosuserbundle,Php,Symfony,Fosuserbundle,我为一个Symfony 2.8项目更新了我的供应商,但登录页面突然无法加载–相反,我得到了以下信息: 错误:对中的非对象调用成员函数has() 供应商/symfony/symfony/src/symfony/Bundle/FrameworkBundle/Controller/Controller.php 第184行 这类问题我已经见过好几次了,但我找不到一个可以接受的答案和解释。这就来了 基本问题在于: "friendsofsymfony/user-bundle": "~2.0@dev", 当
这类问题我已经见过好几次了,但我找不到一个可以接受的答案和解释。这就来了 基本问题在于:
"friendsofsymfony/user-bundle": "~2.0@dev",
当Symfony 2.8/3.0首次发布时,FOSUserBundle的稳定1.x版本不再有效。2.x版本已经开发了很多年了,但还没有看到何时能够稳定下来的实际路线图。因此,开发部门被黑客入侵以使其正常工作。人们别无选择,只能使用它,这当然是危险的,因为你永远不知道什么时候开发变更会破坏你的代码
随着时间的推移,FOSUserBundle最终发布了一个稳定的2.x版本。然而,相当多的开发人员从来没有抽出时间来更新他们的依赖项,而是继续使用主分支
快进到现在。Symfony 4的发布现在已经在master分支中触发了大量的开发。正在对现有2.8(可能还有3.0)代码进行突破性更改的开发
底线是使用具有以下特性的稳定分支:
"friendsofsymfony/user-bundle": "~2.0",
之后是编写器更新。这很奇怪,但今天我使用composer.json中的正确配置对编写器进行了更新-
"friendsofsymfony/user-bundle": "~2.0",
但一个月前也出现了同样的错误:
错误:在第184行的vendor/symfony/symfony/src/symfony/Bundle/FrameworkBundle/Controller/Controller.php中,调用成员函数has()on null对于那些使用symfony 3.2的人来说,版本“~2.1”与OP的版本“~2”抛出相同的错误。0@dev". 这起到了作用:
"friendsofsymfony/user-bundle": "2.0"
将它保持在2.0对我来说是个好办法。我也有同样的问题,但我没有@dev(而且从来没有过) 堆栈跟踪有点不同:
in vendor\symfony\symfony\src\Symfony\Bundle\FrameworkBundle\Controller\Controller.php at line 234
这里有一个这样的问题,但解决了,我只是做了相反的事情。 我有:
“friendsofsymfony/user bundle”:“^2.1”,
在我的composer.json文件中,我调用了一个成员函数has()on null错误,为了解决这个问题,我实际上添加了“@dev it been:
“friendsofsymfony/用户包”:“^2。1@dev“,
然后用以下内容更新了我的作曲家:
作曲家更新
我想故事的寓意是:不要使用第三方软件的开发版本。因此,请尝试删除fos用户包中的@dev部分。在2.8/3.0首次发布时,它是需要很长一段时间的,但现在有稳定的版本可用。作为答案发布,我可以检查它是否已解决=)在2.1.1中对我来说也是一样,2.0.2没有问题.事实上,我越想这个,我就越觉得它不相关,所以我会开始一个新的线程。
in vendor\symfony\symfony\src\Symfony\Bundle\FrameworkBundle\Controller\Controller.php at line 234