Bonjour,
Je suis en train de suivre les tutoriel de grafikart mais j'ai un problème à un moment dans la vidéo namespace.
Quand je lui dit d'aller chercher le form.php pour l'initialiser il me dit que la classe form est introuvable alors que quand je fait un var_dump j'ai bien form intialiser, donc j'ai regarder encore et encore la vidéo pour comprendre et toujours rien.
Fichier Autoloader.php
class Autoloader
{
static function register()
{
spl_autoload_register(array(__CLASS__ , 'autoload')); //__CLASS__ appelle nom de la classe courante
}
static function autoload($Classe)
{
$Classe = str_replace('Tutoriel\\', '', $Classe); // TUtoriel -> nom de la classe
$Classe = str_replace('\\', '/', $Classe);
var_dump($Classe);
require 'Classe/HTML/'. $Classe .".php";
}
}
?>
fichier Form.php
namespace Tutoriel\HTML;
class Form
{
private $data;
public $surround = 'p';
public $srow = 'br /';
public function __construct($data = array())
{
$this ->data = $data;
}
private function surround($html) //permet de creer un tag exemple <p></p>
{
return "<{$this->surround}>$html<{$this->surround}>";
}
private function getValue($index) //methode pour recuperer valeur tapé
{
if(isset($this->data[$index]))
{
return $this->data[$index];
}
else
{
return null;
}
}
public function input($name) //methode input
{
return $this->surround('<input type="text" name="'.$name.'" value="'.$this->getValue($name).'"/>');
}
public function submit() //methode submit
{
return $this->surround('<button type="submit">Envoyer</button>');
}
public function reset()//methode reset
{
return $this ->surround('<button type="reset">Reinitialiser</button>');
}
public function br() //méthode br : <br />
{
return "<{$this->srow}>";
}
}
?>
fichier index.php
<?php
require('Classe/Autoloader.php');
Autoloader::register();
$form = new Form(array(
'username' => 'fff'
));
?>
<form method="post" action="#">
<?php
echo $form ->input('username');
echo $form ->input('password');
echo $form->submit() . $form -> reset();
echo $form->br();
?>
</form>
le formulaire
Fatal error: Class 'Form' not found in C:\wamp64\www\POO_php_grafikart\autoloading\index.php on line 7
Salut,
C'est normal, tu n'importe pas ta classe depuis le bon namespace.
$form = new \Tutoriel\HTML\Form([
'username' => 'fff'
]);
Je pense que tu devrais regarder la formation PHP POO (https://www.grafikart.fr/formations/programmation-objet-php).
Es-tu sûr de bien avoir toutes les notions en POO ?