Es ist das erste Mal mit einem Autoloader arbeiten und einige Fehler zu bekommen. Die Struktur ist wie folgt:PHP Autoloader arbeitet nicht mit Namespaces
- AnimalShop (root)
- Klassen
- Shop.php
- index.php
- Klassen
Ich habe den folgenden einfachen Code
Index.php
<?php
spl_autoload_register(function ($class_name)
{
include $class_name . '.php';
});
echo "<h1>PETs SHOP</h1>";
// Create a shop
$shop = new Shop();
Shop ist eine einfache Klasse
<?php
namespace PHPAdvanced\AnimalShop\classes;
/*
* Pet shop
*/
class Shop
{
/**
* @var Pets[] pets
*/
private $pets = [];
public function addPetsToArray(Pets $pet)
{
$this->pets[] = $pet;
}
/**
* Print pets naam
*/
public function printPets()
{
foreach($this->pets as $pet)
{
echo "<p>" . $pet->getPetNaam() . "</p>";
}
}
}
Wenn ich laufen index.php i die folgenden Fehlermeldungen erhalten:
Warnung: include (Shop.php): Fehler beim Öffnen des Streams: Keine solche Datei oder Verzeichnis in /var/www/phpadvancedCourse/AnimalShop/index.ph p on line 4
Warnung: include(): Fehler beim Öffnen von 'Shop.php' für die Aufnahme (include_path = '.:/usr/share/php:') in/var/www/phpadvancedCourse/AnimalShop/index. php on line 4
ist 'shop.php' befindet sich in'/var/www/phpadvancedCourse/AnimalShop/'? –
nvm Ich sehe es in Ihrer Frage .. –
'include 'Klassen /'. $ Klassenname. '.php'; ' – AbraCadaver