Le 23/07/2020 à 18:17, Cerulean a écrit :
Thank you very much for the detailed reply Guilherme. I really appreciate you taking the time to explain things and help me!

> We effectively create the proper values, but we also schedule them for validation once the "code" is completed. Verification happens as part of "processDeferred*" methods.

That makes complete sense to me. I've written a few parsers and interpreters over the years– small potatoes stuff, but I understand the different stages of validation involved.

> Your QueryException would be something like: [Semantical error] line 0, col 61 near 's.wrong FROM': Error: Class Submission has no field or association named 'wrong'.

This is the part I'm just not seeing over here. Here's a full line from the exception backtrace:

#1 /home/name/subfolder/vendor/doctrine/orm/lib/Doctrine/ORM/Query/Parser.php(771): Doctrine\ORM\Query\Parser->semanticalError('line 0, col 9 n...', Array)

You can see the error message is truncated with ellipses just at the word "near". That's what I see from the error dump on the loaded page, and in the php error log file.

> I do feel however that something in your application is swallowing the actual exception, and you only have visibility to the stack trace.

You are absolutely correct. If I wrap the erroneous DQL in a try/catch block and print the exception's message myself, I do see the full information. It shows everything I expected it should. That's wonderful and will really help reduce my frustration.

Do you have any idea how to prevent Doctrine's error messages from being truncated? I assume it's php's fault. I don't see any relevant php setting, aside from "log_errors_max_len", but I don't think that affects the stack backtrace. It's great to know this try/catch trick, but it would be more convenient if php just showed the crucial part of Doctrine's errors automatically.
Why are you trying to rely on the arguments in the backtrace (which are indeed dumped in a compact form) to see the Doctrine error message ? The argument passed to Parser::semanticalError gets set as the message of the exception. If your error reporting renders the backtrace but drops the error message, there is nothing we can do for you.

> We're always open for contributions!

Perhaps one day! I don't have the time for it now, but it would be cool and gratifying to work on a project as useful and technically interesting as Doctrine.

Thanks again for your help :)

Best,
~Martin Wierschin

--
Christophe | Stof

--
You received this message because you are subscribed to the Google Groups 
"doctrine-user" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/doctrine-user/6f4d1d7c-ed66-eeca-f140-7ed4c92c0047%40notk.org.

Reply via email to