Symfony-қосымшасын жаңғырту: 2023 жылғы жобадан өзекті стекке дейін
2023 жылы жазылған Symfony-дегі шағын әлеуметтік желі ескірген стекте тұрып қалған: құпиясөздер md5-те сақталатын, авторизация өз бетінше жазылған, тесттер мен автоматты тексерулер жоқ еді — кез келген жаңарту қосымшаны бұзып алу қаупін төндіретін.
Стекті бар пайдаланушыларды жоғалтпай жаңарту керек болды: ескі md5-құпиясөздер заманауи хешке көшкенге дейін жұмыс істеуі тиіс. Тесттер болмағандықтан, функционалдық тесттер авторизацияны қайта жасауға дейін жазылды.
- PHP 8.3, Symfony 6.4 LTS және Doctrine ORM 3.6 нұсқаларына бір келісілген қадаммен жаңарту: +2226/−2058 жол, пакеттер мен конфигурация жаңа нұсқаларға сәйкестендірілді
- Өз бетінше жазылған авторизация Symfony Security-ге ауыстырылды: сессиялар және барлық POST-әрекеттердің CSRF-қорғауы
- Құпиясөздер md5-тен Symfony PasswordHasher-дің заманауи хештеуіне көшірілді; ескі хеш алғашқы сәтті кіру кезінде пайдаланушыға байқаусыз қайта есептеледі
- Негізгі сценарийлерге 7 функционалдық тест: лента, тіркелу және кіру, жариялау, түсініктемелер, лайктар, шығу, тілді ауыстыру
- GitHub Actions-та CI/CD: Composer мен синтаксисті тексеру, YAML/Twig/контейнер линтерлері, PostgreSQL-де миграциялар мен PHPUnit, Docker-образды GHCR-ға жариялау
- Интерфейс орыс және ағылшын тілдерінде, Doctrine схемасы модельмен синхрондалды, демо-модуль жойылды, посттарға лайктар қосылды
Жоба пайдаланушыларды жоғалтпай қолдау көрсетілетін стекке көшірілді: ескі құпиясөздер кіру кезінде қайта хештеледі, ал әр өзгеріс образ жиналғанға дейін CI-да линтерлерден, миграциялардан және тесттерден өтеді.