Ankündigung

Einklappen
Keine Ankündigung bisher.

composer.json für eigene klasse

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • composer.json für eigene klasse

    Versuche seit einiger Zeit eine eigene Klasse auch für Composer fit zu machen. Ein Problem ist der Autoloader vom Composer. Vermute mal meine composer.json ist falsch.
    PHP-Code:
    {
        
    "name""jspit/tablearray",
        
    "description""PHP library for arrays with tableslike structure",
        
    "license""MIT",
        
    "type""library",
        
    "require": {
            
    "php"">=7.0"
        
    },
        
    "minimum-stability""dev",
        
    "autoload": {
            
    "psr-4": {
                
    "jspit""/"
            
    }
        }

    Die Klasse habe ich mit Composer geholt. Mein Test:
    PHP-Code:
    use Jspit\TableArray;

    require 
    __DIR__.'/../class/class.debug.php';
    debug::write('start');
    $vendor '/Users/'.get_current_user().'/vendor';
    require 
    $vendor.'/autoload.php';
    //require $vendor.'/jspit/tablearray/TableArray.php';

    debug::write(TableArray::VERSION);  //Zeile 10 
    Als Fehler kommt
    Code:
    Fatal error: Uncaught Error: Class 'Jspit\TableArray' not found in C:\xampp\htdocs\php\test\test_composer.php:10 Stack trace: #0 {main} thrown in C:\xampp\htdocs\php\test\test_composer.php on line 10
    Entferne ich den Kommentar der Zeile 8 liefert die Debug-Ausgabe wie gewünscht
    [19.01.2022 13:25:41,023][+13 ms](1097k/1417k) Debug::write "test_composer.php" Line 10
    0 string(5) ASCII "2.6.1"
    Der Test läuft unter Win10.

    Sieht einer der Profis womöglich schon den Fehler?

  • #2
    Zitat von jspit Beitrag anzeigen
    Code:
    "autoload": {
      "psr-4": {
        "jspit": "/"
      }
    }
    Mit dem / gehst du ins oberste Verzeichnis des Baums - du musst den Pfad relativ zu dem Verzeichnis angeben in dem die composer.json liegt, also einfach »./«. Zudem fängt der Namespace mit einem großen J an, die Zeile muss also »"Jspit": "./"« lauten.

    Kommentar


    • #3
      So
      Code:
      "Jspit\\": ""
      klappt es jetzt. Danke tk1234 .

      Kommentar

      Lädt...
      X