3.8 KiB
Cabinet
apps/cabinet - старый личный кабинет и административный монолит на Symfony 5.4.
Стек
- Symfony 5.4.
- PHP в общем compose обслуживается контейнером
php82. - Twig-шаблоны.
- Webpack Encore для ассетов.
- Doctrine ORM 2 и migrations.
- PostgreSQL и отдельное подключение к Bitrix.
- Redis cache через Symfony cache pool.
- Авторизация через guard authenticator
App\Security\LoginFormAuthenticator.
Основные директории
src/Controller- страницы кабинета, админка и публичный API.src/Bundle- локальные интеграционные обертки: Bitrix, Infoclinica, Calltouch, SMS, Notisend, Yandex.src/Command- синхронизации и служебные операции.src/Entity- Doctrine entities.src/Form- формы Symfony.src/Service- бизнес-логика.templates- Twig-шаблоны.assets- JS/CSS-ассеты для Webpack Encore.
Расписание врачей
Публичный сайт (список врачей, слоты записи) получает живое расписание из Infoclinica через прокси GET /api/interval, а не из backend API. Batch-sync ближайших дат (nearestDate) идёт через backend cron → PostgreSQL views.
Полный разбор: Расписание врачей: синхронизация и отображение.
Онлайн-консультация
Запись на онлайн-приём: /online-specialists (требуется авторизация), слоты через /api/interval?onlineMode=1, бронирование через Infoclinica webSDK, оплата и видео в /case-history.
Подробно: Онлайн-консультация в личном кабинете.
Тесты: make local-online-smoke, make cabinet-test.
Точки входа
nginx направляет cabinet.sovamed.ru в apps/cabinet/public/index.php. Корневой маршрут / обрабатывается DefaultController::index и требует ROLE_USER.
Важные контроллеры:
SecurityController- вход и выход.DefaultController- основные страницы кабинета и админские действия.PublicAPIController- публичные API-методы под/api.InternalAPIController- внутренние API-методы.SpecialistController,DepartmentController,PageController,BannerController- справочники и CMS-часть.WidgetController,WidgetFormController- формы и виджеты.
Ассеты
Команды из package.json:
yarn dev
yarn watch
yarn build
В контейнере:
docker exec -it php82 yarn install
docker exec -it php82 yarn dev
Backend-команды
Установка зависимостей:
docker exec -it php82 composer install
Миграции:
docker exec -it php82 php bin/console doctrine:migrations:migrate
Список app-команд:
docker exec -it php82 php bin/console list app
Важное замечание
Внутри apps/cabinet есть отдельный старый docker-compose.yml под PHP 7.4 и локальный nginx. Основной репозиторий сейчас использует общий compose из environments и контейнер php82, поэтому старый compose стоит рассматривать как исторический или альтернативный сценарий.