ClassNotFoundException Symfony 用户包
ClassNotFoundException Symfony UserBundle
我正在 Symfony2 上开发一个网站,我想集成 FOSUserBundle。我正在使用 Doctrine ORM User class。我已按照 installation steps 进行操作,但出现此错误:
ClassNotFoundException in AppKernel.php line 21:
Attempted to load class "FOSUserBundle" from namespace "FOS\UserBundle".
Did you forget a "use" statement for another namespace?
AppKernel.php:
public function registerBundles()
{
$bundles = array(
...
new FOS\UserBundle\FOSUserBundle(),
);
看起来位置正确:FOSUserBundle.php 位于 \vendor\friendsofsymfony\userbundle
我认为命名空间是正确的:命名空间FOS\UserBundle;
其他文件:
#config.yml
fos_user:
db_driver: orm
firewall_name: main
user_class: REMERA\PlatformBundle\Entity\User
#routing.yml
fos_user:
resource: "@FOSUserBundle/Resources/config/routing/all.xml"
#security.yml
security:
encoders:
FOS\UserBundle\Model\UserInterface: bcrypt
role_hierarchy:
ROLE_ADMIN: ROLE_USER
ROLE_SUPER_ADMIN: ROLE_ADMIN
providers:
fos_userbundle:
id: fos_user.user_provider.username
firewalls:
main:
pattern: ^/
form_login:
provider: fos_userbundle
csrf_provider: security.csrf.token_manager # Use form.csrf_provider instead for Symfony <2.4
logout: true
anonymous: true
access_control:
- { path: ^/login$, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/register, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/resetting, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/admin/, role: ROLE_ADMIN }
我已经尝试解决这个问题好几个小时了,其他类似问题的答案并没有解决我的错误。我错过了什么吗?
提前致谢。
这是如何解决的:
先尝试清除缓存。然后,如果它仍然不工作,composer remove,composer require 和 composer update 再次。 – Brewal
当您尝试清除缓存但它没有被清除时,您应该使用 --no-warmup
选项,这将确保您的缓存被重新生成并且缓存不只是预热。我认为这可以帮助你:
php app/console cache:clear --env=prod --no-warmup
或
php app/console cache:clear --env=dev --no-warmup
我正在 Symfony2 上开发一个网站,我想集成 FOSUserBundle。我正在使用 Doctrine ORM User class。我已按照 installation steps 进行操作,但出现此错误:
ClassNotFoundException in AppKernel.php line 21:
Attempted to load class "FOSUserBundle" from namespace "FOS\UserBundle".
Did you forget a "use" statement for another namespace?
AppKernel.php:
public function registerBundles()
{
$bundles = array(
...
new FOS\UserBundle\FOSUserBundle(),
);
看起来位置正确:FOSUserBundle.php 位于 \vendor\friendsofsymfony\userbundle
我认为命名空间是正确的:命名空间FOS\UserBundle;
其他文件:
#config.yml
fos_user:
db_driver: orm
firewall_name: main
user_class: REMERA\PlatformBundle\Entity\User
#routing.yml
fos_user:
resource: "@FOSUserBundle/Resources/config/routing/all.xml"
#security.yml
security:
encoders:
FOS\UserBundle\Model\UserInterface: bcrypt
role_hierarchy:
ROLE_ADMIN: ROLE_USER
ROLE_SUPER_ADMIN: ROLE_ADMIN
providers:
fos_userbundle:
id: fos_user.user_provider.username
firewalls:
main:
pattern: ^/
form_login:
provider: fos_userbundle
csrf_provider: security.csrf.token_manager # Use form.csrf_provider instead for Symfony <2.4
logout: true
anonymous: true
access_control:
- { path: ^/login$, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/register, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/resetting, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/admin/, role: ROLE_ADMIN }
我已经尝试解决这个问题好几个小时了,其他类似问题的答案并没有解决我的错误。我错过了什么吗? 提前致谢。
这是如何解决的:
先尝试清除缓存。然后,如果它仍然不工作,composer remove,composer require 和 composer update 再次。 – Brewal
当您尝试清除缓存但它没有被清除时,您应该使用 --no-warmup
选项,这将确保您的缓存被重新生成并且缓存不只是预热。我认为这可以帮助你:
php app/console cache:clear --env=prod --no-warmup
或
php app/console cache:clear --env=dev --no-warmup