Executando verificação de segurança...
2

Pitch: Abri o código de um debugger PHP que funciona sem Xdebug, tem um playground pra testar no terminal

Fala pessoal, pra quem acompanhou os posts anteriores sobre o DDLess, tenho uma novidade: o motor de debug agora é open source e vem com um playground pra você testar direto no terminal.

O que é o ddless-engine?

É o motor PHP que faz o debug funcionar sem Xdebug, sem extensão, sem socket. Ele usa instrumentação via AST (nikic/PHP-Parser) e comunicação por arquivos. Se o PHP roda, ele debuga.

O playground

Você clona o repo dentro do seu projeto e testa no terminal:

Debug rápido:
php src/playground/test_trigger.php --code 'x = 1; y = 2; echo x + y;' --bp 1

Debug com boot do framework:
php src/playground/test_trigger.php --file test.php --bp app/Services/OrderService.php:38 --boot boot.php

Test method via container:
php src/playground/test_trigger.php --test method --framework laravel --class "App\Services\OrderService" --method calculate --params-file params.php

Task runner com contexto do framework:
php src/playground/test_trigger.php --test task --framework laravel -c '$this->info("Users: " . \App\Models\User::count());'

Debug HTTP real:
DDLESS_FRAMEWORK=laravel php -S 0.0.0.0:8001 src/playground/test_trigger.php

Tudo sem instalar nada além do PHP.

Por que abri o código?

Quero que o pessoal conheça conceitos que a gente raramente usa no dia a dia:

  • Closure::bind() pra sequestrar o $this de outro objeto
  • Stream wrappers pra interceptar todo include/require que o PHP faz
  • AST com nikic/PHP-Parser pra entender código PHP como o próprio PHP entende
  • get_defined_vars() pra capturar o estado do escopo em tempo real
  • $GLOBALS como canal de transporte entre contextos isolados

E também pra receber contribuições. O engine já suporta Laravel, Symfony, CodeIgniter, Tempest, WordPress e PHP genérico. Adicionar um novo framework são 3 arquivos (HTTP handler, method executor, task runner). O CONTRIBUTING.md explica tudo passo a passo.

Se você trabalha com CakePHP, Yii, Slim, Swoole ou qualquer outro framework PHP e quer adicionar suporte, PRs são bem-vindos.

Engine: https://github.com/behindSolution/ddless-engine
App desktop (gratuito pra debug local): https://ddless.com

Carregando publicação patrocinada...