Compositeur d'auto-Chargement de classes ne se trouvent pas
J'ai structure de dossier comme:
includes/
libraries/
Classes/
Contact/
Contact.php
ContactController.php
admin/
controllers/
contact/
edit.php
Contact.php est ma classe que le fichier que je suis en train d'utiliser. Le fichier contient.
<?php
namespace Classes;
class Contact {
function __construct() {
die('here');
}
}
J'ai mon compositeur.fichier json comme:
{
"autoload": {
"psr-4": {
"Classes\\": "includes/libraries/Classes/"
}
},
}
Le fichier que je suis en train d'utiliser la classe Contact est edit.php
dans le admin/controllers/contact/
dossier. Mon edit.php
fichier est comme:
<?php
use Classes\Contact;
$contact = new Contact();
var_dump($contact);
Ce fichier a la vendor/autoload.php
contenues dans le fichier, mais je n'arrive pas à obtenir d'utiliser la classe?
OriginalL'auteur Ryan Hipkiss | 2016-10-19
Vous devez vous connecter pour publier un commentaire.
Classes/Contact/Contact.php
et le compositeur de la règle"Classes\\": "includes/libraries/Classes/"
impliqueClasses\Contact\Contact
de la classe, pasClasses\Contact
.Donc, si vous voulez vraiment
Classes\Contact
classe, déplacez leClasses/Contact/Contact.php
fichier vers le répertoire parent:Classes/Contact.php
.Si, toutefois, le désiré de l'espace de noms de chemin d'accès à la classe est
Classes\Contact\Contact
, puis changer leuse
:Et la
namespace
:Exemple
Les fichiers sous
vendor/
sont générés par le compositeur.compositeur.json
test.php
includes/libraries/Classes/Contact/Contact.php
Tests
Sortie
use Classes/Contact/Contact;
alors?non, il suffit de déplacer le fichier PHP au répertoire parent. Ah, si vous voulez
Classes/Contact/Contact
, alors oui, ne pas déplacer le fichier et changer leuse
.Ou de l'utilisation de l'espace de noms
Classes\Contact
au lieu deClasses
.Merci les gars, je vais essayer cela.
Je l'ai changé pour utiliser la nouvelle utilisation et les espaces de noms, et exécutez à nouveau
composer dump-autoload
, mais aucun résultat. Classe pas encore trouvé.OriginalL'auteur Ruslan Osmanov