MDL-20268 Significant performance improvement of generate_id()

Using the PHP's built-in generator instead of the current
implementation. See the issue description more details.
This commit is contained in:
mudrd8mz
2009-09-11 19:54:11 +00:00
parent 45e4294df2
commit 0c868b08a0
+1 -11
View File
@@ -61,11 +61,6 @@ class moodle_html_component {
* @var array $actions
*/
protected $actions = array();
/**
* This array of generated ids is kept static to avoid id collisions
* @var array $generated_ids
*/
public static $generated_ids = array();
/**
* Ensure some class names are an array.
@@ -173,12 +168,7 @@ class moodle_html_component {
* Internal method for generating a unique ID for the purpose of event handlers.
*/
protected function generate_id() {
// Generate an id that is not already used.
do {
$newid = get_class($this) . '-' . substr(sha1(microtime() * rand(0, 500)), 0, 6);
} while (in_array($this->id, moodle_html_component::$generated_ids));
$this->id = $newid;
moodle_html_component::$generated_ids[] = $newid;
$this->id = uniqid(get_class($this));
}
/**