Bonjour,
Voila je rencontre un petit problème avec mon code réaliser avec les vidéos de Grafikart sur le calendrier en PHP.
Je cherche à pouvoir utiliser la fonctionnaliter "Modifier l'évenement" mais quand je clique sur ce bouton j'obtiens un :
"Fatal error: Class 'App\Validator' not found in D:\CalendrierFinal\src\Calendar\EventValidator.php on line 7".
Je conclus donc que ma classe EventValidator n'arrive pas à trouver la classe Validator alors que celle ci devrait être visible et ne devrais pas poser de soucis...
namespace Calendar;
use App\Validator;
class EventValidator extends Validator
{
/**
* @param array $data
* @return array|bool
*/
public function validates(array $data)
{
parent::validates($data);
$this->validate('name', 'minLength', 3);
$this->validate('date', 'date');
$this->validate('start', 'beforeTime', 'end');
return $this->errors;
}
}
Et voici également un screen pour que vous puissiez voir que les deux classes sont bien dans le dossier "src".
https://puu.sh/Aovec/0eefb03a8b.png
Et si jamais quelqu'un d'entre vous pourrais m'aiguiller sur comment réaliser le bouton "delete" présent dans la classe Events.php je serais pas contre :)
public function update(Event $event): bool
{
$statement = $this->pdo->prepare('UPDATE events SET name = ?, description = ?, start = ?, end = ? WHERE id = ?');
return $statement->execute([
$event->getName(),
$event->getDescription(),
$event->getStart()->format('Y-m-d H:i:s'),
$event->getEnd()->format('Y-m-d H:i:s'),
$event->getId()
]);
}
/**
* @param Event $event
* @return bool
*/
public function delete(Event $event): bool
{
}
Bonne journée à vous et je vous remercie d'avance.
Ton namespace dans ton composer.json
est Calendar
, alors que toi tu essaies de charger une classe dans le namespace App
.
Ajoute la ligne dans l'objet psr-4
"App\\": "src/App"
Tu devrais avoir ça
"psr-4": {
"Calendar\\": "src/Calendar",
"App\\": "src/App"
}
puis exécute la commande composer dump-autoload
.
@SLK arrête de dire des bétises, ton autoload ne marchera jamais comme ça
Salut,
Ton bouton n'est pas le problème, ton problème c'est la classe App\Validator
, ton autoloader est peut être mal généré.
Merci de ta réponse rapide Balsakup,
c'est vrai que la partie avec l'autoloader je n'ai pas tout compris, mais ayant suivant le tuto il ne devrait pas y avoir de problème. Si cela peut nous avancer voici ma classe autoload.php .
Tout simplement :
<?php
// autoload.php @generated by Composer
require_once __DIR__ . '/composer/autoload_real.php';
return ComposerAutoloaderInite92c4c3640745b50cabb508de601c014::getLoader();
Peut-etre re effectuer un autoload ?
C'est ton composer.json
qu'il nous faut pour voir. Car cette classe là est générée automatiquement par composer. Elle est donc "parfaite" à partir du moment que t'as bien remplis ton composer.json
Aussitot demandé, aussitot donné.
{
"name": "jerome/calendar",
"authors": [
{
"name": "Jérôme",
"email": "contact@test.fr"
}
],
"autoload": {
"psr-4": {
"Calendar\\": "src/Calendar"
}
},
"require": {}
}
Je te montre aussi l'arborescence du dossier si ça peut t'aider à comprendre mon soucis.
https://puu.sh/AoEgc/862293866d.png