Yea, you heard me, I said STUPID! I hate the bare mention of that word since its mostly used in shallow disputes and does not bring any reasonable arguments to the table by it self. However, let me say that one more time… Magento’s way of handling xml config file attributes is down bottom bad and just stupid.
I just spend around 2 hours trying to figure why my module controller does not work (this happened on latest Magento version 1.3.2.3).
I guess this will be my first post where I focus on keyword “stupid”. I really do not wish to hurt anyone’s feelings, I have no tendency to trash upon other developers. I realize we all make mistakes. I know I make them every day. And as we move along we learn upon those mistakes. Magento can be great platform to learn a lot about PHP and app structures.
However, sometimes when it comes to Magento I simply snap. We do pro Magento development every day. What bothers me the most in this development cycle is that Magento simply silently ignores most of the work flow exceptions and you end up with “WTF just happened” expression on your face when things start to behave “differently”.
Take a look at the two screen shots below.
SCREEN SHOWS THE XML ERROR THAT WILL SILENTLY MAKE YOUR CODE FAIL, AND YOU WILL MOST LIKELY LOOSE COUPLE OF HOURS TRACING THE ISSUE

SCREEN SHOWS THE VALID VERION OF ABOVE XML FILE

Only difference “codepool” vs “codePool”.
Personally, for me this is NOT NORMAL! I strongly believe all two cases should work or at least the first (improper) one should trigger some kind of exception. I believe I am pretty good when it comes to tracing and debugging Magento code but common, how do you explain to your client that you just lost 2 hours for something that falls under the category of “project setup”?!
There are large number of places in code where the errors are simply ignored and fail safe mechanism is put in action. By fail safe I mostly think on try-catch block that have empty or commented out catch blocks. Common people, who can benefit from this? -Ok, no need to answer that
-Some will say this was so cause there are lot of stuff executed trough AJAX, or this is ecommerce solution and errors should be suppressed and so on… I say WTF! I want exceptions, I want errors, at least in dev environment
-Not to mention that Mage::setIsDeveloperMode(true) does not do really much.
Anyhow, to get back to the above mentioned screen shots. They are related to my custom module controller not working. My custom controller kept throwing me 404 page. Reason was the “invalid xml” file.
In large systems like Magento, it can be extremely time consuming to trace something that does not throw error (exception) like above example. At the end of the day it seems to me that Magento’s feature richness prevails in place of all its flaws.
I would like to hear your thoughts on this subject.