Skip to content

deprecated #559

@proteusbr1

Description

@proteusbr1

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

  1. 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.

  2. 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.

  3. 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

  1. Atualize o Pagarme (ou faça downgrade do PHP) e limpe o log:

    > wp-content/debug.log  # zera o arquivo
  2. 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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions