[RESOLU] autoload problème

Eléphant du PHP | 282 Messages

07 avr. 2018, 21:45

Bonjour a tous,

J'ai un problème d'autoload dans une classe je ne vois pas ou est mon erreur.

Mon composer.json

Code : Tout sélectionner

{ "name": "kevin/calendar", "description": "calendar with php", "type": "project", "license": "GPL", "authors": [ { "name": "kevin-schmitt" } ], "autoload": { "psr-4": { "DAO\\" : "src/DAO/", "Calendar\\" : "src/Calendar/" } }, "minimum-stability": "beta", "require": {} }
dans mon index.php cela fonctionne:

Code : Tout sélectionner

<main> <?php require_once '../vendor/autoload.php'; $pdo = DAO\SPDO::getInstance(); $events = new Calendar\Events();
par contre dans ma classe Events.php :

Code : Tout sélectionner

<?php namespace Calendar; require_once '../../vendor/autoload.php'; use \DAO\SPDO; class Events { /* * get event with id * @param int id of event * @return array contain event */ public function find(int $id): array { $pdo = \DAO\SPDO::getInstance(); $sql = 'SELECT * FROM events WHERE id = ?'; $statement = $pdo->prepare($sql); $statement->execute(array($id)); return $statement->fetchAll(); } }
J'ai l'erreur :

Code : Tout sélectionner

( ! ) Fatal error: Uncaught Error: Class 'DAO\SPDO' not found in C:\wamp64\www\calendar\src\Calendar\Events.php on line 63

Eléphant du PHP | 282 Messages

09 avr. 2018, 12:40

C'était seulement un problème de path, je devais mettre le path du fichier d'utilisation de la classe

Code : Tout sélectionner

require_once '../vendor/autoload.php';