Всем привет! При запросах к серверу через API, идет обращение к классу с соответствующим названием.
Например
UsersGetById вызовет следующую цепочку файлов:
index.php ->
init.php ->
UsersGetById.php
Например, клиент хочет получить данные о пользователе. НО, эти данные должны включать, например последние 10 фото из альбома и последние 10 постов со стены.
Я делаю так:
Файл
init.php вызывает метод
UsersGetById.php->run(), который проверяет необходимые поля (например ID требуемого пользователя) и обращается ко всем необходимым классам, в том числе к классу
Users (не путать с UsersGetById.php), который отвечает только за пользователей и имеет метод
Users->getById(),
Также идет обращения к классу альбомов
Albums->getPhotosByUserId()
и классу постов
Posts->getPostsByUserId()
Получается, что все необходимые поля, которые должны быть получены от клиента (в нашем случае
USER_ID), должны проверяться в методе
users.getById.php->run() как-то так:
if(isset($_GET['user_id']) && preg_match('/^[\d]+$/is')){
//... и пошли собирать данные по основным классам
$data['account_info'] = Users->getById($_GET['user_id']);
$data['photos'] = Albums->getPhotosByUserId($_GET['user_id']);
$data['posts'] = Posts->getPostsByUserId($_GET['user_id']);
return json_encode($data);
}else{
return false;
}
Я полагаю, не правильно из всех подобных классов обращаться к глобальному массиву $_GET?
Но я не могу придумать как этого избежать... Пните в нужную сторону пожалуйста.