Discussion:
Recommencer un include
(trop ancien pour répondre)
Otomatic
2014-07-30 15:36:58 UTC
Permalink
Bonjour,

Dans un script php, j'effectue un require 'toto'; lequel effectue des
opérations sur des variables et tableaux.
Après cet include, je vérifie certaines valeurs et, si elles n'existent
pas, je modifie un autre fichier dont dépendent les opérations
effectuées par require 'toto';
Donc, pour que les modifications soient bien prise en compte pour la
suite des opérations, je suis « obligé » de refaire un autre include
'toto' dont je masque les erreurs :

<?php
require 'toto';
//Test si éléments existent
$modif = false;
if(!isset($var))
{
procédure de modification d'un autre fichier
$modif = true;
}
if($modif)
@include 'toto';

// suite du traitement

?>

Ça fonctionne, mais ce n'est pas du bon code (AMHA).

Je cherche si n'existerait pas un moyen si $modif pour effacer toutes
les variables et recommencer au début du script.

Merci.
--
Ce n'est pas parce qu'ils sont nombreux à avoir tort
qu'ils ont forcément raison. Coluche
Olivier Miakinen
2014-07-30 21:54:51 UTC
Permalink
Bonjour,
Post by Otomatic
Dans un script php, j'effectue un require 'toto'; lequel effectue des
opérations sur des variables et tableaux.
Après cet include, je vérifie certaines valeurs et, si elles n'existent
pas, je modifie un autre fichier dont dépendent les opérations
effectuées par require 'toto';
Donc, pour que les modifications soient bien prise en compte pour la
suite des opérations, je suis « obligé » de refaire un autre include
[...]
Ça fonctionne, mais ce n'est pas du bon code (AMHA).
Je cherche si n'existerait pas un moyen si $modif pour effacer toutes
les variables et recommencer au début du script.
Pour ma part, je n'aime pas plus l'idée de faire un include répété
d'un fichier donné que celle de faire un include conditionnel.

Je préfère la méthode suivante : inclure une seule fois, de façon
inconditionnelle, le fichier 'toto', lequel ne contient que des
définitions de fonctions (dont « init_toto() » pour ce que tu
faisais par la simple inclusion de 'toto'). Ensuite, dans ton
script principal, tu appelles simplement la fonction init_toto().
Si tu as besoin d'appeler init_toto() une seconde fois, pas de
problème.

Cela dit, plutôt que de vérifier les valeurs *après* avoir appelé
init_toto(), ne serait-il pas plus pertinent de les vérifier *dans*
cette fonction init_toto() ?

Cordialement,
--
Olivier Miakinen
Otomatic
2014-07-31 07:57:15 UTC
Permalink
Post by Olivier Miakinen
Cela dit, plutôt que de vérifier les valeurs *après* avoir appelé
init_toto(), ne serait-il pas plus pertinent de les vérifier *dans*
cette fonction init_toto() ?
Merci.
La nuit portant conseil, je vais revoir l'architecture pour effectuer
les vérifications et modifications éventuelles AVANT l'appel au require
'toto';
--
Aujourd'hui, l'idéal du progrès est remplacé par l'idéal de l'innovation :
il ne s'agit pas que ce soit mieux, il s'agit seulement que ce soit nouveau,
même si c'est pire qu'avant et cela de toute évidence. Montherlant
Technologie aéronautique - http://aviatechno.net - Les anciens de Vilgénis
Loading...