PHP ajout d'espace de noms personnalisé à l'aide de l'autochargeur de compositeur
Voici ma structure de dossier:
Classes
- CronJobs
- Weather
- WeatherSite.php
Je veux charger WeatherSite classe à partir de mon script. Im en utilisant compositeur avec autoload:
$loader = include(LIBRARY .'autoload.php');
$loader->add('Classes\Weather',CLASSES .'cronjobs/weather');
$weather = new Classes\Weather\WeatherSite();
Im en supposant que le code ci-dessus est l'ajout de l'espace de noms et le chemin d'accès de l'espace de nom résout. Mais quand le chargement de la page j'ai toujours cette erreur:
Fatal error: Class 'Classes\Weather\WeatherSite' not found
Voici mon WeatherSite.php fichier:
namespace Classes\Weather;
class WeatherSite {
public function __construct()
{
}
public function findWeatherSites()
{
}
}
Ce que je fais mal?
Vous avez réellement n'avez pas besoin personnalisé autochargeur, vous pouvez probablement utiliser le PSR-4. Utilisez-vous
Votruba j'ai pensé que pour les classes personnalisées j'écris que j'aurais à ajouter les espaces de noms à l'autochargeur script qui vient avec le compositeur?
composer.json
? Si oui, pourriez-vous ajouter du contenu dans autoload
section?Votruba j'ai pensé que pour les classes personnalisées j'écris que j'aurais à ajouter les espaces de noms à l'autochargeur script qui vient avec le compositeur?
OriginalL'auteur John | 2015-07-19
Vous devez vous connecter pour publier un commentaire.
Vous avez réellement n'avez pas besoin personnalisé autochargeur, vous pouvez utiliser le PSR-4.
Mise à jour de votre
autoload
section danscomposer.json
:À expliquer: {"Namespace\\": "répertoire"}
N'oubliez pas d'exécuter
composer dump-autoload
de mettre à jour Compositeur cache.Alors vous pouvez l'utiliser comme ceci:
J'ai mis à jour ma réponse.
C'est correct! Excellent travail, je suis content que tout fonctionne.
Et merci à vous de m'aider avec cela, il a résolu mon problème et m'a aidé à aller de l'avant!
compositeur de vidage-autoload' ne marche pas pour moi, mais " php artisan optimiser le travail pour moi .
OriginalL'auteur Tomáš Votruba