diff --git a/artisan b/artisan index 1c2ba63c..0c651ff4 100644 --- a/artisan +++ b/artisan @@ -4,7 +4,7 @@ * Laravel - A PHP Framework For Web Artisans * * @package Laravel - * @version 3.2.10 + * @version 3.2.11 * @author Taylor Otwell * @link http://laravel.com */ diff --git a/laravel/database/eloquent/relationships/belongs_to.php b/laravel/database/eloquent/relationships/belongs_to.php index ea3a3495..79802ee9 100644 --- a/laravel/database/eloquent/relationships/belongs_to.php +++ b/laravel/database/eloquent/relationships/belongs_to.php @@ -87,17 +87,18 @@ public function match($relationship, &$children, $parents) { $foreign = $this->foreign_key(); - $parents_hash = array(); + $dictionary = array(); + foreach ($parents as $parent) { - $parents_hash[$parent->get_key()] = $parent; + $dictionary[$parent->get_key()] = $parent; } foreach ($children as $child) { - if (array_key_exists($child->$foreign, $parents_hash)) + if (array_key_exists($child->$foreign, $dictionary)) { - $child->relationships[$relationship] = $parents_hash[$child->$foreign]; + $child->relationships[$relationship] = $dictionary[$child->$foreign]; } } } diff --git a/laravel/database/eloquent/relationships/has_many.php b/laravel/database/eloquent/relationships/has_many.php index c83eea15..b791a542 100644 --- a/laravel/database/eloquent/relationships/has_many.php +++ b/laravel/database/eloquent/relationships/has_many.php @@ -91,17 +91,18 @@ public function match($relationship, &$parents, $children) { $foreign = $this->foreign_key(); - $children_hash = array(); + $dictionary = array(); + foreach ($children as $child) { - $children_hash[$child->$foreign][] = $child; + $dictionary[$child->$foreign][] = $child; } foreach ($parents as $parent) { - if (array_key_exists($parent->get_key(), $children_hash)) + if (array_key_exists($key = $parent->get_key(), $dictionary)) { - $parent->relationships[$relationship] = $children_hash[$parent->get_key()]; + $parent->relationships[$relationship] = $dictionary[$key]; } } } diff --git a/laravel/database/eloquent/relationships/has_many_and_belongs_to.php b/laravel/database/eloquent/relationships/has_many_and_belongs_to.php index 88a4ff99..1c0d3e03 100644 --- a/laravel/database/eloquent/relationships/has_many_and_belongs_to.php +++ b/laravel/database/eloquent/relationships/has_many_and_belongs_to.php @@ -328,17 +328,18 @@ public function match($relationship, &$parents, $children) { $foreign = $this->foreign_key(); - $children_hash = array(); + $dictionary = array(); + foreach ($children as $child) { - $children_hash[$child->pivot->$foreign][] = $child; + $dictionary[$child->pivot->$foreign][] = $child; } foreach ($parents as $parent) { - if (array_key_exists($parent->get_key(), $children_hash)) + if (array_key_exists($key = $parent->get_key(), $dictionary)) { - $parent->relationships[$relationship] = $children_hash[$parent->get_key()]; + $parent->relationships[$relationship] = $dictionary[$key]; } } } diff --git a/laravel/database/eloquent/relationships/has_one.php b/laravel/database/eloquent/relationships/has_one.php index cd8a84ca..5a9ea760 100644 --- a/laravel/database/eloquent/relationships/has_one.php +++ b/laravel/database/eloquent/relationships/has_one.php @@ -38,22 +38,18 @@ public function match($relationship, &$parents, $children) { $foreign = $this->foreign_key(); - $children_hash = array(); + $dictionary = array(); + foreach ($children as $child) { - if (array_key_exists($child->$foreign, $children_hash)) - { - continue; - } - - $children_hash[$child->$foreign] = $child; + $dictionary[$child->$foreign] = $child; } foreach ($parents as $parent) { - if (array_key_exists($parent->get_key(), $children_hash)) + if (array_key_exists($key = $parent->get_key(), $dictionary)) { - $parent->relationships[$relationship] = $children_hash[$parent->get_key()]; + $parent->relationships[$relationship] = $dictionary[$key]; } } } diff --git a/laravel/documentation/changes.md b/laravel/documentation/changes.md index bd13f962..bac7c82b 100644 --- a/laravel/documentation/changes.md +++ b/laravel/documentation/changes.md @@ -2,6 +2,8 @@ # Laravel Change Log ## Contents +- [Laravel 3.2.11](#3.2.11) +- [Upgrading From 3.2.10](#upgrade-3.2.11) - [Laravel 3.2.10](#3.2.10) - [Upgrading From 3.2.9](#upgrade-3.2.10) - [Laravel 3.2.9](#3.2.9) @@ -45,6 +47,16 @@ ## Contents - [Laravel 3.1](#3.1) - [Upgrading From 3.0](#upgrade-3.1) + +## Laravel 3.2.11 + +- Improve performance of Eloquent eager load matching. + + +### Upgrading From 3.2.10 + +- Replace the **laravel** folder. + ## Laravel 3.2.10 diff --git a/paths.php b/paths.php index 2ac7848c..b9ab9229 100644 --- a/paths.php +++ b/paths.php @@ -3,7 +3,7 @@ * Laravel - A PHP Framework For Web Artisans * * @package Laravel - * @version 3.2.10 + * @version 3.2.11 * @author Taylor Otwell * @link http://laravel.com */ diff --git a/public/index.php b/public/index.php index 2b7a80c3..d133794a 100644 --- a/public/index.php +++ b/public/index.php @@ -3,7 +3,7 @@ * Laravel - A PHP Framework For Web Artisans * * @package Laravel - * @version 3.2.10 + * @version 3.2.11 * @author Taylor Otwell * @link http://laravel.com */