Situation actuelle:PHP: "Global" Inclure
- J'ai la version actuelle de mon framework MVC qui utilise des classes en tant que contrôleurs.
- J'ai quelques modules "vintage" de mon ancien MVC Framework qui utilise des contrôleurs simples et plats.
très simplifié qui signifie:
Nouvelle version:
<?PHP
class blaController extends baseController {
private $intVar;
function dosomethingFunction() {
$this->intVar = 123;
$this->view('myView');
}
}
?>
ancienne version:
<?PHP
$globalVar = 123;
// view "controllername" is automatically shown
?>
J'essaie maintenant d'écrire un wrapper pour être capable d'utiliser mes anciens contrôleurs dans mon nouveau MVC sans avoir à re écris tout. Pour ce faire, j'ai un contrôleur « wrapper »:
class wrapController extends baseController {
function dosomethingFunction() {
require 'old_dosomething.function.php';
$this->view('old_dosomething_view');
}
}
(Encore une fois: Ceci est très, très simplifié - juste pour l'idée sur pas le code réel..)
Le problème avec cette l'approche est, que la variable global global $ globalVar n'existe plus qu'à l'intérieur de la méthode "dosomethingFunction" et n'est pas accessible par la vue.
Ce ne serait pas le cas si je pouvais forcer le require à se comporter comme "dans la portée globale" de sorte que $ globalVar serait de nouveau disponible dans la portée globale. Donc: Y at-il un moyen d'atteindre "require_global" ou quelque chose de similaire?
(Une solution pour mon problème serait de modifier mes anciens contrôleurs pour commencer avec un tas de commandes "globales", mais je préférerais une solution où je n'ai pas besoin de changer autant de ce vieux code. (Note: S'il vous plaît ne me dites pas que les GLOBALS sont mauvais.Il manque complètement le point de cette question.Je viens d'accepter qu'il est nécessaire de garder un ancien code de travail dans un environnement plus récent et plus propre.)
Je ne sais pas encore pourquoi, mais de toute façon array_merge ne fonctionne pas dans mon scénario en fusionnant le tableau "manuellement" avec foreach fonctionne. – BlaM
bien, $ GLOBAL n'est pas vraiment un tableau "normal". Revenir à la version foreach – vartec