verwenden Sie PHPExcel mit dem Komponisten und Symfony2.2
Fand ich das SO: Wie zu verwenden PHPExcel richtig mit Symfony 2
Dies funktioniert, aber ich möchte es verwenden, mit dem Komponisten.
Den ersten Teil habe ich bereits gelöst: zum laden von PHPExcel für einen speziellen tag (der Letzte stabile Version)
Ich nicht herausfinden, wie zu Holen ein tag mit dieser syntax:
"repositories": [
{
"type": "vcs",
"url": "https://github.com/umpirsky/SyliusAssortmentBundle"
}
]
Also ich benutze den Package
notation:
Ich fand heraus, die reference
sollte der tag-name auf github.
Und die version
nicht den gleichen Wert (PHPExcel_1.7.8). Scheint, dass alphabetische Zeichen sind nicht zulässig, so dass es nur die version als Zahl (1.7.8)
"repositories": [{
"type": "package",
"package": {
"name": "PHPOffice/PHPExcel",
"version": "1.7.8",
"source": {
"url": "https://github.com/PHPOffice/PHPExcel.git",
"type": "git",
"reference": "PHPExcel_1.7.8"
}
}
}]
Den nächsten Schritt, den ich nicht lösen. Ich habe versucht, jede Kombination für das autoloading: psr-0, classmap, verschiedene Pfade, die relativ zum Projekt - /vendor/phpexcel -, update-Komponist immer, aber nichts funktionierte.
Funktioniert es nur, wenn ich diese Zeile
$loader->add('PHPExcel', __DIR__.'/../vendor/PHPOffice/PHPExcel/Classes');
in der app/autoload.php. Ich fand heraus, dass der erste string (PHPExcel
) kann auch ein leerer string sein: ''
.
Gibt es eine differnece wenn ich PHPExcel
oder ''
?
Also meine primäre Frage ist, wie kann ich vermeiden, schreiben Sie diese Zeile in der autoload.php, legen Sie die entsprechende Befehle in meinem Projekt ist Komponist.json?
InformationsquelleAutor timaschew | 2013-04-24
Du musst angemeldet sein, um einen Kommentar abzugeben.
Bezug auf Ihre primäre Frage, das problem ist, dass sobald das Paket installiert ist, wenn Sie aktualisieren die definition und hinzufügen von autoload-Kram, dann läuft
composer update
wird sich nichts ändern. Komponist noch das alte Paket bereits installiert in seinen "cache", so dass es verwendet, um zu generieren, die autoload-und nicht, dass.Zur Behebung dieses sollten Sie entfernen das
vendor/PHPOffice/PHPExcel
direkt und führencomposer update
, die es neu installieren mit den neuesten Informationen von Ihrem Komponisten.json, einschließlich autoload, etc. Sollten Sie autoloading als solche:Bezug auf die sekundäre Frage und
''
vs'PHPExcel'
:''
sagt nur, dass jeder namespace kann gefunden werden in diesem Verzeichnis. Das bedeutet, dass der autoloader wird immer scan in diesem Verzeichnis finden Sie Klassen, die bequem, aber langsamer als Zuordnung von namespaces zu-Verzeichnisse ausdrücklich an. So funktionieren beide, aber die spezifische form ist es bevorzugt, vor allem in Paketen, die Sie veröffentlichen, öffentlich.will reinstall it with the latest information from your composer.json, including autoload, etc.
? Wie kann ich Sie, / ermöglichen Sie automatischer Dokumenteneinzug für PHPExcel, die keine eigene Komponisten.json und keine namespaces?Ich werde Bearbeiten meine Antwort auf diese Antwort.
Wie ich sagte, wenn Sie das tun, müssen Sie zuerst entfernen Hersteller/PHPOffice führen Sie dann update, es zu zwingen, neu installieren das Paket.
Sie haben vielleicht mehr entwickelt, das problem/die Lösung. Alle, die ich benutze ist: "CodePlex/PHPExcel": "1.7.8", unter benötigen. Keine Notwendigkeit für PHPOffice oder ein Paket-Eintrag oder alles unter autoload.
Die Benennung von "PHPExcel" - Paket aktualisiert wurde, verwenden Sie die "phpoffice/phpexcel" Komponisten.json
InformationsquelleAutor Seldaek