The main issue is that the IDE has no way to detect magic attributes and methods because that’s outside the possibilities of static analysis. Adding docblocks helps a lot with any decent IDE, e.g.:
-
In a view:
<?php /* @var $this View */
-
In a controller:
/** * @property Customer $Customer * @property Shop $Shop */ class OrdersController extends AppController{ }
Etc.