-
Notifications
You must be signed in to change notification settings - Fork 7
deprecated #559
Description
PHP 84
A causa de todos os avisos “Implicitly marking parameter ... as nullable is deprecated” é o plugin Pagarme Payments for WooCommerce (e a biblioteca core que ele traz).
Abaixo está a relação dos arquivos (e a primeira linha citada) que aparecem no seu wp-content/debug.log; reparei apenas nos que surgiram no trecho que você enviou — se rodar o grep sugerido no fim verá a lista completa e limpa.
| Arquivo | Linha |
|---|---|
src/Model/Config.php |
45, 92 |
src/Model/Data/DataObject.php |
43 |
src/Model/Config/PagarmeCoreConfigManagement.php |
47 |
src/Model/Gateway.php |
55 |
src/Model/Subscription.php |
41 |
src/Controller/Checkout.php |
39 |
src/Controller/Orders.php |
31 |
src/Controller/Accounts.php |
26 |
src/Controller/Gateways/AbstractGateway.php |
115 |
src/Block/AbstractBlock.php |
41 |
src/Block/Adminhtml/Sales/Order.php |
41 |
src/Block/Order/PaymentDetails.php |
34 |
src/Block/Checkout/Form/Installments.php |
44 |
src/Block/Checkout/Gateway.php |
44 |
src/Model/CardInstallments.php |
41 |
src/Model/Checkout.php |
46, 116 |
src/Model/Payment/PostFormatter.php |
40 |
src/Model/Payment/BilletCard.php |
76 |
src/Model/Payment/TwoCards.php |
77 |
vendor/pagarme/ecommerce-module-core/src/Kernel/Services/InstallmentService.php |
26 |
Como listar você mesmo (com todos os arquivos/linhas):
# dentro do diretório do site grep -oP '(?<= in ).*?(?= on line)' wp-content/debug.log \ | sort -u
Como “consertar” de forma prática
-
Atualizar o plugin
Verifique se existe versão ≥ 2.9.0 ou higher ― a equipe da Pagarme vem ajustando esses issues para PHP 8.2/8.3. -
Usar PHP 8.1 em produção até o plugin ficar 100 % compatível
-
WordOps permite trocar facilmente:
wo stack switch --php81 wo stack restart
-
PHP 8.1 é LTS (suporte até 2026) e não gera esses deprecations.
-
-
Hot-fix manual (se for imprescindível ficar em PHP 8.4)
Para cada arquivo/linha apontado:// antes (gera deprecated) public function __construct($config = null) // depois (compatível 8.2+) public function __construct(?Config $config = null)
Ou simplesmente prefixar com
?o tipo existente.⚠️ São dezenas de métodos; o patch manual é viável só se você tiver controle de versão próprio (ex.: fork no Git) e tempo para manter.
Próximos passos recomendados
-
Atualize o Pagarme (ou faça downgrade do PHP) e limpe o log:
> wp-content/debug.log # zera o arquivo
-
Monitore novamente:
tail -f wp-content/debug.log
Se os avisos sumirem, mas a “tela branca” continuar, a gente captura o fatal error que sobra e resolve o que falta.