Zend Framework: Autoloading einer Klassenbibliothek

8

Ich habe eine Klassenbibliothek definiert ... / projectname / library / Me / Myclass.php wie folgt definiert:

%Vor%

Ich habe den folgenden Bootstrap:

%Vor%

In meinem Controller versuche ich die Klasse so zu instanziieren:

%Vor%

Wenn ich direkt zu http: /something.com/projectname/some? id = 1 navigiere, erhalte ich folgende Fehlermeldung:

Fataler Fehler: Die Klasse 'Me_Myclass' wurde nicht in /home/myuser/work/projectname/application/controllers/SomeController.php in Zeile x gefunden.

Irgendwelche Ideen?

Potenziell vorhandenes Miscellany:

Der Autoloader scheint zu funktionieren, wenn ich Modelle mit Klassen erweitere, die ich in anderen Ordnern unter application / library definiert habe.

Jemand schlug vor, den Standard zu ändern, den ich versuchte, aber es schien nicht das Problem zu beheben und hatte den zusätzlichen negativen Effekt, die Funktion von Modellen zu unterbrechen, die diesen Namensraum benutzen.

    
user250120 28.01.2010, 01:51
quelle

4 Antworten

12

Ihre Klasse muss den Namen Me_Myclass haben:

%Vor%

Bewegen Sie Ihren Bibliotheksordner um eine Ebene, so dass Sie die Ordnerstruktur haben:

%Vor%

Und dann fügen Sie in Ihrem Bootstrap folgendes zum _initAutoload () hinzu:

%Vor%     
smack0007 28.01.2010, 08:25
quelle
2

Sie können das Autoload-Verzeichnis in der Datei config.ini wie folgt definieren:

%Vor%

funktioniert 100%

    
jipipayo 12.03.2012 06:57
quelle
1

Ich denke @ smack0007 bedeutet, den Inhalt deiner _initAutoload-Methode durch Zend_Loader_Autoloader :: getInstance () - & gt; registerNamespace ('Me_') zu ersetzen; So sieht es aus:

%Vor%     
Wannabeweb 16.06.2010 05:30
quelle
0

Ich bin mir nicht sicher, ob das dein Problem ist, aber ich habe gerade den letzten Tag und die Hälfte damit verbracht, mein eigenes ähnliches Problem herauszufinden (beim ersten Laden unter Linux von Windows). Es stellte sich heraus, dass ich für den Ordnernamen meiner Bibliothek blind war.

%Vor%

ist nicht dasselbe wie (on * nix)

%Vor%

Klassenname ist normalerweise das

%Vor%

Hoffe, das hilft jemandem, der ähnlich abwesend ist.

    
Edward Hew 08.07.2010 09:46
quelle