MVC Controller, View, HTML

Fermé
BlackButterfly - 12 avril 2012 à 13:47
 BlackButterfly - 12 avril 2012 à 20:33
Bonjour,

A la demande de mon patron, je dois reprendre son site ( qui quand on le regarde on se dit que l'ensemble de Mandelbrot est un petit peu brouillon ... ) et le mettre en MVC

Connaissant le modèle, je commence à faire mon contrôleur et je commence à chercher dans les quelques 150 fichiers comportant le site, le fichier de mise en page ( pour n'avoir qu'a modifier l'intérieur de celle-ci )

Or, il s'avère que tout le graphique à été fait en HTML directement dans les pages ( Oui, vive les programmeur pingouins qui ne pense pas que certaines personnes ais à travailler dessus par la suite ... )

Alors ma question est la suivante : Puis-je faire un fichier View en php comportant que les contour de la page HTML et mettre une sorte de commande à l'intérieur pour modifier le contenu ou je prend la solution de facilité qui est de ranger tous les fichier dans des dossier et dire que j'ai fais du bon travail ?

En réalité, la première solution m'intéresse largement plus donc s'il était possible d'avoir des informations ...

Voici un extrait de mon controller :

<?php

//header ('Content-Type: text/html; charset=utf-8');

//require('../Inc/require.inc.php');

$EX = isset ($_REQUEST['EX']) ? $_REQUEST['EX'] : 'home';
session_start();
// routeur

switch ($EX)
{
case 'home' : home (); break;
default : home ();
}

//require ('Location ../View/header.php'); // mise en page

function home ()
{
header('Location: ../Html/index.php');
} // home ()
?>

Pour des raisons que j'ignore, wamp est allergique à la commande require, d'où la présence des header.

En vous remerciant de l'attention que vous portez à mon problème.

Cordialement
A voir également:

2 réponses

BlackButterfly
12 avril 2012 à 15:05
Donc j'ai implémenté mon code :
Contrôleur :

header('Location ../View/header.php'); // mise en page

function home ()
{

global $page;

$page['class'] = 'VHtml';
$page['method'] = 'View_html';
$page['arg'] = 'index.html';
//echo $page['arg'];
} // home ()
Page de class :
class VHtml
{
public function __construct() {}

public function __destruct() {}

public function View_html ($_html)
{
require_once ("../Html/$_html");

} // View_html ()

} // VHtml
Code de la page header.php :
<?php
global $page;
$vpage = new $page['class'];
session_start();
?>


<!--
Haut de page Html
-->

<?php
$vpage = new $page['class'];
$vpage->$page['method']($page['arg'])
?>

<!--

Fin de page en html

-->

Mais là, pas d'érreur. Cela n'affiche rien tous simplement :/ Donc si quelqu'un voit une astuce je suis preuneur ...
0
BlackButterfly
12 avril 2012 à 16:18
Yata !! J'arrive à sortir quelque chose mais, ce n'est pas encore cela ...
Apparemment ce sont les lignes :

$vpage = new $page['class'];
$vpage->$page['method']($page['arg'])

qui ne passe pas. Donc si quelqu'un peut m'aider.

Message d'erreur : Undefined variable: page in C:\wamp\www\Site reglement.net MVC\View\header.php on line 3

Message d'erreur 2 :Class name must be a valid object or a string in C:\wamp\www\Site reglement.net MVC\View\header.php on line 3

Pourtant, les class existent. Si quelqu'un peut m'éclairer
0
BlackButterfly
12 avril 2012 à 20:09
Donc : après avoir testé les echo $page['blabla'] je me suis aperçu que les valeurs suivaient bien dans le fichier qui ne fonctionne pas. Je pense que c'est $vpage qui pose problème mais, je ne sais pas comment le régler. Si quelqu'un peut me venir en aide. J'ai passé ma journée sur ce problème et je dois avoué que je commence à péter les plombs ...
0
BlackButterfly
12 avril 2012 à 20:33
Problème résolu. C'était un problème de chargement de ma librairie. Merci IES !!!!!!!!!!!!
0