get_string: Refactoring, performance improvements, bug fixes and unit tests
MDL-18669 get_string refactored to elimiate duplicate code and make it easier to understand. MDL-17763 parent language not processed correctly when getting a plugin string. MDL-16181 more intelligent caching to avoid repeated file_exists checks. MDL-12434 move values to array keys to improve lookup times. The main part of the refactoring is to create a singleton string_manager class to encapsulate the cached data and the processing, while breaking the code up into more smaller methods. Other performance improvements include: * Cache results of plugin name -> locations to search array. * Cache parent lang lookup. * Skip eval if the string does not contain $ \ or %. * Remove the unnecessary sprintf from the eval. There is a performance testing script in lib/simpletest/getstringperformancetester.php. For now this script has the old get_string implementation copied and pasted to the end, and renamed to old_get_string to allow for comparitive timings. There are now some unit tests for get_string in lib/simpletest/teststringmanager.php. I think I have managed to cover most of the tricky cases.
This commit is contained in:
@@ -26,6 +26,8 @@
|
||||
/**
|
||||
* Unit tests for (some of) ../moodlelib.php.
|
||||
*
|
||||
* Note, tests for get_string are in the separate file testgetstring.php.
|
||||
*
|
||||
* @copyright © 2006 The Open University
|
||||
* @author [email protected]
|
||||
* @author [email protected]
|
||||
@@ -68,12 +70,6 @@ class moodlelib_test extends UnitTestCase {
|
||||
)
|
||||
);
|
||||
|
||||
function setUp() {
|
||||
}
|
||||
|
||||
function tearDown() {
|
||||
}
|
||||
|
||||
function test_cleanremoteaddr() {
|
||||
//IPv4
|
||||
$this->assertEqual(cleanremoteaddr('1023.121.234.1'), null);
|
||||
|
||||
Reference in New Issue
Block a user