Чё плюс минус было интересно/ново/потенциально полезно:
- Абстрактный класс, который описывает поведение классов которые будут наследовать его - AbstractFilter
- Классы, которые содержат все данные о фильтрах: тип, имя, логика применения фильтра(билдер), ссылку на view и т.д. - app/Filters. Их же используем для отрисовке на фронте при помощи __toString(). Нэймспейсы с именами храним в базе данных(по идее какие-то еще данные можно хранить в базе и давать редактировать заказчику, надо думать как и что именно туда пихать), а регаем в провайдере, при помощи FilterManager
- Хелпер src/Support/helpers.php
- Интерфейс с единственным методом - OrderProcessPipe
- Процессы, его реализующие - src/Domain/Order/Processes
- Использвуем CheckoutController
- Эндпоинт(/thumbnails/{dir}/{method}/{size}/{folder}/{file?}), который чекает если уже есть, генерит и отдаёт тамбнэйл - ThumbnailController Конфиг - контроль доступных разрешений.
- Трэйт, метод makeThumbnail генерит url на наш эндпоинт HasThumbnail
- Расширяет base faker provider FakerImageProvider. Тут дергает картинку из fixtures folder, генерит копию с нужным именем, отдаёт путь, который сейвим в бд
- 2024_02_21_164333_change_products_table.php индексируем.
- ProductViewModel ищем.
- 2024_03_05_192001_create_seos_table.php Таблица в бд
- app/Models/Seo.php
- SeoUrlCast
- Шэрим с вьюхами SeoMiddleware. Опираемся на url'ы
- Денормализованные пропертис в модели продукта Product
- Job SavePropertiesForProductJob
- Observer ProductObserver
- Ещё несколько eav реализаций с других проектов: lucid.app auth required, запривачено в моём акке
- Для products, options, properties:
- Абcтрактный State
- Стейты Order'ов
- Стейты Payment'ов
- Асбтрактные прослойки OrderState, PaymentState
request('param')
- query, body, route, вложенность с '.'request()->input('param')
- query, body, вложенность с '.'request()->get('param')
- query, body. Используется Symfony component.