Sufir
Я не волшебник, я только учусь
PHP:
namespace Domain;
class User {
function __construct(
$id,
$login,
$email,
// ...и ещё с десяток обязательных параметров
);
function changeEmail($email);
function bindStaff($staffId);
}
2. Пользователь (данного приложения) может иметь привязку к сотруднику компании: привязка так же должна быть уникальной, сотрудник должен существовать и не должен быть уволенным на момент привязывания. (Сами сотрудники - это другой контекст, совершенно другой "корневой объект", "сводный корень" или как там кому больше нравится называть, совершенно друная другая БД. Не суть...).
Вроде как напрашивается спецификация?
PHP:
namespace Domain\User;
interface LoginSpecification {
function isSatisfiedBy($login);
}
PHP:
namespace Infrastructure\User;
interface LoginSpecification {
function isSatisfiedBy($login) {
return $this->db->query('SELECT false ... WHERE EXISTS $login');
}
}