get() ); } /** * Remove items from list of eager loaded items. * * @param array $ids The ids to remove. * @return void */ public static function removeEagerLoaded($ids) { self::$eagerLoaded = array_diff_key(self::$eagerLoaded, array_flip($ids)); } /** * Find eager loaded or find from database. * * @param int $id The ID to find. * @return object */ public static function findEagerLoaded($id) { if (isset(self::$eagerLoaded[$id])) { return self::$eagerLoaded[$id]; } $item = self::find($id); self::addItem($id, $item); return $item; } private static function addItems($items) { if (empty($items)) { return false; } foreach($items as $item) { self::$eagerLoaded[$item->id] = $item; } } private static function addItem($id, $item) { if ($item) { self::$eagerLoaded[$id] = $item; } } }