Issue status update for http://drupal.org/node/19590 Project: Drupal Version: cvs Component: theme system Category: feature requests Priority: normal Assigned to: moshe weitzman Reported by: moshe weitzman Updated by: TDobes Status: patch +1... this also has the added benefit that the $custom_theme variable can be specified by a PHP node. (note that this doesn't work in preview, though... only after the node has been submitted) TDobes Previous comments: ------------------------------------------------------------------------ March 28, 2005 - 07:31 : moshe weitzman Attachment: http://drupal.org/files/issues/init_theme_lazy.patch (1.04 KB) Don't initialize the theme system during common.inc. Instead, wait for the first call to theme() and do it there. There are 2 big benefits: - sometimes you never call theme(), and thus don't ever need to include theme engine and template. thats a performance win. examples include RSS feeds, blogapi, distributed auth, ... - module developers are currently forced to use hook_init() to set a custom theme for a given page view. with this patch, they can wait and do this during hook_menu(). Without this delay, module developers are tempted, sometimes forced, to break the bootstrap and inadvertently load all the modules for every page view. I almost did this in Organic Groups module, where each group can shoose its own theme. You can break the bootstrap by doing something as simple as node_load(). This is a tiny patch, and merits consideration for 4.6, i think. ------------------------------------------------------------------------ March 28, 2005 - 07:48 : chx Very nice, very clever, very big plus one. BTW. What about including the "do not use hook_init instead hook_menu" in the "update your modules" section of handbook? ------------------------------------------------------------------------ March 28, 2005 - 08:21 : moshe weitzman that is already documented - http://drupaldocs.org/api/head/function/hook_init. it doesn't belong in the upgrading page it has worked this way for several rleases now. ------------------------------------------------------------------------ March 28, 2005 - 08:32 : chx Several releases? hook_menu came to existence in 4.5, and we have 4.6 coming up. And no, it was not working, I think it was you who have fixed bootstrap sometime around 4.5.2... ------------------------------------------------------------------------ March 28, 2005 - 11:42 : Chris Johnson Agree on this being a very nice patch. Nice performance optimization. +1 ------------------------------------------------------------------------ March 28, 2005 - 11:46 : Dries I wonder if this "performance win" is even measurable. That aside, it makes sense to do it this way.