Skip to content

Releases: yaleksandr89/symfony-shop

v3.0.3 — снижение потребления Git LFS bandwidth

Choose a tag to compare

@yaleksandr89 yaleksandr89 released this 26 Sep 19:42
Immutable release. Only release title and notes can be modified.
v3.0.3
743fe3c

Patch release с корректировкой CI и документации вокруг Chrome for Testing и Git LFS.

CI

  • GitHub Actions больше не скачивает Chrome for Testing через Git LFS;
  • workflow загружает зафиксированный Chrome for Testing 150.0.7871.46 напрямую из официального Google Chrome for Testing storage;
  • перед Docker build проверяются SHA-256 и целостность ZIP;
  • Docker baseline и Panther продолжают работать с тем же pinned browser version.

Git LFS

Git LFS остаётся поддерживаемым способом получить Chrome for Testing при обычном git clone, но CI больше не расходует Git LFS bandwidth.

GitHub source/release archives больше не рассматриваются как способ доставки Chrome for Testing: LFS object с браузером в них не включается.

Для локальной установки поддерживаются два способа получить browser archive:

  1. git lfs pull;
  2. загрузка pinned Chrome for Testing из официального источника с проверкой SHA-256.

Документация

README, getting-started.md и development.md синхронизированы во всех поддерживаемых языках:

  • Русский;
  • English;
  • Español;
  • 中文;
  • Français;
  • Deutsch.

Удалено устаревшее утверждение, что GitHub release/source ZIP содержит Chrome for Testing, и обновлено описание CI.

Совместимость

Application code, runtime behavior, dependencies, database schema, API, OAuth и Docker configuration относительно v3.0.2 не изменялись.

Основной стек остаётся прежним:

  • PHP 8.5;
  • Symfony 8.1;
  • API Platform 4.3;
  • Doctrine ORM 3 / DBAL 4;
  • PostgreSQL 18;
  • Docker Compose;
  • Vue 2 / Webpack Encore.

Проверки

Финальный checkpoint:

master:
743fe3c4a0940c4691eb26f71f9468c59adf555c

CI #34:
completed / success

v3.0.2 — кроссплатформенное отображение README

Choose a tag to compare

@yaleksandr89 yaleksandr89 released this 21 Sep 12:52
Immutable release. Only release title and notes can be modified.
v3.0.2
62307e4

Patch release с улучшением совместимости документации между Git-площадками.

Исправлено

  • обложка README переведена с HTML <img> на стандартный Markdown image syntax;
  • изменение синхронизировано во всех языковых версиях README:
    • Русский;
    • English;
    • Español;
    • 中文;
    • Français;
    • Deutsch;
  • обложка корректно отображается на GitHub, GitFlic и MosHub.

Совместимость

Application code, runtime, dependencies, database schema, API, OAuth, Docker configuration и CI относительно v3.0.1 не изменялись.

v3.0.1 — исправления документации и метаданных репозитория

Choose a tag to compare

@yaleksandr89 yaleksandr89 released this 26 Aug 14:30
Immutable release. Only release title and notes can be modified.
v3.0.1
23f7eed

Корректирующий patch release после v3.0.0.

Исправлено

  • исправлены ссылки в GitHub entrypoints Contributing и Security, включая корректную работу специальных представлений GitHub;
  • унифицирован порядок badges во всех языковых версиях README:
    • Source;
    • PHP;
    • Symfony;
    • PostgreSQL;
    • Docker;
    • CI;
    • License;
  • обновлены repository metadata и описание проекта;
  • восстановлена конфигурация добровольной поддержки через Boosty и Sponsr.

Совместимость

Application code, runtime, dependencies, database schema, API, OAuth и Docker configuration относительно v3.0.0 не изменялись.

Основной стек остаётся:

  • PHP 8.5;
  • Symfony 8.1;
  • API Platform 4.3;
  • Doctrine ORM 3 / DBAL 4;
  • PostgreSQL 18;
  • Docker Compose;
  • Vue 2 / Webpack Encore.

v3.0.0 — Symfony 8.1, PHP 8.5 и обновлённая архитектура проекта

Choose a tag to compare

@yaleksandr89 yaleksandr89 released this 26 Aug 00:25
Immutable release. Only release title and notes can be modified.
v3.0.0
c8572bc

Крупное обновление Symfony Shop: современный backend-стек, Docker-based окружение разработки, переработанная архитектура приложения, усиленные security-контракты, обновлённые OAuth-сценарии, тесты и полностью переписанная документация.

Backend

  • PHP 8.5;
  • Symfony 8.1;
  • API Platform 4.3;
  • Doctrine ORM 3 / DBAL 4;
  • PHPUnit 13;
  • обновлены совместимые Composer-зависимости и инструменты разработки;
  • удалены устаревшие зависимости и legacy tooling.

Docker и локальная разработка

Docker Compose является основным поддерживаемым окружением проекта.

Основные операции разработки собраны в Makefile:

  • запуск и остановка окружения;
  • Composer и Symfony Console;
  • npm и сборка frontend assets;
  • Doctrine migrations и demo data;
  • PHPUnit;
  • PHPStan;
  • PHP-CS-Fixer;
  • ESLint;
  • coverage.

PHP, Composer, PostgreSQL и Node.js для штатного workflow проекта на хосте не требуются.

Архитектура

Основные прикладные области:

  • Account;
  • Catalog;
  • Commerce;
  • Money.

Внутренние Symfony bundles:

  • AdminBundle;
  • OAuthBundle;
  • SeoBundle.

Удалён подтверждённый legacy/residue, централизована маршрутизация собственного кода и упрощены архитектурные границы приложения.

Security

Усилены существующие security-контракты приложения, включая:

  • изоляцию Cart и CartProduct;
  • защиту checkout;
  • транзакционную границу оформления заказа;
  • POST + CSRF для destructive admin operations;
  • безопасную обработку redirect и Referer;
  • reset-password privacy;
  • OAuth fail-closed behavior;
  • uniqueness внешних OAuth identities;
  • защищённые account linking/unlinking.

OAuth

Поддерживаются:

  • Google;
  • Yandex;
  • VKontakte;
  • GitHub;
  • Facebook;
  • LinkedIn.

Разделены сценарии обычного OAuth login/registration, явной привязки внешнего аккаунта и защищённой отвязки.

Совпадение email внешнего провайдера само по себе не приводит к автоматической привязке существующей локальной учётной записи.

Тесты и качество

Финальный backend baseline:

Unit:         289 tests / 1258 assertions
Integration:   81 tests / 776 assertions
Functional:   392 tests / 5875 assertions
Panther:         3 tests / 140 assertions

Total:        765 tests / 8049 assertions

Failures: 0
Errors:   0
Skips:    0

Также используются:

  • PHPStan;
  • PHP-CS-Fixer;
  • ESLint;
  • GitHub Actions;
  • Xdebug coverage.

Panther и Git LFS

Browser tests работают через Symfony Panther и Chrome for Testing 150.0.7871.46.

Chrome archive хранится через Git LFS.

Для обычного клонирования:

git lfs install
git lfs pull

Минорное обновление Symfony v6.4.9, рефаторинг, исправление ошибок

Choose a tag to compare

@yaleksandr89 yaleksandr89 released this 16 Jul 19:39
v2.3.0
710ac48

Обновление Symfony

Symfony обновлена, до максимально возможной, на текущий момент версии — 6.4.9. Дальнейшее обновление (до 7 версии) на текущий момент невозможно, всё упирается в 2 пакета:

  • php-translation/symfony-bundle — вопрос решается разработчиками пакета, есть соответствующий issue.
  • lexik/form-filter-bundle — пакет переведен в архив, необходимо искать альтернативу.

Рефакторинг кода

  • где это возможно, заменены аннотации на атрибуты: сущности, маршруты, тесты.
  • замена устаревших функций.
  • устранение ошибок и предупреждений выдаваемых в результате работы phpstan (level 4).
  • обновление драйверов: chromedriver, geckodriver.
  • обновление selenium сервера, а также добавление selenium-server-standalone - позволяет запускать сервер без параметра standalone, но имеет более старую версию.

Рефакторинг тестов

  • dama/doctrine-test-bundle - обновлен до 8 версии (ранее 6)
  • phpunit/phpunit - обновлен до 11 версии (ранее 9)

Внесены изменения в сами тесты. Тесты завершаются без ошибок, остались:

Remaining indirect deprecation notices (272)
Other deprecation notices (823)

Все это связано с api-platform/core - сейчас используется 2 версия. В ближайшее время постараюсь обновить до последней 3 версии.

Минорное обновление Symfony, рефаторинг кода, исправление ошибок, обновление сторонних пакетов, исправление deprecate уведомлений

@yaleksandr89 yaleksandr89 released this 08 Jul 21:01
v2.2.0
55cab52
  • Минорное обновление Symfony до 6.3.1 (composer.json - 6.3.*).
  • Рефаторинг кода с помощью php-cs-fixer, так и вручную (deprecate классы, изменение @required с phpDoc на атрибуты).
  • Исправление ошибок с помощью phpstan и возникающие после обновления symfony/* и сторонних пакетов.
  • Обновление сторонних пакетов.
  • Исправление deprecate уведомлений, который выводятся в профилировщике. Исправлены все уведомления в App\...

Обновлен конфиг для deployer, устранены ошибки (phpstan), удален circleci

Choose a tag to compare

@yaleksandr89 yaleksandr89 released this 08 Jul 15:27
a520145
  • Обновлен конфиг для deployer - теперь используется deployer 7.3.1
  • Устранены ошибки phpstan - при проверки использовался 4 уровень
  • удален circleci - работа сервиса в России приостановлена
  • Оптимизация проекта: обновлен движок хрома, убраны "избыточные" phpDoc аннотации

Проверка при авторизации через соц.сеть, обновление симфони

Choose a tag to compare

@yaleksandr89 yaleksandr89 released this 10 May 15:11
5cb3f86

Добавлена проверка на более ранюю авторизацию через выбранную социальную сеть у других пользователей. Если это было - будет выведенно сообщение об ошибке (Под логином этой социальной сети уже авторизовались на сайте).

Обнавлена Symfony с 6.0.6 по 6.0.8.

Update framework, added functionality 'link/unlink' social network

Choose a tag to compare

@yaleksandr89 yaleksandr89 released this 29 Mar 20:30

The framework version has been updated: 5.4 -> 6.0.6 and added functionality 'link/unlink' social networs in the user profile.

Symfony shop

Choose a tag to compare

@yaleksandr89 yaleksandr89 released this 26 Mar 22:55
f863175

Realised simple simfony shop. Added multiply oauth:

  • Google
  • Yandex
  • Vkontakte
  • Github

P.S. more details in the README.md