Ich portiere ein Symfony 1.2-Projekt nach Symfony 2.x. Ich führe gerade die neueste Version 2.1.0-dev.
Von meinem alten Projekt habe ich eine Klasse namens Tools, die einige einfache Funktionen für Dinge wie Munging Arrays in Strings und Erzeugung von Schnecken aus Strings hat. Ich möchte diese Klasse in meinem neuen Projekt verwenden, aber ich weiß nicht, wie ich diese Klasse außerhalb eines Bündels verwenden soll.
Ich habe hier verschiedene Antworten angeschaut, die empfehlen, app / autoload.php zu ändern, aber meine autoload.php sieht anders aus als in den Antworten, vielleicht hat sich hier etwas zwischen 2.0 und 2.1 geändert.
Ich möchte meine Klasse in meinen Quellverzeichnissen oder App-Verzeichnissen behalten, da sie unter Quellcodeverwaltung stehen. Mein Lieferantenverzeichnis ist nicht so, wie ich Composer verwende, um das zu kümmern.
Jeder Rat würde hier geschätzt werden.
Für einen einfachen Fall wie diesen besteht die schnellste Lösung darin, einen Ordner (zB Common
) direkt unter src
anzulegen und Ihre Klasse darin zu platzieren.
Tools.php
enthält Ihre Klasse mit einem geeigneten Namespace, zum Beispiel
Bevor Sie Ihre Funktion aufrufen, vergessen Sie nicht die use
-Anweisung
Wenn Sie Ihren Code unter src
hinter die richtige Ordnerstruktur und den Namespace wie oben beschrieben setzen, funktioniert es, ohne app/autoload.php
zu berühren.
Eine andere Möglichkeit ist die Verwendung von /app/config/autoload.php:
%Vor%Ersetzen Sie YOURNAMESPACE und YOURVENDOR einfach durch Ihre Werte. Funktioniert ganz gut für mich, soweit.
Sie haben Recht, ich bin über die Änderungen beim Autoload von 2.0 auf 2.1 gestolpert. Der obige Code funktioniert gut mit der neuesten Version, auf die ich mein Projekt aktualisiert habe ;-)
Tags und Links symfony-2.1