Как использовать Cache and Keep code DRY в Laravel 5

У меня есть следующие строки кода, которые повторяются не только во многих методах контроллера, но и в нескольких контроллерах.

$Categories = \Cache::rememberForever('Categories', function() {
return \App\Models\Skill\Category_Model::all();
});

Есть ли какой-нибудь полезный способ, которым я могу использовать это, так что повторяющийся код может быть удален?

6

Решение

Используйте репозиторий для доступа к Category_Model модель:

//REPOSITORY CLASS
class CategoryRepository
{
public function getAll()
{
return \Cache::rememberForever('Categories', function() {
return \App\Models\Skill\Category_Model::all();
});
}
}

В контроллерах, где вам нужно получить категории, введите хранилище из конструктора контроллера и получите доступ к хранилищу из методов:

//INJECT THE REPOSITORY IN YOU CONTROLLER'S CONSTRUCTOR
public function __construct( CategoryRepository $catRepo )
{
$this->catRepo = $catRepo;
}

public function index()
{
//get the categories from the repository
$categories = $this->catRepo->getAll();
}

Это сохранит ваш код DRY, как вам нужно только позвонить $this->catRepo->getAll(); чтобы получить все категории

4

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector