Diagnóstico de Sistema (Debug)¶
O módulo de Diagnóstico é o "kit de primeiros socorros" do MIDDAG. Ele fornece um painel técnico centralizado para verificar a saúde do plugin, a integridade do banco de dados e a compatibilidade do ambiente do servidor.
Ao contrário do Debugging padrão do Moodle (que exibe erros na tela para todos), esta ferramenta é uma área administrativa segura para inspeção profunda sem expor falhas aos alunos.
Funcionalidades Principais¶
O painel de diagnóstico executa uma bateria de testes automatizados toda vez que é acessado, cobrindo três áreas críticas:
1. Verificação de Ambiente (Environment Check)¶
Analisa se o servidor onde o Moodle está hospedado atende aos requisitos técnicos das extensões ativas.
* Versão do PHP: Verifica compatibilidade mínima (ex: PHP 8.1+).
* Extensões PHP: Alerta se bibliotecas necessárias (como soap, intl, gd) estão ausentes.
* Permissões de Pasta: Garante que o plugin consegue escrever logs e arquivos temporários no moodledata.
2. Integridade de Banco de Dados (Schema Integrity)¶
O MIDDAG utiliza tabelas personalizadas otimizadas. Esta ferramenta verifica se:
* Todas as tabelas necessárias existem.
* As colunas possuem os tipos corretos (ex: BIGINT vs INT).
* Os índices de performance estão criados.
* Existem dados órfãos (ex: metadados sem item pai).
Correção Automática
Se o diagnóstico encontrar inconsistências no banco (ex: uma tabela faltando após uma migração falha), ele oferecerá um botão "Reparar Schema" para tentar corrigir a estrutura automaticamente.
3. Status das Extensões¶
Lista quais extensões estão carregadas na memória e se alguma falhou durante o processo de Boot. * Verde: Carregada e ativa. * Cinza: Desativada administrativamente. * Vermelho: Falha crítica (ex: erro de sintaxe ou dependência faltando). O erro detalhado é exibido apenas para o administrador.
Ferramentas de Manutenção¶
Além de exibir problemas, o módulo oferece ações para resolvê-los:
Limpeza de Cache (Purge Caches)¶
Botão dedicado para limpar apenas os caches do MIDDAG (definições de serviço, rotas e metadados), sem precisar limpar o cache global do Moodle (que afeta a performance de todo o site).
Teste de Conectividade¶
Para extensões que dependem de APIs externas (como BigQuery ou E-commerce), o diagnóstico permite enviar um "Ping" de teste para garantir que o firewall ou credenciais estão corretos.
Visualizador de Logs Internos¶
Acesso rápido aos logs gerados por debug::trace(). Útil para desenvolvedores entenderem o fluxo exato de uma operação que falhou, sem precisar de acesso SSH ao servidor.
Como Acessar¶
O painel de diagnóstico é restrito a usuários com a capability local/middag:manage.
- Acesse Administração do Site.
- Navegue até Plugins > Plugins Locais > MIDDAG.
- Clique na aba Diagnóstico e Saúde.
Guia de Solução de Problemas (Troubleshooting)¶
Use esta tabela para interpretar os alertas mais comuns do painel:
| Alerta | Significado | Ação Recomendada |
|---|---|---|
| "Missing PHP Extension: intl" | O servidor não consegue processar formatação de moedas/datas internacional. | Solicite à hospedagem a instalação do php-intl. |
| "Database Drift Detected" | A estrutura do banco está diferente do esperado pelo código. | Clique em "Reparar Schema" ou rode o upgrade do plugin. |
| "Write Permission Denied" | O plugin não consegue salvar arquivos temporários. | Verifique as permissões da pasta moodledata/local/middag. |
| "Extension Boot Failure" | Uma extensão específica quebrou. | Desative a extensão problemática nas configurações para restaurar o sistema e verifique os logs. |
Para Desenvolvedores¶
Se você está desenvolvendo uma extensão para o MIDDAG, pode integrar suas próprias verificações ao painel de diagnóstico.
Implemente a interface diagnostic_provider na sua extensão para adicionar checagens personalizadas (ex: verificar se uma API Key é válida).