Вопрос про модели и репозиторий php?
Если тут так и не будет лаконичного объяснения - советую поискать 
ответы на эти вопросы в книге:
Implementing Domain Driven Design, Vaughn Vernon
Там есть целые разделы посвященные как моделям так и репозиториям.
В этом классе нельзя реализовывать метод getByID нужен и должен быть., это геттер, его суть - отдать свойство.  А само свойство(а) класса нужно делать закрытыми.  

В этом классе нельзя реализовывать методы save (сохранить в базу данных) нет никакой правильной точки зрения. почему нет?

abstract class Repo {
   public function save($model) {

class UserRepo extends Repo

class User extends Model {
  public function save($model) {
    $this->repository->save($model); // или
    $this->repositoryManager->getUserRepository()->save($model);

 Репозиторий может иметь переменную массив, в которую складывать объекты зачем туда что-то складывать? Его цель - принять модель/модели и сделать CRUD

Подскажите пожалуйста самый простой вариант реализации https://nixsolutions.github.io/design-patterns/str...