Os «var_mode» e «var_profile» são ativados ao incluir-se ?var_mode=...
(ex: -titulo-da-secao-?var_mode=...
), ou &var_mode=...
(ex: spip.php?article3&var_mode=...
) ao URL da página chamada. O seu uso só funciona para os administradores logados.
var_mode=calcul e var_mode=recalcul
A chamada de «var_mode=calcul» regenera o código HTML (recompila os templates necessários caso tenham sido alterados após terem sido compilados da última vez, e inicia a execução do código compilado) e atualiza o cache (cria os ficheiros HTML, que apenas terão que ser lidos nas próximas chamadas da página).
A chamada de «var_mode=recalcul» regenera o código PHP (recompila os templates necessários para a página), e regenera o código HTML (inicia a execução do código acabado de ser compilado) e finalmente atualiza os caches (cria os ficheiros HTML, que apenas terão que ser lidos nas próximas chamadas da página). Os caches dos templates não solicitados pela página recalculada não são invalidados.
O recálculo da página regenera também os CSS e scripts Javascript comprimidos.
O recálculo não se aplica às imagens (vinhetas, imagens tipográficas, ...)
Ambas estas chamadas podem ser disparadas por um clique num dos botões de administração;

um primeiro clique para chamar «var_mode=calcul» (quando o título do botão estiver acompanhado de um asterísco significa que a página exibida foi lida a partir do cache);

um segundo clique para chamar «var_mode=recalcul».
Atenção: pode parecer tentador usar&var_mode=recalcul
nos links dos seus templates (para forçar a atualização de CSS ou Javascript, por exemplo). É, no entanto, uma péssima prática a ser evitada pois consome desnecessariamente recursos do servidor (recompilação do template).
var_mode=images
A chamada de «var_mode=images» permite recalcular as imagens e vinhetas geradas pelos filtros gráficos na página corrente.
var_mode=inclure
A chamada de «var_mode=inclure» exibe o nome e o caminho de cada inclusão (inclure ou modelo) que compõe a página.
Permite verificar se as inclusões que estão realmente sendo chamadas pelo template são as que foram especificadas.
var_profile=1
A chamada de «var_profile=1» exibe o detalhe das consultas SQL e os tempos de processamento de cada uma. As consultas são classificadas da mais pesada, em tempo de execução, à mais rápida.
Esta função é particularmente útil para perceber o que possa tornar a exibição de uma página excessivamente lenta. Permite visualizar as consultas SQL geradas por cada loop do template (incluindo os templates incluídos) bem como as consultas fora de loop (notadas como «Fora de compilação») geradas pelo SPIP.
Pode-se verificar:
- para cada loop
- o número de vezes que o loop (e, consequentemente, a consulta SQL) foi executado,
- o tempo (em segundos) levado pelo loop (ou seja, o tempo da consulta correspondente multiplicado pelo número de execuções do loop),
- a lista (ordenada crinologicamente de todas as consultas geradas pela página) de cada execução da consulta (que serve de link para o detalhamento de cada consulta).
- as consultas for de loop
- o tempo total levado pelo conjunto de consultas para a página
- o detalhe de cada consulta realizada com
- uma matriz estatística exibindo a explicação da consulta,
- o título da consulta.
Atenção :
var_profile
dará resultados diferentes caso se solicite o cálculo da página ou não.
- Considere solicitar o cálculo da página (&var_profile=1&var_mode=calcul
) para obter os resultados associados ao cálculo de toda a página e suas inclusões.
- Se não solicitar o cálculo, obterá bem menos resultados, visto que os HTML exibidos são originados de resultados presentes em cache, sem consulta à base de dados. Verá, no entanto, as consultas que permanecem ativas para todas as páginas servidas, mesmo se não for necessário nenhum cálculo.
var_mode=preview
A chamada de «var_mode=preview» a partir da área restrita permite visualizar no espaço público uma matéria com o status «proposta para publicação» sem ser necessário publicá-la.
var_mode=urls
A chamada de «var_mode=urls» força a atualização de todos os URLs da página.
var_mode=debug
A chamada de «var_mode=debug» detalha a geração de uma página (loops SPIP - consultas SQL - código PHP - estatísticas de consultas SQL).
Esta página exibe, para o template principal e para cada um dos templates incluídos
- a lista de variáveis de contexto (#ENV) passadas pelo template inicial,
- a lista dos loops.
Os diferentes links permitem aceder a:
- Template
o código em texto do template (evita ter que aceder ao ficheiro .html para consultar o seu conteúdo),- resultado
o código gerado especificamente por esse template (excepto inclusões eventuais) que, uma vez avaliado, retornará o HTML ao navegador, - código
o código PHP gerado pelo compilador (análise principalmente destinada aos desenvolvedores experientes) que, uma vez executado, produzirá o resultado (ver acima), - cálculo
o detalhe das consultas SQL e, para cada uma, os tempos de cálculo (ver acimavar_profile
).
- resultado
- loop
o código em texto do loop completo (de<B_abc>
a<//B_abc>
),- resultado
a consulta SQL gerada pelo loop estudado,
uma lista dos primeiro resultados retornados por essa consulta [1], - código
o código PHP (gerado pelo compilador) da função específica associada a esse loop (análise principalmente destinada aos desenvolvedores experientes), - cálculo
o detalhe e o tempo de cálculo da consulta SQL associada a esse loop (ver acimavar_profile
).
- resultado
var_mode=traduction
O parâmetro var_mode=traduction
permite analisar as strings de idioma usadas na página. Ao ser usado, as strings de idioma presentes na página são colocadas em destaque:
- as stings de idioma traduzidas são sublinhadas, e uma dica de informação mostrando a fonte do ítem e o idioma de tradução é exibida no hover da string
- as strings de idioma inexistentes piscarão em vermelho.
Desbloquear o SVP
Há dois var_mode utilizáveis no SVP (na página de gestão dos plugins) :
- var_mode=vider_paquets_locaux requer ao SVP forçar um recálculo das suas informações na base sobre os plugins locais, como (plugins/, plugins-dist/).
- var_mode=reinstaller_svp é ainda mas radical: desinstala o SVP (será reinstalado na próxima execução).
Assim, se houver um problema de leitura pelo SVP, o primeiro deverá corrigí-lo (pode ocorrer em casos muito raros, mas normalmente não deverá ser necessário). O segundo, evidentemente, precisa que se reconfigure o SVP em seguida (depósitos de plugins & conf caso tenha sido alterado…)
Página em branco?!
Certos erros de PHP podem provocar uma página em branco na parte pública ou na área restrita do seu site.
Neste caso, você deve incluir o código a seguir em O ficheiro mes_options.php :
// Ativar os relatórios de erro no PHP
error_reporting(E_ALL^E_NOTICE);
ini_set ("display_errors", "On");
// Exibir todos os erros no SPIP
define('SPIP_ERREUR_REPORT', E_ALL);
… e, em seguida, recarregar a sua página. Ela deverá, então, exibir uma mensagem de erro do PHP, indicando a causa exatado problema.
Importante: se se tratar de um site em produção, deverá excluir essas linhas, uma vez que o problema esteja resolvido.
Ou também, para simplesmente registar os erros em /tmp/log/php.log sem os exibir, inclua o código abaixo em O ficheiro mes_options.php :
ini_set("log_errors", 1);
ini_set("error_log", $_SERVER['DOCUMENT_ROOT'] . '/tmp/log/php.log');
Obter informações mais completas para a depuração
Eis algumas opções úteis à depuração que poderá ativar em O ficheiro mes_options.php:
Nome da constante | Valores | Descrição |
---|---|---|
_NO_CACHE | -1,0,1 | Desativar o cache |
_INTERDIRE_COMPACTE_HEAD_ECRIRE | false,true | Desativar os caches CSS e Javascript |
SPIP_ERREUR_REPORT | E_ALL | Exibir todos os erros no SPIP |
$GLOBALS [’taille_des_logs’] | valeur en kb | Tamanho dos logs |
_MAX_LOG | nombre de lignes | Limita o tamanho dos logs em n linhas |
_LOG_FILELINE | false,true | Incluir nos logs o ficheiro, a linha e o nome da função que gerou o log |
_LOG_FILTRE_GRAVITE | 1 a 8 | Verbosidade dos logs |
_DEBUG_SLOW_QUERIES | false/true | Log SQL |
_BOUCLE_PROFILER | valor em ms | Acompanhar os logs que requerem mais de n ms |
define('_NO_CACHE', -1);
ou clicar no botão: "Desativar temporariamente o cache"
- Desativar os caches CSS e Javascript (ficheiros encontram-se em local/cache-js/ e local/cache-css/
define('_INTERDIRE_COMPACTE_HEAD_ECRIRE', true);
- Ativar os relatórios de erros PHP
error_reporting(E_ALL^E_NOTICE);
ini_set ("display_errors", "On");
- Exibir todos os erros no SPIP
define('SPIP_ERREUR_REPORT',E_ALL);
- Aumentar o tamanho dos logs para 500 kb
$GLOBALS['taille_des_logs'] = 500;
- Limitar o tamanho dos logs a 500000 linhas
define('_MAX_LOG', 500000);
- Incluir nos los o ficheiro, a linha e o nome da função que gerou o log.
define('_LOG_FILELINE',true);
- Ativar todos os logs
define('_LOG_FILTRE_GRAVITE',8);
- Indicar nos logs do MySQL (log/mysql-slow.log) o URL correspondente às consultas «lentas»:
define('_DEBUG_SLOW_QUERIES', true);
- Acompanhar os loops que executam por mais de 5 segundos (5000 ms)
define('_BOUCLE_PROFILER', 5000);
Em resumo, para usar UNICAMENTE num site em DESENVOLVIMENTO, pode copiar/colar tudo abaixo em O ficheiro mes_options.php:
define('_NO_CACHE', -1);
define('_INTERDIRE_COMPACTE_HEAD_ECRIRE', true);
error_reporting(E_ALL^E_NOTICE);
ini_set ("display_errors", "On");
define('SPIP_ERREUR_REPORT',E_ALL);
$GLOBALS['taille_des_logs'] = 500;
define('_MAX_LOG', 500000);
define('_LOG_FILELINE',true);
define('_LOG_FILTRE_GRAVITE',8);
define('_DEBUG_SLOW_QUERIES', true);
define('_BOUCLE_PROFILER', 5000);