So Daniel... What would be the canonical recovery with the Drupal 7 code the way it is? We probably need to have a big page that explains this.
Thanks, -Randy On Mon, Jan 24, 2011 at 11:47 AM, Daniel F. Kudwien <[email protected]>wrote: > > Using the autoloader protects you from WSOD should the ancestor class > > move to a new file, because it will not attempt to set up the classes > > the moment the module is enabled in the bootstrap. > > This is not true, actually it's the exact opposite - which happens to be > the > topic of this thread. > > Try moving around modules and files in D7. Try early alpha versions of > Entity module and update to later ones. > > Just try it. And see how Drupal blows up and leaves you with an almost > unrecoverable state. > > > The root of this problem is that Drupal requires a full bootstrap to flush > all caches and/or to rebuild the class registry. However, a full bootstrap > means that all .module files are loaded. Loading all .module files may > contain classes already: > > class Foo extends Bar { > } > > In case Bar was previously contained in > sites/all/modules/bar/includes/controller.inc and now got moved into > sites/all/modules/bar/bar.controller.inc, PHP is unable to find/autoload > Bar, so you get a fatal error upon the class definition of Foo. > > Once you manually resolved the class registry problem, you still won't be > able to bootstrap, due to http://drupal.org/node/996236 > > sun > > -- Randy Fay Drupal Module and Site Development [email protected] +1 970.462.7450
