Недавно я начал использовать RedBean ORM.
У меня есть тип пользовательского компонента для хранения информации о пользователе и связанная модель FUSE для пользовательских функций.
Когда пользователь входит в систему или сеанс уже установлен, Redbean извлекает информацию о пользователе, включая адрес.
Пока пользователь не вошел в систему, я устанавливаю значения штата и города для нового пользовательского компонента через службы определения местоположения GeoIP.
Мне интересно, какова наилучшая практика в этом типе процедуры.
Как я это вижу, у меня есть несколько вариантов:
- Создайте метод в пользовательской модели FUSE, который создает экземпляр объекта geoip и устанавливает значения.
- Создайте экземпляр объекта geoip вне модели FUSE и установите значения напрямую, т.е.: $user->state = $location->state;
- Создайте экземпляр объекта geoip вне модели FUSE, но передайте объект установщику модели FUSE, который знает, как с ним обращаться.
Я предполагаю, что вы действительно не хотите использовать первый вариант, потому что он создает зависимость для класса.
Какие-нибудь мысли?