Существует ли автозагрузка переменных в PHP?
если свойства public $controller; нет физически, то можно добавить методы __get() и __call(), от них уже отдавать что вам нужно
То, что вы хотите называется [внедрение зависимостей](https://ru.m.wikipedia.org/wiki/Внедрение_зависимости). Для php можете посмотреть на php-di.org