Koenig, Ну представь две таблицы:
{
users: ['id', 'login'],
messages: ['id', 'message', 'author']
}Для них есть две сущности:
class User{
public $id;
public $login;
}
class Message{
public $id;
public $messag;
public $author;
}У Message есть связь с User через свойство author, в котором записывается идентификатор юзера, написавшего это сообщение.
Получить эту связь можно двумя способами.
1. Через Mapper:
class MessageMapper extends Mapper{
public function getAuthor(Message $message){
$userId = $message->author;
$userMapper = new UserMapper;
return $userMapper->fetch($userId);
}
}
$mapper = new MessageMapper;
$message = $mapper->fetch(1); // Получаем сообщение с id = 1
$author = $mapper->getAuthor($message); // Получаем автора этого сообщенияЕствественно метод getAuthor можно вынести в UserMapper и т.д., идею это не меняет.
2. Через Entity:
class Message{
...
public function getAuthor(){
$userId = $message->author;
$userMapper = new UserMapper;
return $userMapper->fetch($userId);
}
}
$mapper = new MessageMapper;
$message = $mapper->fetch(1); // Получаем сообщение с id = 1
$author = $message->getAuthor(); // Получаем автора этого сообщения