Fehler: Declaration of FrontControllerInputFilter::filter()

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
Fuzzy
Beiträge: 7
Registriert: 06.07.2009, 06:30:05
Wohnort: Marburg

Fehler: Declaration of FrontControllerInputFilter::filter()

Beitrag von Fuzzy » 06.07.2009, 13:00:15

Hallo,

ich versuche gerade eine Webseite für einen Freund zu machen und bekomme zur Zeit folgende Fehler.

Message: Declaration of FrontControllerInputFilter::filter() should be compatible with that of AbstractFilter::filter()
...und ähnliche Fehler dieser Art...
Vergleich: http://www.dhammananda.de
  • Zur Information:
    -> Ich benutze lampp(xampp) für Linux. Unter localhost kamen keine Fehlermeldungen
    - (PHP Version 5.2.9)
    - allow_url_fopen = on
    -> seit gestern habe ich die Domain:"www.dhammananda.de" bei "1und1" erworben. Dort treten Fehler auf.
    - (PHP Version 5.2.10)
    - allow_url_fopen = off
    -> beim Webhost habe ich eine Datei .htaccess angelegt mit dem Inhalt

    Code: Alles auswählen

    AddType x-mapp-php5 .php
    AddHandler x-mapp-php5 .php
    - es handelt sich nur um eine Datei, die im gleichen Verzeichnis liegt wie die index.php

Kann mir jemand helfen ?

LG
Fuzzy

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

Re: Fehler: Declaration of FrontControllerInputFilter::filter()

Beitrag von dr.e. » 06.07.2009, 13:20:09

Hallo Fuzzy,

zu diesem Thema habe ich bereits einen Bug auf PHP.net eröffnet, da sich der Interpreter IMHO falsch verhält. An der genannten Code-Stelle wird keine Implementierung, sondern eine Überschreibung der Methode vorgenommen, was nicht zu einem fehler führen darf, der darauf schließen lässt, dass ein Interface falsch implementiert ist. Details hierzu unter http://bugs.php.net/bug.php?id=48804.

Da ich leider noch keine Antwort bekommen habe, kann ich dir nicht genau sagen, wann das gefixt ist. Kurzfristige Lösung wäre vermutlich das Downgrade auf PHP4, sprich ohne die .htaccess oder das Einschalten des ze1.compatibility-mode. Vielleicht hilft auch das abschalten der E_STRICT-Meldung, soweit bin ich im Test gestern nicht gekommen.

Sorry, dass ich dir keine fertige Lösung präsentieren kann, ich versuche das jedoch bis zur Version 1.10 (stable) mit einem Workaround zu lösen. Sollten alle oben beschriebenen Ideen nicht helfen, sag Bescheid, dann versuche ich möglichst zügig einen Workaround zu finden.

Viele Grüße,
Christian
Viele Grüße,
Christian

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

Re: Fehler: Declaration of FrontControllerInputFilter::filter()

Beitrag von dr.e. » 06.07.2009, 21:39:17

Hallo Fuzzy,

ich habe einige weitere Tests angestellt und eine mögliche Lösung implementiert. Das bedingt allerdings, dass die Filter-Klassen umgebaut werden müssen. Ich würde deshalb gerne auf ein Statement von den Jungs auf PHP.net warten, denn der Umbau zieht einige Tests nach sich.

Ich hoffe, du hast in der Zwischenzeit einen gangbaren Weg gefunden?!

Viele Grüße,
Christian
Viele Grüße,
Christian

Fuzzy
Beiträge: 7
Registriert: 06.07.2009, 06:30:05
Wohnort: Marburg

Re: Fehler: Declaration of FrontControllerInputFilter::filter()

Beitrag von Fuzzy » 06.07.2009, 23:06:46

Hallo Doc,

vielen Dank für deine schnelle Antwort. Ich habe seit gestern eigentlich garnichts mehr gemacht. Ich werde die nächsten Tage oder am WE mal einige Dinge probieren.

Ansonsten vielen Dank für dein Framework, obwohl es am anfang schwierig ist, reinzusteigen. Bevor ich die Webseite gemacht habe, habe ich mir verschiedene Frameworks mal angesehen, (CakePHP, Drupal, CodeIgniter, etc.). Doch der logische Aufbau der Verzeichnisse und des Frameworks von APF hat mich an meisten überzeugt. Dies nur als Feedback.

LG

Fuzzy

Fuzzy
Beiträge: 7
Registriert: 06.07.2009, 06:30:05
Wohnort: Marburg

Re: Fehler: Declaration of FrontControllerInputFilter::filter()

Beitrag von Fuzzy » 09.07.2009, 11:48:30

Hallo Doc,

ich habe einfach in der pagecontroller.php die beiden Zeilen auskommentiert.

Code: Alles auswählen

//import('core::errorhandler','errorhandler');
//import('core::exceptionhandler','exceptionhandler');
Die Seiten lassen sich natürlich nun ohne Fehlermeldungen aufrufen :roll: .
Ist vielleicht nicht im Sinne des Erfinders, aber natürlich erst nur eine temporäre Lösung.

LG
Fuzzy

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

Re: Fehler: Declaration of FrontControllerInputFilter::filter()

Beitrag von dr.e. » 18.07.2009, 23:49:06

Hallo Fuzzy,

es gibt gute Neuigkeiten: :D

Da das Release 1.10-RC1 nun veröffentlicht ist, habe ich den heutigen Tag genutzt, um die Filter-Komponenten zu refactoren. Damit kann der PHP-Fehler umgangen werden und das Fehler-Handling funktioniert wieder. Zum Test kannst du dir unter http://adventurephpfra.svn.sourceforge. ... php5/1.10/ die aktuellen Sourcen aus dem SVN auschecken oder unter http://adventurephpfra.svn.sourceforge. ... z?view=tar herunterladen.

Ich werde die Änderungen in den nächsten Tagen noch ausführlich testen und die Dokumentation anpassen. Solltest du in der Zwischenzeit Fragen haben, können wir diese gerne hier beantworten.

Viele Grüße,
Christian
Viele Grüße,
Christian

Fuzzy
Beiträge: 7
Registriert: 06.07.2009, 06:30:05
Wohnort: Marburg

Re: Fehler: Declaration of FrontControllerInputFilter::filter()

Beitrag von Fuzzy » 26.07.2009, 20:19:17

Hallo Doc,

vielen Dank für deine Hilfe und die tolle Arbeit die du machst. Leider konnte ich in den letzten 2 Wochen mich nicht mit dem Programm beschäftigen. PC-Probleme. Ich hoffe, ich kann in den nächsten Tagen das Programm auf das neue Release portieren.

LG

Fuzzy

jabs
Beiträge: 8
Registriert: 08.02.2009, 00:07:02

Re: Fehler: Declaration of FrontControllerInputFilter::filter()

Beitrag von jabs » 06.02.2010, 16:53:44

Ich habe dieses Problem mittlerweile auch, nachdem es ein PHP Update auf Kundenservern gab.

Code: Alles auswählen

Fatal error: Class 'PageControllerInputFilter' not found in /srv/www/vhosts/zerohosting.de/httpdocs/apps/core/filter/PageControllerInputFilter.php on line 82 
Lokal und online arbeite ich je mit:
- PHP 5.2.9 & APF 1.10 -2009-09-04-1048 (das müsste RC 1 sein glaube ich)
- PHP 5.3.0 & APF 1.11

Der Fehler trat dabei mit dem APF 1.10 auf, und zwar nach dem Update von PHP 5.2.9 auf 5.2.11.

Nun funktionieren einige Kunden-Websites nicht mehr die schnellstens wieder online müssen,
daher fällt eine Umstellung auf das APF 1.11 erstmal weg.

Hat jemand noch eine Lösung / Workaround zur Hand?
Ich möchte nur ungern zu einem temporären PHP downgrade auf 5.2.9 zurückgreifen müssen.

Vielen Dank und liebe Grüße,
jabs


//edit
Ich habe mal eine Kopie des Projekts unter einer Testdomain geuppt,
in welcher ich einfach das APF 1.11 Codepack 1 zu 1 reinkopiert habe.
Ich habe dadurch eig nur den Fehler des Filters gegen
Fatal error: [Singleton::getInstance()] Class "BenchmarkTimer" cannot be found! Maybe the class name is misspelt! in /srv/www/vhosts/zerohosting.de/httpdocs/apps/core/singleton/Singleton.php on line 63
eingetauscht.

Was mich unter anderem ein wenig stutzig macht:
Vor meinem ersten Post hier, bin ich bereits auf dein Post unter PHP Bugs gestoßen
(http://bugs.php.net/bug.php?id=48804).
Bei dir schien nur PHP 5.3.0 betroffen zu sein. Allerdings hatte ich dieses Problem
weder mit PHP 5.3.0 noch mit dem APF 1.11.
Wenn ich das richtig verstanden habe, fand das Filter-Refactoring bereits mit 1.10 RC 1 statt.

lg Jabs

jabs
Beiträge: 8
Registriert: 08.02.2009, 00:07:02

Re: Fehler: Declaration of FrontControllerInputFilter::filter()

Beitrag von jabs » 06.02.2010, 18:18:21

Probleme erstmal durch einen PHP downgrade gelöst.

Trotzdem hab ich große Lust darauf hinter das Problem zu kommen.
Wenn sich irgendwas ergibt, bitte melden, vielen Dank,
jabs

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

Re: Fehler: Declaration of FrontControllerInputFilter::filter()

Beitrag von dr.e. » 07.02.2010, 10:29:44

Hallo Jabs,

sorry für die späte Antwort. Hier liegt IMHO wieder das Problem mit der API-Änderung in 5.3 bzw später auch in 5.2.x vor. Sofern ein e Methode nicht exakt so definiert wie implementieret wurde (auch die Namen der Variablen), wird der von dir gepostete Fehler angezeigt. Aus diesem Grund wurde in 1.10-RC2 ein Refactoring der Filter urchgeführt, dass diesen Umstand umgeht.

Ich würde daher auf 1.10 final updaten, dort sollte dieser Fehler nicht mehr auftreten. Allerdings müssen hier u.U. kleine Anpassungen an der Software vorgenommen werden (siehe http://adventure-php-framework.org/Seit ... 9-auf-1-10). Der Fehler beim Update von 1.10-RC12 auf 1.11 rührt daher, dass die Klasse benchmarkTimer in BenchmarkTimer umbenannt wurde. Weiter wurden in 1.11 aber noch einige andere Änderungen (siehe http://adventure-php-framework.org/Seit ... 0-auf-1-11) eingebaut, weshalb ein Upgrade nur dann 1:1 funktioniert, wenn du die alten Form-Taglibs nutzt (siehe http://wiki.adventure-php-framework.org ... .11_nutzen).

Hoffe, das hilft dir weiter.
Viele Grüße,
Christian

jabs
Beiträge: 8
Registriert: 08.02.2009, 00:07:02

Re: Fehler: Declaration of FrontControllerInputFilter::filter()

Beitrag von jabs » 08.02.2010, 12:16:57

dr.e. hat geschrieben:Hallo Jabs,
Sofern ein e Methode nicht exakt so definiert wie implementieret wurde (auch die Namen der Variablen), wird der von dir gepostete Fehler angezeigt
Hm das hatte ich schon vermutet, nachdem ich deinen Bug-Post gelesen hatte.
Habe es aber nicht geschafft den Code anzupassen, weil mir nicht klar war dass auch die Namen der Variablen identisch zur Definition sein müssen.
bugs.php.net/bug.php?id=48804. hat geschrieben:This error is due the default value required for the param., not because the variable name.
Seid Release bau ich meine Projekte sowieso nur noch auf das APF 1.11, daher werd ich mir an dieser Stelle wohl das Update auf 1.10 final sparen.

Der Fehler beim Update von 1.10-RC12 auf 1.11 rührt daher, dass die Klasse benchmarkTimer in BenchmarkTimer umbenannt wurde.
Ist mir aufgefallen, allerdings war nach dem drüberschaun die Implementierung trotzdem korrekt.
Vllt hing das mit anderen Changes zusammen. Beim "Upgrade" ging ich sowieso bereits davon aus, dass die Erfolgschancen recht gering ausfallen würden,
aber die Hoffnung stirbt zuletzt. :D

Many thanks for you response,
s y
Jabs

Antworten

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast