PHP Compositeur Autochargeur Classe pas Trouvé Exception
Le titre parle de lui-même. Voici donc mon projet structure:
|src
|Database
|Core
|MySQL.php
|Support
start.php
|vendor
composer.json
index.php
MySQL.php fichier:
<?php
namespace Database\Core;
//Some methods here
index.php et start.php fichiers:
//start.php file
<?php
require __DIR__ . '/../vendor/autoload.php';
?>
//index.php file
<?php
use Database\Core;
require __DIR__ . '/src/start.php';
$mysql = new MySQL(); //Gets exception Class 'MySQL' cannot found etc.
?>
Et enfin mon compositeur.json autoload partie:
"autoload": {
"psr-4": "Database\\": "src/" //Also tried "src/Database" too
}
Où est le problème? Je suis vraiment fatigué d'essayer de faire face à cette situation. S'il vous plaît aider les gars! Merci.
OriginalL'auteur lostbyte | 2014-12-18
Vous devez vous connecter pour publier un commentaire.
Vous devez inclure l'espace de noms lorsque vous sont en cours d'initialisation d'une classe:
ou
Voir Utilisation des espaces de noms: l'alias de/Importation
Permettez-moi de voter pour vous 🙂
OriginalL'auteur Populus
Côté de ne pas utiliser le bon
use
déclaration comme déjà mentionné, le PSR-4 ne fonctionne pas comme ça. Il est plus d'un alias. Vous êtes essentiellement en disant quesrc
est égal àDatabase
. Donc, pour avoir un répertoire nomméDatabase
y impliquerait que l'espace de noms complet + classe est égale à la Base de données\Database\Core\MySQL`. Vous souhaitez utiliser le PSR-0 dans ce cas, ou d'ajuster votre PSR-4 définition.namespace AcmeBaseball\Database\Core;
et compositeur.json"psr-4": "AcmeBaseball\\": "src/"
Vous constaterez si vous installez un compositeur paquet comme AWS SDK Php; ouvrir leurs compser.json et l'espace de noms estAws
OriginalL'auteur alcohol