De parameters «var_mode» en «var_profile» kunnen worden toegepast door toevoeging van ?var_mode=...
(bijvoorbeeld: -titre-de-rubrique-?var_mode=...
), of &var_mode=...
(bijvoorbeeld: spip.php?article3&var_mode=...
) aan de URL van de opgevraagde pagina.
Ze voeren hun functionaliteit uitsluitend aan bij een aangemelde beheerder van de site.
var_mode=calcul
en
var_mode=recalcul
Het aanroepen van «var_mode=recalcul» zorgt voor het herberekenen van de PHP code (een nieuwe compilatie van het skelet) gevolgd door een nieuwe aanmaak van de HTML code en een verversing van de cache (van waaruit de pagina zal worden weergegeven).
De recalcul van de pagina zorgt ook voor de regeneratie van de gecomprimeerde stylesheets (css) en de JavaScript.
De recalcul heeft geen effect op afbeeldingen (waaronder logo’s, ...).
Je kunt de pagina met deze parameter oproepen door te klikken op «pagina herberekenen» in de knoppenbalk voor beheerders;
Een eerste klik roept «var_mode=calcul» aan (wanneer de titel wordt gevolgd door een ster, wat aangeeft dat hij uit de cache komt).
Een tweede klikt roept «var_mode=recalcul» aan.
Let op: Je zou tot de verleiding kunnen komen&var_mode=recalcul
in de links van je skeletten op te nemen (om bijvoorbeeld een verversing te forceren). Dit wordt ten zeerste afgeraden omdat het zeer veel resources van de server vraagt.
var_mode=inclure
De parameter «var_mode=inclure» toont de naam en het pad van iedere opgeroepen skelet of model waaruit de pagina is opgebouwd.
Doel is om te verifiëren dat de oproepen door het skelet daadwerkelijk gebeuren.
var_profile=1
De parameter «var_profile=1» geeft het detail van de SQL-queries en hun berekeningsduur weer. De queries worden gesorteerd beginnend met de meest tijdrovende.
Deze functie maakt duidelijk waarom een pagina een lange responsetijd heeft.
Je ziet de queries die elke lus in het skelet (en in de aangeroepen skeletten) maakt, maar ook die zonder lus.
Je vindt terug:
- voor iedere lus
- hoeveel keer de lus (dus de SQL-query) werd uitgevoerd,
- de tijd (in seconden) die de lus nodig had (de tijd per query vermenigvuldigd met het aantal uitgevoerde lussen),
- de lijst (op chronologische volgorde gesorteerd van alle door de pagina gegenereerde queries) van iedere uitvoering van de query (die als link dient naar het details van elk van hen).
- de queries zonder lus
- de totaaltijd voor alle queries op de pagina
- het detail van iedere query uitgevoerd met
- een statische tabel die de uitleg van de query geeft,
- de naam van de query.
Let op: Denk eraan de pagina te berekenen (&var_profile=1&var_mode=calcul
) om te voorkomen dat niet de cache wordt gelezen, met onjuiste informatie als gevolg.
var_mode=preview
Het aanroepen van «var_mode=preview» vanaf het privé gedeelte toont op de publieke site hoe een artikel er uit zal zien, hoewel het nog niet is gepubliceerd.
var_mode=urls
Het aanroepen van «var_mode=urls» forceert de update van alle URL’s van de pagina.
var_mode=debug
Het aanroepen van «var_mode=debug» geeft een detail van het aanmaken van de pagina (SPIP lussen - SQL queries - PHP code - statistieken van de SQL queries).
Deze pagina toont voor het skelet van de pagina en alle ingesloten skeletten:
- de lijst van waardes van contextvariabelen (#ENV) van het aanroepende skelet,
- de lijst van lussen.
Verschillende links geven toegang tot:
- skelet (squelette)
de code van het skelet (zo hoef je dus geen toegang te hebben tot het .html bestand om de inhoud te bekijken),- resultaat (résultat)
de door het skelet zelf gegenereerde code (zonder eventuele insluitingen) die, wanneer geëvalueerd de HTML aan de browser zou sturen, - code
de door de compiler gegenereerde PHP code (een analyse voor ervaren ontwikkelaars) die, wanneer uitgevoerd, het resultaat levert (zie hierboven), - berekening (calcul)
het detail van de SQL queries en voor ieder de berekentij (zievar_profile
).
- resultaat (résultat)
- lus (boucle)
de volledige code van de lus (van<B_abc>
tot<//B_abc>
),- resultaat (résultat)
de door de lus uitgevoerde SQL query,
een lijst van de eerste door de lus teruggegeven resultaten [1], - code
de PHP code (gegenereerd door de compiler) van een specifieke aan de lus gekoppelde functie (analyse voor ervaren ontwikkelaars), - berekening (calcul)
het detail en de betrekeningstijd van de aan de lijst gekoppelde SQL query (zie hierbovenvar_profile
).
- resultaat (résultat)
var_mode=traduction
De parameter var_mode=traduction
maakt de analyse mogelijk van op de pagina gebruike taalstrings. De aanwezige taalstrings worden met een andere achtergrond weergegeven:
- de vertaalde strings zijn onderstreept en een infobubbel geeft de bron en de de taal wanneer ermet de muis overheen wordt bewogen
- niet bestaande taalstrings knipperen rood.
SVP deblokkeren
Er zijn twee var_mode’s toepasbaar op SVP (op de beheerpagina van plugins):
- var_mode=vider_paquets_locaux geeft SVP aan een herberekening te doen van de gegevens van de lokaal aanwezige plugins (dus in plugins/ en plugins-dist/).
- var_mode=reinstaller_svp is nog ingrijpender: het verwijdert SVP (en het zal zich vervolgens opnieuw installeren).
Dus vermoed je een probleem in SVP, probeer het dan eerst te corrigeren. In het tweede geval zul je de parameters van SVP eventueel opnieuw moeten configureren.
Hoe kun je nog meer debug-informatie verkrijgen
Door het aanpassen van config/mes_options.php:
Naam van de constante | Waardes | Omschrijving |
---|---|---|
_NO_CACHE | -1,0,1 | De cache uitschakelen |
_INTERDIRE_COMPACTE_HEAD_ECRIRE | false,true | De cache voor CSS en Javascript uitschakelen |
SPIP_ERREUR_REPORT | E_ALL | Alle fouten in SPIP weergeven |
$GLOBALS[’taille_des_logs’] | waarde in kB | Grootte van de logbestanden |
_MAX_LOG | aantal regels | Beperkt de grootte van de logbestanden tot n regels |
_LOG_FILELINE | false,true | Voegt aan de log de bestandsnaam, het regelnummer en de naam van de functie toe die de log genereerden |
_LOG_FILTRE_GRAVITE | 1 tot 8 | Detailniveau van de logs |
_DEBUG_SLOW_QUERIES | false/true | SQL log |
_BOUCLE_PROFILER | waarde in ms | Opvolgen van lussen die meer dan n ms duren |
- De cache van SPIP uitschakelen
<?php
define('_NO_CACHE', -1);
?>
of door middel van de knop in de configuratie van SPIP 3: "De cache tijdelijk uitschakelen"
- De CSS en Javascript cache (bestanden in local/cache-js/ en local/cache-css/ uitschakelen
<?php
define('_INTERDIRE_COMPACTE_HEAD_ECRIRE', true);
?>
- Foutrapportage van PHP inschakelen
<?php
error_reporting(E_ALL^E_NOTICE);
ini_set ("display_errors", "On");
?>
- Alle fouten in SPIP weergeven
<?php
define('SPIP_ERREUR_REPORT',E_ALL);
?>
- De grootte van de logbestanden verhogen naar 500 kB
<?php
$GLOBALS['taille_des_logs'] = 500;
?>
- Logbestanden beperken tot 500000 regels
<?php
define('_MAX_LOG', 500000);
?>
- Aan de gegevens in de logbestanden de bestandsnaam, het regelnummer en de functie toevoegen die de regel in het logbestand genereerde
<?php
define('_LOG_FILELINE',true);
?>
- Alles loggen (SPIP3)
<?php
define('_LOG_FILTRE_GRAVITE',8);
?>
- Een log toevoegen voor alles wat met autorisatie te maken heeft (functie autoriser_dist). Deze constante bestaat niet meer vanaf SPIP 3.1
<?php
define('_DEBUG_AUTORISER', true);
?>
- Vanaf SPIP 2.1.22 en 3.0.9 geeft deze optie aan dat in de MySQL log (log/mysql-slow.log) de URL van "trage" queries moet worden toegevoegd
<?php
define('_DEBUG_SLOW_QUERIES', true);
?>
- Vanaf SPIP 3.0.9 (en in SPIP 2.1 met de plugin «itérateurs») maakt deze optie het volgen mogelijk van lussen die meer dan 5 seconde (5000 ms) verwerkingstijd vragen
<?php
define('_BOUCLE_PROFILER', 5000);
?>
Als samenvatting en UITSLUITEND toe te passen op een site in ONTWIKKELING, zou je deze (toevoegingen aan) config/mes_options.php
kunnen gebruiken:
<?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);