J'ai beaucoup de fichiers de vue PHP, que j'avais l'habitude d'inclure dans mes contrôleurs en utilisant des instructions simples d'inclusion. Ils utilisent tous des méthodes déclarées dans une classe de vue, comme $ view-> method(); Cependant, j'ai récemment décidé qu'il serait préférable que l'inclusion soit également faite par cette classe de vue. Cela modifie toutefois la portée du fichier inclus afin que $ view ne soit plus défini. Voici un exemple de code:PHP définir la portée pour le fichier inclus
in someViewFile.php (BOTH siuations)
<html>
<head><title><?php echo $view->getAppTitle(); ?></title>
etc.
OLD SITUATION in controller:
$view = new view;
include('someViewFile.php'); //$view is defined in someViewFile.php
NEW SITUATION in controller:
$view = new view;
$view->show('someViewFile'); //$view is not defined in someViewFile.php
En ce moment je piraté mon chemin autour du problème en utilisant ce dans la classe de vue:
public function show($file){
$view = &$this;
include($file.".php");
}
Y at-il de toute façon de déclarer la portée du fichier Inclu ou est c'est la meilleure façon de résoudre le problème?
Ces exemples sont grossièrement simplifiés.
Je pense qu'il ya une petite faute de frappe où il est dit "nom de fichier"? – noio
En effet, le membre et son utilisation sont 'nomfichier' où l'affectation est' nomfichier'. J'ai essayé de l'éditer, mais une édition nécessite 6 caractères de changement. _roll eyes_ – Travis
Correction de faute de frappe - merci de l'avoir signalé – meouw