commit 4c47bac3c2cf2c7bce0382f6dd89410254838a68 Author: David Mudrak Date: Fri Sep 11 21:52:05 2009 +0200 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. diff --git a/lib/outputcomponents.php b/lib/outputcomponents.php index aad58be..4cd7d01 100644 --- a/lib/outputcomponents.php +++ b/lib/outputcomponents.php @@ -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)); } /**