• Закон Деметры. Нужен ли?

    @StepEv
    А ваш пример закон не нарушает.

    В $user->getPosts()->getLast()->getComments(); каждый объект обращается только к одному знакомому ему объекту:

    posts = user.getPosts();
    lastPost = posts.getLast();
    comments = lastPost.getComments();

    Так что не переживайте, всё в порядке. Выше понаписали какой-то ереси, честно говоря.

    Нарушением было бы что-то типа $user.posts.last->getComments();

    Здесь получается что user знает о том, как устроен posts, а это не хорошо.

    Вообще-то по вашей же ссылке на википедии это всё хорошо расписано, даже с примерами.
    Ответ написан