Je sais bien que mon code est bizarre

Si j'ai des erreurs d'exécutions aussi peu claires c'est bien qu'il y a un problème.
J'ai réussi à défaire quelques problèmes. Maintenant je bute autre part, et bien sûr je trouve ça toujours aussi bizarre....
Fichier index.php
Blabla plus haut avec ma chaine de connexion SQL qui fonctionne désormais
//creation of the application controller
$_SESSION['controller']= new ControllerImpl();
$ctrl = $_SESSION['controller'];
//----------------------
//Action management
//----------------------
if(!isset($_REQUEST['action'])){
echo " pas isset";
$request = new Request($_REQUEST);
$response = new Response();
echo " 1 ";
$listener = $ctrl->getListener("default");
echo "classe : ".get_class($listener);
$data = $listener->handle($request);
echo $data;
$view = $ctrl->getView("default");
echo "pourp2";
$view->display($data,$response);
Fichier init.php
<?php
echo " ok 1 ";
//-----------------------------------------------------------------------------
// includes des views
//-----------------------------------------------------------------------------
include_once 'Ecom/views/DefaultView.php';
include_once 'Ecom/views/ErrorView.php';
include_once 'Ecom/views/ActionView.php';
include_once 'Ecom/views/TaskView.php';
include_once 'Ecom/listeners/DefaultListener.php';
include_once 'Ecom/listeners/ActionListener.php';
include_once 'Ecom/listeners/TaskListener.php';
echo " ok 8 ";
$controller =$_SESSION['controller'];
echo " ok 9 ";
/**
*Pour chaque action que l'on passera dans l'URL, on associe une view et un listener
*/
//-----------------------------------------------------------------------------
// registration of the views and default error page
//-----------------------------------------------------------------------------
$controller->registerView ('default', new DefaultView());
echo " ok 10 ";
$controller->registerView ('error', new ErrorView());
echo " ok 11 ";
$controller->registerView ('action', new ActionView());
echo " ok 12 ";
$controller->registerView ('newAction', new ActionView());
echo " ok 13 ";
$controller->registerView ('task', new TaskView());
echo " ok 14 ";
//-----------------------------------------------------------------------------
// registration of the listeners
//-----------------------------------------------------------------------------
$controller->registerActionListener ('default', new DefaultListener());
$controller->registerActionListener ('action', new DefaultListener());
$controller->registerActionListener ('newAction', new ActionListener());
$controller->registerActionListener ('task', new TaskListener());
?>
Fichier DefaultView.php
<?php
echo "dv 1";
echo "dv 2";
include_once "Ecom/views/View.php";
include_once "Ecom/model/ActionPlanDAO.php";
include_once "Ecom/model/TaskDAO.php";
echo "dv 3";
/**
* Cette view est celle par défaut, elle appelé lorsqu'aucune action n'est spécifiée dans l'url
*/
class DefaultView implements View{
/**
* La fonction display permet d'affiche du contenu html dans la page
* elle est appelé dans index.php
* @param Data $data la donnée renvoyée par le handle des listeners
* @param Response $response l'objet créé dans index.php
*/
public function display(Data $data, Response $response){
//----------------Action Part--------------------//
$actionPlanDAO = new ActionPlanDAO();
$result = $actionPlanDAO->_findAll();
$xml_output = '<?xml version="1.0" encoding="UTF-8"?>'.'<carnet>';
while ($row = mysql_fetch_array($result)) {
$xml_output .= '<truc>';
}
$xml_output .= '</carnet>';
$fp = fopen("actionExport.xml", 'w+');
fputs($fp, $xml_output);
fclose($fp);
$response->write("<br/>");
$response->write('<div id="grid-example2"></div><a href="actionExport.xml">Voir le fichier XML</a><br/>');
$link1 = "'index.php?action=action'";
$response->write('<input type="button" value="View actions" name="action_link" onclick="self.location.href='.$link1.'" /><br/>');
//---------------------Task Part---------------------//
$taskDAO = new TaskDAO();
$result = $taskDAO->_findAll();
$xml_output = '<?xml version="1.0" encoding="UTF-8"?>'.'<carnet>';
while ($row = mysql_fetch_array($result)) {
$xml_output .= '<truc>';
}
$xml_output .= '</carnet>';
$fp = fopen("taskExport.xml", 'w+');
fputs($fp, $xml_output);
fclose($fp);
$response->write("<br/>");
$response->write('<div id="grid-example"></div><a href="taskExport.xml">Voir le fichier XML</a><br/>');
$link2 = "'index.php?action=task'";
$response->write('<input type="button" value="View tasks" name="task_link" onclick="self.location.href='.$link2.'" />');
$response->write("<br/><br/>");
}
}
Dans mon fichier index.php, j'inclue le fichier init.php. Donc lorsque je lance index.php sans paramètre il est sensé m'afficher la default view, mais ça coince au moment du echo "ok 10"; à l'écran ça ne va que jusqu'au echo ok 9, donc je suppose que le problème est ici :
$controller->registerView ('default', new DefaultView());
Mais qu'est ce qui cloche ???
(En tout cas merci de votre aide, ça m'aide à tenir !)
Je sais bien que mon code est bizarre :lol: Si j'ai des erreurs d'exécutions aussi peu claires c'est bien qu'il y a un problème.
J'ai réussi à défaire quelques problèmes. Maintenant je bute autre part, et bien sûr je trouve ça toujours aussi bizarre....
Fichier index.php
[php]
Blabla plus haut avec ma chaine de connexion SQL qui fonctionne désormais
//creation of the application controller
$_SESSION['controller']= new ControllerImpl();
$ctrl = $_SESSION['controller'];
//----------------------
//Action management
//----------------------
if(!isset($_REQUEST['action'])){
echo " pas isset";
$request = new Request($_REQUEST);
$response = new Response();
echo " 1 ";
$listener = $ctrl->getListener("default");
echo "classe : ".get_class($listener);
$data = $listener->handle($request);
echo $data;
$view = $ctrl->getView("default");
echo "pourp2";
$view->display($data,$response);
[/php]
Fichier init.php
[php]<?php
echo " ok 1 ";
//-----------------------------------------------------------------------------
// includes des views
//-----------------------------------------------------------------------------
include_once 'Ecom/views/DefaultView.php';
include_once 'Ecom/views/ErrorView.php';
include_once 'Ecom/views/ActionView.php';
include_once 'Ecom/views/TaskView.php';
include_once 'Ecom/listeners/DefaultListener.php';
include_once 'Ecom/listeners/ActionListener.php';
include_once 'Ecom/listeners/TaskListener.php';
echo " ok 8 ";
$controller =$_SESSION['controller'];
echo " ok 9 ";
/**
*Pour chaque action que l'on passera dans l'URL, on associe une view et un listener
*/
//-----------------------------------------------------------------------------
// registration of the views and default error page
//-----------------------------------------------------------------------------
$controller->registerView ('default', new DefaultView());
echo " ok 10 ";
$controller->registerView ('error', new ErrorView());
echo " ok 11 ";
$controller->registerView ('action', new ActionView());
echo " ok 12 ";
$controller->registerView ('newAction', new ActionView());
echo " ok 13 ";
$controller->registerView ('task', new TaskView());
echo " ok 14 ";
//-----------------------------------------------------------------------------
// registration of the listeners
//-----------------------------------------------------------------------------
$controller->registerActionListener ('default', new DefaultListener());
$controller->registerActionListener ('action', new DefaultListener());
$controller->registerActionListener ('newAction', new ActionListener());
$controller->registerActionListener ('task', new TaskListener());
?>
[/php]
Fichier DefaultView.php
[php]<?php
echo "dv 1";
echo "dv 2";
include_once "Ecom/views/View.php";
include_once "Ecom/model/ActionPlanDAO.php";
include_once "Ecom/model/TaskDAO.php";
echo "dv 3";
/**
* Cette view est celle par défaut, elle appelé lorsqu'aucune action n'est spécifiée dans l'url
*/
class DefaultView implements View{
/**
* La fonction display permet d'affiche du contenu html dans la page
* elle est appelé dans index.php
* @param Data $data la donnée renvoyée par le handle des listeners
* @param Response $response l'objet créé dans index.php
*/
public function display(Data $data, Response $response){
//----------------Action Part--------------------//
$actionPlanDAO = new ActionPlanDAO();
$result = $actionPlanDAO->_findAll();
$xml_output = '<?xml version="1.0" encoding="UTF-8"?>'.'<carnet>';
while ($row = mysql_fetch_array($result)) {
$xml_output .= '<truc>';
}
$xml_output .= '</carnet>';
$fp = fopen("actionExport.xml", 'w+');
fputs($fp, $xml_output);
fclose($fp);
$response->write("<br/>");
$response->write('<div id="grid-example2"></div><a href="actionExport.xml">Voir le fichier XML</a><br/>');
$link1 = "'index.php?action=action'";
$response->write('<input type="button" value="View actions" name="action_link" onclick="self.location.href='.$link1.'" /><br/>');
//---------------------Task Part---------------------//
$taskDAO = new TaskDAO();
$result = $taskDAO->_findAll();
$xml_output = '<?xml version="1.0" encoding="UTF-8"?>'.'<carnet>';
while ($row = mysql_fetch_array($result)) {
$xml_output .= '<truc>';
}
$xml_output .= '</carnet>';
$fp = fopen("taskExport.xml", 'w+');
fputs($fp, $xml_output);
fclose($fp);
$response->write("<br/>");
$response->write('<div id="grid-example"></div><a href="taskExport.xml">Voir le fichier XML</a><br/>');
$link2 = "'index.php?action=task'";
$response->write('<input type="button" value="View tasks" name="task_link" onclick="self.location.href='.$link2.'" />');
$response->write("<br/><br/>");
}
}
[/php]
Dans mon fichier index.php, j'inclue le fichier init.php. Donc lorsque je lance index.php sans paramètre il est sensé m'afficher la default view, mais ça coince au moment du echo "ok 10"; à l'écran ça ne va que jusqu'au echo ok 9, donc je suppose que le problème est ici :
$controller->registerView ('default', new DefaultView());
Mais qu'est ce qui cloche ???
(En tout cas merci de votre aide, ça m'aide à tenir !)