Autoloading einer Klasse in Symfony 2.1

8

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.

    
Al Bennett 20.08.2012, 21:36
quelle

2 Antworten

7

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.

%Vor%

Tools.php enthält Ihre Klasse mit einem geeigneten Namespace, zum Beispiel

%Vor%

Bevor Sie Ihre Funktion aufrufen, vergessen Sie nicht die use -Anweisung

%Vor%

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.

    
mgiagnoni 21.08.2012, 09:33
quelle
12

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 ;-)

    
maschmann 05.10.2012 12:36
quelle

Tags und Links