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
[email protected]
https://lists.wikimedia.org/mailman/listinfo/wikitech-l