Ich versuche, mit dem Komponisten zu arbeiten und wird eigene Pakete erstellen. Mein Paket Projekt hat die folgende Dateistruktur:Composer Autoload Fehler
scr/Scheduler.php
.gitignore
composer.json
Die Testklasse:
namespace david\Scheduler;
use Symfony\Component\Yaml\Parser;
class Scheduler
{
private $yamlParser;
public function __construct()
{
$this->yamlParser = new Parser();
}
}
und die composer.json Datei
...
"require": {
"symfony/yaml": "~3.0.3"
},
"autoload": {
"psr-4": {
"david\\Scheduler\\": "src/"
}
}
Das alles, was ich zu einem privaten Github begangen haben Repository. Momentan habe ich nur den Masterzweig und keine Tags. Mein zweiter Schritt wurde ein Client-Projekt mit der folgenden composer.json-Datei zu erstellen:
"repositories": [
{
"type": "package",
"package": {
"name": "david/scheduler",
"type": "package",
"version": "dev-master",
"source": {
"url": "[email protected]:david/scheduler.git",
"type": "git",
"reference": "master"
}
}
}
],
"require": {
"david/scheduler": "dev-master"
}
Wenn ich renne Komponist des GitHub Projekt aktualisieren wird geklont und im Lieferantenverzeichnis gespeichert werden. Aber nur mein Paket. Die Abhängigkeit zu Symfony/Yaml wird nicht geladen.
vendor
composer
david/scheduler
Erstellen Sie auch eine leere autoload_psr4-Datei.
$vendorDir = dirname(dirname(__FILE__));
$baseDir = dirname($vendorDir);
return array(
);
Ich denke, vielleicht gibt es einige Probleme in meiner Architektur ...
zeigen Ihnen, wie Sie den privaten Repository in das Hauptprojekt registrieren? Sie können die URL verschleiern, um sie privat zu halten –
@ChristopheCoevoet Ich habe das component.json-Snippet aktualisiert. Außerdem fügte ich der Beschreibung folgende Zeile hinzu: 'Momentan habe ich nur den Master-Zweig und keine Tags. – David
Ich gehe davon aus, dass Sie den Abschnitt' Repositories' im falschen Teil des Code-Snippets hinzugefügt haben (da es keinen Sinn ergibt) im 'david/scheduler'-Repository auf' david/scheduler' verweisen. Ich antwortete unten basierend darauf. –