[3.0][HTMLHeader] Package ausliefern scheitert

Das Forum soll der Ablage von Lösungen für immer wieder auftauchende Problemstellungen dienen. // This forum contains solutions to problems that frequently occur.
Antworten
Benutzeravatar
dave
Beiträge: 903
Registriert: 04.02.2011, 19:03:57
Wohnort: Berlin
Kontaktdaten:

[3.0][HTMLHeader] Package ausliefern scheitert

Beitrag von dave » 03.03.2015, 13:56:56

Hi zusammen!

Ich möchte mit der HTMLHeader-Erweiterung ein JS-Paket ausliefern. Dazu wird auch bereits erfolgreich am Ende meiner Seite ein Action-URL erzeugt. Wenn ich diese dann allerdings aufrufe, erhalte ich vom RootClassLoader folgenden Fehler:
No class loader with vendor "" registered!
Live hier zu beobachten: http://db.der-dave.com/?APF_extensions_ ... -jqPlot.js

Folgende Konfigurationen:

DEFAULT_JsCssPackager.ini:

Code: Alles auswählen

[jQuery-jqPlot]
ClientCacheDays = "7"           ; How long should it be cached on client?
ServerCacheMinutes = "10080"    ; How long should it be cached on server?
EnableShrinking = "true"        ; Shrink the code in the package?
PackageType = "js"              ; Possible types: 'js' and 'css'
; The files the package contains. Filename without extension!
Files.1.Namespace = "js"
Files.1.Filename = "jquery-1.11.2.min"
Files.2.Namespace = "js"
Files.2.Filename = "jquery.jqplot.min"
DEFAULT_actionconfig.ini:

Code: Alles auswählen

[JsCss]
ActionClass = "APF\extensions\htmlheader\biz\actions\JsCssInclusionAction" 
und DEFAULT_cacheconfig.ini:

Code: Alles auswählen

[jscsspackager_cache]
Provider = "APF\tools\cache\provider\TextCacheProvider"
Active = "true"
BaseFolder = "./cache"
Namespace = "jscsspackager"
FolderPermission = "0755"
Aufgerufen wird mein Paket im Template dann so:

Code: Alles auswählen

<core:addtaglib class="APF\extensions\htmlheader\pres\taglib\HtmlHeaderAddPackageTag" prefix="htmlheader" name="addpackage" />
<htmlheader:addpackage name="jQuery-jqPlot" type="js" appendtobody="true" />
und dies erzeugt auch am Ende die Action-Url, welche aber einen Fehler wirft? Danke für die Anregungen :oops:

GeneralCrime
Beiträge: 67
Registriert: 14.12.2011, 07:13:16

[ERROR] [612c478e65d74415b15e40bd66f88a8c]

Beitrag von GeneralCrime » 03.03.2015, 14:16:18

[2015-02-20 08:18:08] [ERROR] [612c478e65d74415b15e40bd66f88a8c] Class loader root path for namespace "extensions\htmlheader" cannot be determined. Please double-check your configuration! (Number: 256, File: /var/www/vhosts/gateworld-the-game.de/APF/core/configuration/provider/BaseConfigurationProvider.php, Line: 142)

Hallo APF Team,
also ich hab seit geraumer Zeit in meinen Logs immer diesen Eintrag vorhanden.
Lieder ist es mir bisher nicht möglich gewesen den Fehler zu reproduzieren um ihn dann zu isolieren und zu terminieren :-)

Hat einer von euch schonmal den Fehler gehabt? Ich habe alles duchsucht was besagten namespace enthält aber alles war immer inklusive APF eingetragen.

mfg General Crime

Benutzeravatar
dave
Beiträge: 903
Registriert: 04.02.2011, 19:03:57
Wohnort: Berlin
Kontaktdaten:

Re: [ERROR] [612c478e65d74415b15e40bd66f88a8c]

Beitrag von dave » 03.03.2015, 14:27:40

Ich habe vor einigen Minuten erst etwas ähnliches bezüglich dem HTMLHeader gepostet :lol: Mal schauen, vllt. ist das ja sogar noch ein allgemeines Problem.

Um gleich mal vornweg zu greifen: Welche APF-Version?

GeneralCrime
Beiträge: 67
Registriert: 14.12.2011, 07:13:16

Re: [ERROR] [612c478e65d74415b15e40bd66f88a8c]

Beitrag von GeneralCrime » 03.03.2015, 14:33:25

Im PageController steht 2.1-GIT.

Benutzeravatar
dr.e.
Administrator
Beiträge: 4525
Registriert: 04.11.2007, 16:13:53

Re: [ERROR] [612c478e65d74415b15e40bd66f88a8c]

Beitrag von dr.e. » 03.03.2015, 17:37:15

Hallo General Crime,

ich vermute ein Problem mit dem Namespace in der URL. Kannst du mal die URLs posten, die im Quelltext auftauchen? Wenn ich die Meldung richtig verstehe, sollte dort soetwas wie

Code: Alles auswählen

extensions_htmlheader-action:XYZ=...
statt

Code: Alles auswählen

APF_extensions_htmlheader-action:XYZ=...
Viele Grüße,
Christian

Benutzeravatar
dave
Beiträge: 903
Registriert: 04.02.2011, 19:03:57
Wohnort: Berlin
Kontaktdaten:

Re: [3.0][HTMLHeader] Package ausliefern scheitert

Beitrag von dave » 04.03.2015, 10:33:52

Fehler gefunden, nachdem ich mich mal ein wenig durch den Code gewühlt habe und ein paar Variablen gedumpt habe ;)

Meine js-Pakete lagen nicht im gleichen Namespace wie der Rest der Anwendung. Nachdem ich diese in selbigen Namespace verschoben habe, wurde alle korrekt ausgeliert.

Nun dachte ich mir, ich registriere in meiner index.php einfach einen neuen Namespace:

Code: Alles auswählen

RootClassLoader::addLoader(new StandardClassLoader('js', $dir . '/js')); 
Das klappt allerdings so einfach nicht. Was habe ich vergessen?

Benutzeravatar
dr.e.
Administrator
Beiträge: 4525
Registriert: 04.11.2007, 16:13:53

Re: [3.0][HTMLHeader] Package ausliefern scheitert

Beitrag von dr.e. » 04.03.2015, 14:06:19

Hallo dave,

schön, dass du den Fehler gefunden hast und ihn beheben konntest! :)
Das klappt allerdings so einfach nicht. Was habe ich vergessen?
Ein ClassLoader wird an Hand seines Herstellers/Vendors/Projekt-Kenner (oder wie auch immer du das nennen möchtest) registriert (hier folgt das APF dem PSR-Standard). Das ist immer der erste Bestandteil des Namespace. Liegt deine Applikation beispielsweise unter /js und dein Namespace beginnt auch mit js, dann ist der Aufruf

Code: Alles auswählen

RootClassLoader::addLoader(new StandardClassLoader('js', $dir . '/js'));
schon richtig. Das bedeutet allerdings, dass alle Komponenten dort mit dem Hersteller-Kürzel js beginnen. Beispiel:

Code: Alles auswählen

namespace js\actions;

use APF\core\frontcontroller\AbstractFrontcontrollerAction;

class AcmeAction extends AbstractFrontcontrollerAction {
   ...
}
Im Details ist das unter https://github.com/AdventurePHP/docs/bl ... oader.html beschrieben und wird bald online sein.

Wenn du weitere Fragen hast, immer gerne! :)

@General Crime: lässt sich mit den Hinweisen auch dein Problem lösen? Falls nicht, gib gerne Bescheid!
Viele Grüße,
Christian

GeneralCrime
Beiträge: 67
Registriert: 14.12.2011, 07:13:16

Re: [3.0][HTMLHeader] Package ausliefern scheitert

Beitrag von GeneralCrime » 05.03.2015, 19:24:03

Wenn ich selber diese Links gefunden hätte könnte ich den Fehler ja reproduzieren.
Bisher habe ich den Fehler aber nicht selber sehen können.

Benutzeravatar
dr.e.
Administrator
Beiträge: 4525
Registriert: 04.11.2007, 16:13:53

Re: [3.0][HTMLHeader] Package ausliefern scheitert

Beitrag von dr.e. » 05.03.2015, 23:08:47

Hmm, wie wollen wir weiter machen? Mein Vorschlag wäre: versuche das mal lokal nachzuvollziehen. Einverstanden?
Viele Grüße,
Christian

GeneralCrime
Beiträge: 67
Registriert: 14.12.2011, 07:13:16

Re: [3.0][HTMLHeader] Package ausliefern scheitert

Beitrag von GeneralCrime » 06.03.2015, 13:03:14

Ich habe nun mal in den Server logs rein geschaut und dort passend zum error Log einen Eintrag gefunden:
66.249.78.201 - - [06/Mar/2015:04:56:23 +0100] "GET /?newscount=4&extensions_htmlheader-action:JsCss=path:sites_gateworld-portal_pres_css%7Ctype:css%7Cfile:admin HTTP/1.1" 200 7468 "-" "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)"

Eine Suchmaschiene ist schuld! Dieser Eintrag ist total veraltet.

Benutzeravatar
dr.e.
Administrator
Beiträge: 4525
Registriert: 04.11.2007, 16:13:53

Re: [3.0][HTMLHeader] Package ausliefern scheitert

Beitrag von dr.e. » 07.03.2015, 10:58:31

Sehr schön! Dann haben wir ja den Schuldigen. ;) Klar,
extensions_htmlheader
muss nun

Code: Alles auswählen

APF_extensions_htmlheader
lauten. Evtl. kannst du eine RewriteRule schreiben, die das mit einem 301 auf die richtige URL weiterleitet, dann wird das sicher bald erledigt sein.
Viele Grüße,
Christian

GeneralCrime
Beiträge: 67
Registriert: 14.12.2011, 07:13:16

Re: [3.0][HTMLHeader] Package ausliefern scheitert

Beitrag von GeneralCrime » 08.03.2015, 01:05:14

Blöde frage kenn mich damit noch nicht so aus.
Wie macht man das?

Finde es bescheuert das son Bot sowas versucht gabs ja nie als link irgendwo.

Benutzeravatar
dr.e.
Administrator
Beiträge: 4525
Registriert: 04.11.2007, 16:13:53

Re: [3.0][HTMLHeader] Package ausliefern scheitert

Beitrag von dr.e. » 09.03.2015, 12:40:49

Hallo General Crime,

effektiv kannst du so einen Request am Pattern "&extensions_htmlheader-action:JsCss" erkennen. Dieses schreibst du dann einfach zu "&APF_extensions_htmlheader-action:JsCss" um und sendest einen 301. Geht grob so (ungetestet):

Code: Alles auswählen

RewriteRule /(.+)&extensions_htmlheader-action:JsCss(.+) /$1&APF_extensions_htmlheader-action:JsCss$2 [NC,L,R=301]
Viele Grüße,
Christian

GeneralCrime
Beiträge: 67
Registriert: 14.12.2011, 07:13:16

Re: [3.0][HTMLHeader] Package ausliefern scheitert

Beitrag von GeneralCrime » 10.03.2015, 14:03:48

Und wo kommt der Code rein?

Ok .htaccess ins Hauptverzeichnis war nur zu faul zum googeln.

Klappt bisher aber noch nicht bin jetzt auf nen Generator gestoßen wo man das eintragen kann.

Antworten

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast