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

4 réponses


Glaived
Réponse acceptée

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é

jeanmaki
Auteur

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
jeanmaki
Auteur

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