Symfony2 File Found Class Was Not In It
Solution 1
Your namespace is wrong, rename it:
from: namespace Priceget\CollectorBundle\Crawler\Amazon;
to: namespace Priceget\CollectorBundle\Crawler;
Solution 2
This error also occurs if you do not put <?php
in the beginning of the file.
Solution 3
In addition to what's said by Igor, you obviously have to change the FQN class name in the service declaration (YML) if you want it to work.
Solution 4
This can be a bit misleading, it also happens if you don't extend your class correctly. In my instance I tried to extend a repository with an incorrect FQN:
class FilesRepository extends Doctrine\ORM\EntityRepository
should have been:
class FilesRepository extends \Doctrine\ORM\EntityRepository
Notice the missing backslash (\
).
manelescuer
NodeJS dev, ♥️passionate entrepreneur, SEO lover & traffic generator padawan
Updated on July 09, 2022Comments
-
manelescuer almost 2 years
This is my first question, besides I'm not english-native speaker, so sorry in advance for newbie mistakes...
I'm starting with Symfony2, and I've been facing an autoload problem for a couple of days, i'm getting crazy..
I'm just trying to use a PHP class inside my DefaultController of my AppBundle. I've read the way of doing this is by creating a service in my config.yml and giving a namespace to that class that matches.
Symfony tells me that it does found the file but the class is not in it, the exact error is:
The autoloader expected class "Priceget\CollectorBundle\Crawler\Amazon" to be defined in file "/srv/www/lol.com/public_html/priceget/symfony/src/Priceget/CollectorBundle/Crawler/Amazon.php". The file was found but the class was not in it, the class name or namespace probably has a typo.
And my class is just this:
<?php namespace Priceget\CollectorBundle\Crawler\Amazon; use Symfony\Component\HttpFoundation\Response; class Amazon { public function getAll() { return new Response('l0l'); } }
In my DefaultController I'm calling it like that:
<?php namespace Priceget\CollectorBundle\Controller; use Symfony\Bundle\FrameworkBundle\Controller\Controller; use Guzzle\Http\Client; use Symfony\Component\DomCrawler\Crawler; use Priceget\CollectorBundle\Crawler\Amazon; class DefaultController extends Controller { public function indexAction() { $amazon = $this->get('amazon.crawler'); } }
And my config.yml piece:
services: amazon.crawler: class: Priceget\CollectorBundle\Crawler\Amazon
I've already tried to:
- Empty cache
- Restart apache
- Extend the class to Controller? :-Z
Thank you so much in advance.