Hier ist meine Ordnerstruktur:PHP benutzerdefinierte Namespace Hinzufügen von mit Autoloader von Komponisten
Classes
- CronJobs
- Weather
- WeatherSite.php
Ich mag WeatherSite Klasse laden von meinem Skript. Im mit Komponisten mit Autoload:
$loader = include(LIBRARY .'autoload.php');
$loader->add('Classes\Weather',CLASSES .'cronjobs/weather');
$weather = new Classes\Weather\WeatherSite();
Im der obigen Code unter der Annahme, fügt den Namespace und den Weg, den Namespace aufgelöst wird. Aber wenn die Seite geladen ich immer diese Fehlermeldung erhalten:
Fatal error: Class 'Classes\Weather\WeatherSite' not found
Hier ist meine WeatherSite.php Datei:
namespace Classes\Weather;
class WeatherSite {
public function __construct()
{
}
public function findWeatherSites()
{
}
}
Was mache ich falsch?
Sie brauchen eigentlich keine benutzerdefinierten Autoloader, können Sie wahrscheinlich PSR-4 verwenden. Benutzt du 'composer.json'? Wenn ja, könnten Sie den Inhalt in 'autoload' hinzufügen? –
@ Tomáš Votruba Ich dachte für benutzerdefinierte Klassen, die ich schreibe Ich müsste die Namespaces zum Autoloader-Skript hinzufügen, das mit Composer kommt? – John