Closed filipgorny closed 10 years ago
Would you mind to reproduce your issue on a fork of Standard Edition? Would help us to debug.
Closing as there is no feedback.
Just run into this same exception after adding a form to my controller:
ClassNotFoundException: Attempted to load class "FlattenException" from namespace "Symfony\Component\Debug\Exception" in /vagrant/src/Rgrs/ContestBundle/Controller/DefaultController.php line 28. Do you need to "use" it from another namespace? Perhaps you need to add a use statement for one of the following: Symfony\Component\Debug\Exception\FlattenException, Symfony\Component\HttpKernel\Exception\FlattenException.
Here's the controller:
<?php
namespace Rgrs\ContestBundle\Controller;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Method;
/**
* @Route("/")
*/
class DefaultController extends BaseController
{
/**
* @Route("", name="homepage_action")
* @Method({"GET"})
*/
public function indexAction(Request $request)
{
$entity = new \Rgrs\ContestBundle\Entity\ContestEntryGCaptcha();
$contestForm = $this->createForm(new \Rgrs\ContestBundle\Form\ContestEntryGCaptchaForm(), $entity);
$contestForm->handleRequest($request);
return $this->render('RgrsContestBundle:Default:index.html.twig', array("form" => $contestForm->createView()));
}
}
Symfony version 2.4.4
Update:
Not extending BaseController (my code) by switching to Controller fixed it.
@radekz2 would you mind forking Symfony Standard Edition and recreating this issue on a branch? Controller alone is not enough to reproduce.
Not a problem, will update this as soon as I have some results, may take me couple of days.
Which version of the debug component do you have? I suspect you're hit by https://bugs.php.net/42098 Version 2.5 should have a proper workaround, tell me if it works with you.
How do I get that version number?
composer show -i
will show you the versions of all packages installed through composer
Here's what I see
doctrine/annotations v1.1.2 Docblock Annotations Parser
doctrine/cache v1.3.0 Caching library offering an object-oriented API for many cache backends
doctrine/collections v1.2 Collections Abstraction library
doctrine/common v2.4.1 Common Library for Doctrine projects
doctrine/dbal v2.4.2 Database Abstraction Layer
doctrine/doctrine-bundle v1.2.0 Symfony DoctrineBundle
doctrine/inflector v1.0 Common String Manipulations with regard to casing and singular/plural rules.
doctrine/lexer v1.0 Base library for a lexer that can be used in Top-Down, Recursive Descent Parsers.
doctrine/orm v2.4.2 Object-Relational-Mapper for PHP
excelwebzone/recaptcha-bundle dev-master d08f803 This bundle provides easy reCAPTCHA form field integration
gregwar/captcha v1.0.11 Captcha generator
gregwar/captcha-bundle dev-master 7c38520 Captcha bundle
incenteev/composer-parameter-handler v2.1.0 Composer script handling your ignored parameter file
jdorn/sql-formatter v1.2.17 a PHP SQL highlighting library
kriswallsmith/assetic v1.1.2 Asset Management for PHP
monolog/monolog 1.9.1 Sends your logs to files, sockets, inboxes, databases and various web services
psr/log 1.0.0 Common interface for logging libraries
sensio/distribution-bundle v2.3.4 The base bundle for the Symfony Distributions
sensio/framework-extra-bundle v3.0.0 This bundle provides a way to configure your controllers with annotations
sensio/generator-bundle v2.3.4 This bundle generates code for you
swiftmailer/swiftmailer v5.1.0 Swiftmailer, free feature-rich PHP mailer
symfony/assetic-bundle v2.3.0 Integrates Assetic into Symfony2
symfony/icu v1.2.1 Contains an excerpt of the ICU data and classes to load it.
symfony/monolog-bundle v2.5.1 Symfony MonologBundle
symfony/swiftmailer-bundle v2.3.7 Symfony SwiftmailerBundle
symfony/symfony v2.4.4 The Symfony PHP framework
twig/extensions v1.0.1 Common additional features for Twig that do not directly belong in core
twig/twig v1.15.1 Twig, the flexible, fast, and secure template language for PHP
symfony/symfony v2.4.4
means you have the 2.4.4 version of the Debug component (which is a subpart of the fullstack framework).
@nicolas-grekas opened a PR to fix the issue in 2.3 (which will be applied to 2.4 after the merge) in https://github.com/symfony/symfony/pull/10817
Ok great thanks!
@radekz2 can you please confirm that the proposed patch fixes the issue? The easiest way to do that might be to replace your vendor/symfony/symfony/src/Symfony/Component/Debug/ErrorHandler.php file with https://raw.githubusercontent.com/nicolas-grekas/symfony/b147cfaf15492660d6d878d6815512943446401b/src/Symfony/Component/Debug/ErrorHandler.php
I've copied the file and got a proper exception that helped me fix the actual code issue.
Applying this patch fixes the issue.
Thank you!
I have some weird issue with FlattenException. I tried to fix it myself but after few hours of thinking what can be wrong I didn't come to anything.
What I found out is that the FlattenException create method is called, with ClassNotFound exception as the first argument, with message that the FlattenException class is not found.
It sounds like a non-sense.
Actually I know what is wrong in my business logic code. I have a class that has incompatible method declaration with the parent class. I know it because I printed the exception stack in ExceptionHandler::createResponse. Then there is FlattenException::create method called which causes ClassNotFoundException, even it actually go into the create method.
The error message is
LocationEntity.php on line 0?
It is not a true of course.
When I comment out the FlattenException::create line, then Symfony doesn't print anything.
I tried to find the reason and fix it myself but I gave up. It may be even a PHP bug.