Лёгкая PHP 8.3+ библиотека для сокращения URL. SOLID и DDD, репозиторий на границе, без встроенного хранилища.
Архитектура · PHP · DDD
Problem
Сокращение URL — маленький домен, который фреймворки обычно поглощают. Хранение, коды и валидация смешиваются в одном классе.
Role
Автор и сопровождающий
Approach
Разделил Url как value object, логику сокращения, генерацию кода и интерфейс репозитория. Персистентность остаётся у приложения. Пакет tenqz/shortify в Composer.
Outcome
Библиотека, которая сокращает и раскрывает URL и не диктует, какая база за этим стоит.
Сокращение URL — доменная задача, а не повод тянуть фреймворк. Хранилище у приложения уже есть. Библиотека не должна делать вид, что это не так.
Shortify держит Url как value object с валидацией, генерирует коды и говорит с хранилищем через UrlRepositoryInterface. shorten и expand живут на фасаде. Персистентность остаётся снаружи пакета.