For various reasons I have noticed that several files independently compute the 
value of $IP. For example, maintenance/Command.inc and includes/WebStart.php 
both calculate its value. One would expect this value to be computed in one 
place only and used globally. The logical place is LocalSettings.php.

Sprinkling the computation of $IP all over the place is just looking for 
trouble. At some point the code used to make this computation may diverge and 
you will have bugs introduced. My first reaction to this problem was to wonder 
why these files didn't just require LocalSettings.php. However, since it is a 
fairly complex file doing so might not be desirable because: 1) there are 
values in LocalSettings.php that would interfere with values in these files, 2) 
there is some ordering problem that might occur, or 3) there are performance 
considerations.

If it isn't possible and or desirable to replace the distributed computation of 
$IP with require_once('LocalSettings.php'), then I suggest breaking 
LocalSettings into two parts, say LocalSettingsCore.php and 
LocalSettingsNonCore.php (I am sure someone can come up with better names). 
LocalSettingsCore.php would contain only those calculations and definitions 
that do not interfere with the core MW files. LocalSettingsNonCore.php would 
contain everything else now in LocalSettings.php. Obviously, the first 
candidate for inclusion in LocalSettingsCore.php is the computation of $IP. 
Once such a separation is carried out, files like maintenance/Command.inc and 
includes/WebStart.php can require_once('LocalSettingsCore.php') instead of 
independently computing $IP.


      

_______________________________________________
Wikitech-l mailing list
Wikitech-l@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/wikitech-l

Reply via email to