FOSUserBundle not found in appkernel

I use symfony for Windows and I tried to configure FOSUserBundle as described in the official documentation.

I get this error when trying to update a schema:

Class 'FOS\UserBundle\FOSUserBundle' not found in app/AppKernel.php line 20; 

looked for the problem and found this solution: adding this to autoload.php

 $loader->registerNamespaces(array( //all the rest 'FOS' => $vendor_dir . '/bundles', )); 

but it returns another error that says

 call to undefined method ...\ClassLoader::RegisterNamespace() in ...\autoload.php on line 13 

can someone tell me what to do ?: |

and this is my appkernel.php file:

 <?php use Symfony\Component\HttpKernel\Kernel; use Symfony\Component\Config\Loader\LoaderInterface; class AppKernel extends Kernel { public function registerBundles() { $bundles = array( new Symfony\Bundle\FrameworkBundle\FrameworkBundle(), new Symfony\Bundle\SecurityBundle\SecurityBundle(), new Symfony\Bundle\TwigBundle\TwigBundle(), new Symfony\Bundle\MonologBundle\MonologBundle(), new Symfony\Bundle\SwiftmailerBundle\SwiftmailerBundle(), new Symfony\Bundle\AsseticBundle\AsseticBundle(), new Doctrine\Bundle\DoctrineBundle\DoctrineBundle(), new Sensio\Bundle\FrameworkExtraBundle\SensioFrameworkExtraBundle(), new Sad\Bundle\WarehouseBundle\SadWarehouseBundle(), new FOS\UserBundle\FOSUserBundle(), ); if (in_array($this->getEnvironment(), array('dev', 'test'))) { $bundles[] = new Acme\DemoBundle\AcmeDemoBundle(); $bundles[] = new Symfony\Bundle\WebProfilerBundle\WebProfilerBundle(); $bundles[] = new Sensio\Bundle\DistributionBundle\SensioDistributionBundle(); $bundles[] = new Sensio\Bundle\GeneratorBundle\SensioGeneratorBundle(); } return $bundles; } public function registerContainerConfiguration(LoaderInterface $loader) { $loader->load(__DIR__.'/config/config_'.$this->getEnvironment().'.yml'); } } 
+4
source share
2 answers

I had the same problem. I found out that FOSUserBundle is not installed correctly. You must delete the directory / vendor / friendsofsymfony / and then update the package using:

 php composer.phar update friendsofsymfony/user-bundle 

It worked for me. I hope this helps someone else to have the same issue.

+3
source

Well, there is nothing wrong with the code.

Before we can take advantage of workarounds, try reinstalling the package by following these steps:

  • Remove this $loader->registerNamespaces(...) thing added to autoloader.php.
  • Run php composer.phar self-update to update the composer.
  • Remove the line use FOS\UserBundle\FOSUserBundle(), from AppKernel.php.
  • Run php composer.phar update to update all your packages.
  • Clear your cache by running php app/console cache:clear .
  • Add the line use FOS\UserBundle\FOSUserBundle(), to AppKernel.php again.

Those should do it. If you still cannot use the kit, and you need a workaround (which I would not recommend), this is the way to go:

Open the /autoload.php application. Immediately after $loader = require __DIR__ . '/../vendor/autoload.php $loader = require __DIR__ . '/../vendor/autoload.php . add the following:

 //Loads FOSUserBundle $loader->add('FOS', __DIR__.'/../vendor/friendsofsymfony/user-bundle/FOS'); 

Again, this should solve the problem, but still this is not the right way to do something. Your package should work.

+2
source

Source: https://habr.com/ru/post/1494274/


All Articles