# Dependências — antes × depois (Task 6)

Fonte: `composer.lock` em `main@3205ad5` × `migracao-php83`. Resolvido em PHP 8.3.36 com `config.platform.php = 7.4.33`.

## Verificações

| Verificação | Resultado |
|---|---|
| `composer validate` | válido (avisos: refs por hash e constraints exatas — intencionais) |
| `composer check-platform-reqs` PHP 8.3.36 (com e sem dev) | todos `success` |
| `composer check-platform-reqs` PHP 7.4.33 | todos `success` |
| `composer audit` | ver `04-audit.txt` |

## Decisões

- `yiisoft/yii2` 2.0.16.1 → 2.0.55 (suporte a PHP 8.3 desde 2.0.51).
- `phpoffice/phpexcel` → `phpoffice/phpspreadsheet ^1.29`.
- `2amigos/qrcode-library` ~1.1 → ~3.1 (bacon 1.0.3 → 2.x).
- `mpdf/mpdf` ~8.0 → ^8.2.
- `phpoffice/phpword` ^0.18.3 → ^1.4: a 0.18 depende de `laminas/laminas-escaper`, que não tem versão para 7.4 **e** 8.3 ao mesmo tempo (2.12: `<8.3`; 2.13+: `>=8.1`). A 1.2+ não usa laminas.
- Removidos: `pagseguro/pagseguro-php-sdk`, `rkorebrits/htmltoopenxml`, `phpoffice/phpexcel`, cadeia dev do Codeception 4 + `symfony/browser-kit` + `mockery`.
- `dev-master` fixados no hash já usado (`dev-master#<hash>`), sem trocar código.
- `yiisoft/yii2-queue` dev-master → ~2.3.8 (o dev-master atual exige PHP ≥ 8.3).
- `yiisoft/yii2-gii` ~2.1.0 → ~2.2.7 (2.1.x bloqueado por advisories de segurança).
- `bower-asset/floatthead` saiu do asset-packagist: repositório `package` inline com o mesmo zip do lock antigo (`mkoryak/floatThead@93210b4`).
- `bower-asset/jquery` mantido em 3.3.* (igual à produção).
- `bower-asset/inputmask` 3 → 5 e `bower-asset/punycode` 1 → 2: **exigidos** pelo Yii 2.0.55.
- `tinymce/tinymce` 5.10 → 8.x: toda a linha 5.10 tem 11 advisories de segurança; manter exigiria ignorá-los (decisão do usuário).

## Pacotes alterados

| Pacote | Antes | Depois |
|---|---|---|
| `2amigos/qrcode-library` | 1.1.2 | 3.1.0 |
| `amoracr/yii2-backup` | 1.3.3 | 1.4.0 |
| `bacon/bacon-qr-code` | 1.0.3 | 2.0.8 |
| `bluezed/yii2-float-thead` | v1.0.10 | v1.0.12 |
| `bower-asset/inputmask` | 3.3.11 | 5.0.10 |
| `bower-asset/punycode` | v1.3.2 | v2.3.1 |
| `bower-asset/yii2-pjax` | 2.0.8 | 2.0.9 |
| `composer/pcre` | — | 3.4.0 |
| `dasprid/enum` | — | 1.0.7 |
| `dmstr/yii2-cookie-consent` | 1.4.4 | 1.5.0 |
| `doctrine/annotations` | 1.13.2 | 1.14.4 |
| `doctrine/cache` | 2.1.1 | — |
| `doctrine/collections` | 1.6.8 | — |
| `doctrine/common` | 3.1.2 | 3.5.0 |
| `doctrine/deprecations` | v0.5.3 | 1.1.6 |
| `doctrine/event-manager` | 1.1.1 | 1.2.0 |
| `doctrine/lexer` | 1.2.1 | 2.1.1 |
| `doctrine/persistence` | 2.2.2 | 3.4.5 |
| `egulias/email-validator` | 3.1.2 | 3.2.6 |
| `ezyang/htmlpurifier` | v4.18.0 | v4.19.1 |
| `graham-campbell/result-type` | v1.0.3 | v1.2.0 |
| `imagine/imagine` | 1.2.4 | 1.5.4 |
| `kartik-v/yii2-widget-activeform` | v1.6.0 | v1.6.4 |
| `kartik-v/yii2-widget-datepicker` | v1.4.7 | v1.4.8 |
| `khanamiryan/qrcode-detector-decoder` | 1.0.5.2 | 1.0.6 |
| `laminas/laminas-escaper` | 2.10.0 | — |
| `maennchen/zipstream-php` | — | 2.2.6 |
| `marc-mabe/php-enum` | — | v4.7.2 |
| `markbaker/complex` | — | 3.0.2 |
| `markbaker/matrix` | — | 3.0.1 |
| `mercadopago/dx-php` | 2.4.3 | 2.6.2 |
| `mpdf/mpdf` | v8.0.13 | v8.3.1 |
| `mpdf/psr-http-message-shim` | — | 1.0.0 |
| `mpdf/psr-log-aware-trait` | — | v2.0.0 |
| `myclabs/deep-copy` | 1.10.2 | 1.13.4 |
| `myclabs/php-enum` | — | 1.8.5 |
| `npm-asset/dmstr--cookie-consent` | 0.4.0 | 0.4.1 |
| `npm-asset/dompurify` | — | 2.5.9 |
| `npm-asset/tui-calendar` | 1.12.14 | 1.15.3 |
| `npm-asset/tui-date-picker` | 4.0.2 | 4.3.3 |
| `npm-asset/tui-dom` | 3.0.0 | — |
| `npm-asset/tui-time-picker` | 2.0.2 | 2.1.6 |
| `pagseguro/pagseguro-php-sdk` | 6.0.0 | — |
| `phpoffice/math` | — | 0.3.0 |
| `phpoffice/phpexcel` | 1.8.2 | — |
| `phpoffice/phpspreadsheet` | — | 1.30.7 |
| `phpoffice/phpword` | 0.18.3 | 1.4.0 |
| `phpoption/phpoption` | 1.8.0 | 1.10.0 |
| `psr/http-message` | — | 1.1 |
| `psr/simple-cache` | — | 1.0.1 |
| `rkorebrits/htmltoopenxml` | 0.1.9 | — |
| `setasign/fpdi` | v2.3.6 | v2.6.9 |
| `symfony/polyfill-ctype` | v1.23.0 | v1.37.0 |
| `symfony/polyfill-iconv` | v1.23.0 | v1.43.0 |
| `symfony/polyfill-intl-idn` | v1.23.0 | v1.43.0 |
| `symfony/polyfill-intl-normalizer` | v1.23.0 | v1.43.0 |
| `symfony/polyfill-mbstring` | v1.23.1 | v1.43.0 |
| `symfony/polyfill-php72` | v1.23.0 | — |
| `symfony/polyfill-php80` | v1.23.1 | v1.43.0 |
| `symfony/process` | v5.3.7 | v5.4.54 |
| `tinymce/tinymce` | 5.10.1 | 8.10.0 |
| `unclead/yii2-multiple-input` | 2.22.0 | 2.30.0 |
| `vlucas/phpdotenv` | v5.3.1 | v5.7.0 |
| `yiisoft/yii2` | 2.0.16.1 | 2.0.55 |
| `yiisoft/yii2-bootstrap4` | 2.0.10 | 2.0.12 |
| `yiisoft/yii2-imagine` | 2.3.0 | 2.3.1 |
| `yiisoft/yii2-queue` | dev-master #621a14a | 2.3.8 |
| `yiisoft/yii2-redis` | 2.0.13 | 2.0.20 |
| `yiisoft/yii2-swiftmailer` | 2.1.2 | 2.1.3 |

## Dev alterados

| Pacote | Antes | Depois |
|---|---|---|
| `behat/gherkin` | v4.9.0 | — |
| `codeception/codeception` | 4.1.x-dev | — |
| `codeception/lib-asserts` | 1.13.2 | — |
| `codeception/lib-innerbrowser` | 1.5.1 | — |
| `codeception/module-asserts` | 1.3.1 | — |
| `codeception/module-filesystem` | 1.0.3 | — |
| `codeception/module-phpbrowser` | 1.0.2 | — |
| `codeception/module-yii2` | 1.1.3 | — |
| `codeception/phpunit-wrapper` | 8.1.4 | — |
| `codeception/specify` | 0.4.6 | — |
| `codeception/stub` | 3.7.0 | — |
| `codeception/verify` | 1.1.0 | — |
| `doctrine/instantiator` | 1.4.0 | — |
| `fakerphp/faker` | v1.16.0 | v1.24.1 |
| `guzzlehttp/guzzle` | 7.4.0 | — |
| `guzzlehttp/promises` | 1.5.0 | — |
| `guzzlehttp/psr7` | 2.1.0 | — |
| `hamcrest/hamcrest-php` | v2.0.1 | — |
| `mockery/mockery` | 1.4.4 | — |
| `opis/closure` | 3.6.2 | — |
| `phar-io/manifest` | 2.0.3 | — |
| `phar-io/version` | 3.1.0 | — |
| `phpdocumentor/reflection-common` | 2.2.0 | — |
| `phpdocumentor/reflection-docblock` | 5.2.2 | — |
| `phpdocumentor/type-resolver` | 1.5.1 | — |
| `phpspec/prophecy` | 1.14.0 | — |
| `phpunit/php-code-coverage` | 7.0.15 | — |
| `phpunit/php-file-iterator` | 2.0.4 | — |
| `phpunit/php-text-template` | 1.2.1 | — |
| `phpunit/php-timer` | 2.1.3 | — |
| `phpunit/php-token-stream` | 4.0.4 | — |
| `phpunit/phpunit` | 8.5.21 | — |
| `psr/container` | 2.0.1 | 2.0.2 |
| `psr/event-dispatcher` | 1.0.0 | — |
| `psr/http-client` | 1.0.1 | — |
| `psr/http-factory` | 1.0.1 | — |
| `psr/http-message` | 1.0.1 | — |
| `ralouphie/getallheaders` | 3.0.3 | — |
| `sebastian/code-unit-reverse-lookup` | 1.0.2 | — |
| `sebastian/comparator` | 3.0.3 | — |
| `sebastian/diff` | 3.0.3 | — |
| `sebastian/environment` | 4.2.4 | — |
| `sebastian/exporter` | 3.1.3 | — |
| `sebastian/global-state` | 3.0.1 | — |
| `sebastian/object-enumerator` | 3.0.4 | — |
| `sebastian/object-reflector` | 1.1.2 | — |
| `sebastian/recursion-context` | 3.0.1 | — |
| `sebastian/resource-operations` | 2.0.2 | — |
| `sebastian/type` | 1.1.4 | — |
| `sebastian/version` | 2.0.1 | — |
| `symfony/browser-kit` | v4.2.4 | — |
| `symfony/console` | v5.3.7 | — |
| `symfony/css-selector` | v5.3.4 | — |
| `symfony/deprecation-contracts` | v2.4.0 | v2.5.4 |
| `symfony/dom-crawler` | v4.4.30 | — |
| `symfony/event-dispatcher` | v5.3.7 | — |
| `symfony/event-dispatcher-contracts` | v2.4.0 | — |
| `symfony/finder` | v5.3.7 | — |
| `symfony/polyfill-intl-grapheme` | v1.23.1 | — |
| `symfony/polyfill-php73` | v1.23.0 | — |
| `symfony/service-contracts` | v1.1.2 | — |
| `symfony/string` | v5.3.7 | — |
| `symfony/yaml` | v5.3.6 | — |
| `theseer/tokenizer` | 1.2.1 | — |
| `webmozart/assert` | 1.10.0 | — |
| `yiisoft/yii2-debug` | 2.1.18 | 2.1.28 |
| `yiisoft/yii2-gii` | 2.1.4 | 2.2.7 |
