J'admets que cette question va être un peu vague, mais je vais essayer d'expliquer ce que j'essaie d'accomplir par quelques exemples. J'ai du code PHP qui charge un certain nombre de variables à partir de la base de données MySQL, contient quelques déclarations, quelques fonctions pour produire rapidement du code HTML, etc. Cependant, j'aimerais faire tout cela avant d'envoyer quoi que ce soit au client.
C'est ce que je fais :
<?php
include("somefile.inc");
function bla()
{
...
}
if (fails)
echo "Error: ...<br />";
?>
<!DOCTYPE>
<html>
<head>
<script>
...
<?php echo $someString; ?>
...
</script>
</head>
<body>
...
</body>
</html>
Tout se passe bien, jusqu'à ce que j'obtienne une erreur. L'écho ne s'affiche pas dans le navigateur car il est avant tout HTML... Donc j'ai modifié :
<!DOCTYPE>
<html>
<head>
<script>
...
<?php echo $someString; ?>
...
</script>
</head>
<body>
<div class="error_block">
<?php
include("somefile.inc");
function bla()
{
...
}
if (fails)
echo "Error: ...<br />";
?>
</div>
...
</body>
</html>
Maintenant, je peux vraiment voir les erreurs, ce qui est bien. Mais maintenant le problème se pose que dans l'en-tête, ou les scripts, je ne peux pas accéder aux variables qui seront chargées plus tard dans le error_block nouvellement créé.
Je n'aime vraiment pas diviser le code dans le error_clock en une partie au-dessus du document HTML et une partie dans le error_block. Et je ne veux pas non plus utiliser la fonction die() de PHP qui met fin abruptement à l'exécution.
Quelqu'un peut-il donner son avis sur la question ? Merci.