Bonjour,
Je suis en train de suivre le tuto de vyk12 sur la programmation orientée objet et je me retrouve avec cette erreur sur le backend.php
erreur : "Fatal error: Uncaught exception 'RuntimeException' with message 'La vue spécifiée n'existe pas' in C:\wamp\www\monsupersite\Library\Page.class.php on line 23
( ! ) RuntimeException: La vue spécifiée n'existe pas in C:\wamp\www\monsupersite\Library\Page.class.php on line 23"
Voici ma classe: Page.class.php
<?php
namespace Library;
class Page extends ApplicationComponent
{
protected $contentFile;
protected $vars = array();
public function addVar($var, $value)
{
if (!is_string($var) || is_numeric($var) || empty($var))
{
throw new \InvalidArgumentException('Le nom de la variable doit être une chaine de caractère non nulle');
}
$this->vars$var] = $value;
}
public function getGeneratedPage()
{
if (!file_exists($this->contentFile))
{
throw new \RuntimeException('La vue spécifiée n\'existe pas');
throw new \InvalidArgumentException('La vue spécifiée n\'existe pas');
}
$user = $this->app->user();
extract($this->vars);
ob_start();
require $this->contentFile;
$content = ob_get_clean();
ob_start();
require dirname( __FILE__ ).'/../Applications/'.$this->app->name().'/Templates/layout.php';
return ob_get_clean();
}
public function setContentFile($contentFile)
{
if (!is_string($contentFile) || empty($contentFile))
{
throw new \InvalidArgumentException('La vue spécifiée est invalide');
}
$this->contentFile = $contentFile;
}
}
Merci de m'éclairer
Le tuto de vyk12 ? http://fr.openclassrooms.com/informatique/cours/programmez-en-oriente-objet-en-php ?
Sinon, si ta l'erreur, c'est que:
if (!file_exists($this->contentFile))
renvoie true, juste avant cette ligne, essaie ceci:
var_dump( $this->contentFile );
die( __FILE__.':'. __LINE__ );
Vérifie que ce fichier existe, ou qu'il pointe bien vers le fichier désiré
Le tuto de vyk 12 c'est ce lui ci : http://fr.openclassrooms.com/informatique/cours/programmez-en-oriente-objet-en-php/description-de-l-application
Merci d'avoir répondu, j'ai essayé d'appliquer ce que tu m'as dit et j'obtient ceci
string 'C:\wamp\www\monsupersite\Library/../Applications/Backend/Modules/Connexion/Views/index.php' (length=90)
C:\wamp\www\monsupersite\Library\Page.class.php:22
Merci j'ai trouvé ca marche nickel ;-)
En effet j'avais nommé ma vue non pas index.php mais connexion.php
Forcément cela ne marchait pas
Merci Glaived