Приложение на laravel принимает строку в GET/POST запросе. Затем ищет информацию по этой строке с помощью обращения к сторонним сайтам через API (пример подобного приложения: aviasales.ru и похожие сервисы).
Количество сайтов, к которым нужно обращаться, заранее неизвестно, API у всех разное. Вопрос в том, как в laravel организовать хранение классов для взаимодействия с API каждого сайта.
Хочется в контроллере иметь возможность обращаться к сайтам следующим образом:
$keyword = Input::get('keyword');
$results = array();
$APIs = someFunctionToGetAPIs();
foreach ($APIs as $API) {
$results[] = $API->get($keyword);
}
Т.е. someFunctionToGetAPIs() должна возвращать экземпляры всех классов API.
Вариант, который первым приходит в голову: использовать модели без Eloquent, положить их в одну папку и в someFunctionToGetAPIs() пройтись по всем файлам папки и собрать объекты в массив. Или вместо моделей лучше использовать пакеты? Как в таком случае описать someFunctionToGetAPIs()?