I've officially switched over to PhpStorm as my primary PHP IDE. I'm loving many of its features, it's excellent. I love the fact that it can detect the usage of undeclared object vars and methods... But this can pose a problem in some cases. For example:
$this->dom = new DOMDocument;
$this->dom->formatOutput = true;
PhpStorm is marking formatOutput as an undefined field. But it's built-in to PHP. However that's not the only issue, that's actually a minor one. One of my biggest issues is that many codebases I work on use PHP's magic methods, specifically __get(), __set() and __call(). PhpStorm doesn't appear to support those because, for example:
$zend_console_getopt = new Zend_Console_Getopt(array(
"help|h" => "Show this help message"
It's marking help as an undefined field. Now I understand that it would be a huge task for PhpStorm to be able to autodetect this kind of thing, but it should at least mark undefined fields and methods in classes that have implementations of the magic methods differently, perhaps as a separate kind of inspection. Ideas?