>в кукиз еще записывается ID пользователя и хеш его пароля
Зачем именно хеш пароля, запишите туда хеш случайной белиберды и храните его в отдельном поле в users.
Класс-entity (просто устанавливает/возвращает свойства) и класс-handler (авторизация, регистрация, функционал remember me). Можно еще класс-mapper (удаление, добавление, выбор из базы), если нет то использовать activeRecord и переложить эти функции на сущность.
class Controller
{
private $view;
public function __construct() {
$this->view=new View();
}
...
$this->view->display('template.html'); //использование
}
class View
{
public function display($template); {
include($template);
}
}
Соответственно от базового контроллера наследуются все остальные и через конструктор получают объект view с нужным методом
Сущность не должна что-то проверять, регистрировать, поэтому AvatarChecker. Или как вариант - метод checkAvatar() у Registrator-а, но это не так гибко, т.к. проверять аватар может еще где-нибудь понадобиться.
Всмысле, склеить все значения в одну строку?
$result='';
foreach ($json as $key => $value) {
$result.=$value;
}
Если json-объект еще не преобразован в массив, то предварительно
$json = json_decode($json_obj);