Page 1 of 1

Fehler in backend import über onyx_rss in master/2.0

Posted: Mon Oct 15, 2012 6:15 pm
by Timbalu
Garvin,

Ich habe gerade festgestellt, dass die bundled onyx_rss class mit 1.7/2.0 und PHP5 nicht mehr funktioniert. Backend/Importieren - Die bundled-libs/Onyx/RSS.php wirft einen Fehler "Redefining already defined constructor for class ONYX_RSS" at line 61.

Nun ist diese Klasse ja schon ziemlich alt und liegt in der Version 1.0 bei uns vor. Auch die neueste Version aus 2008 v. 1.3, funktioniert mit dem selben Fehler ebenso nicht.

Es wäre also zu überlegen, ob man nicht mal die Klasse wechselt und zu etwas Modernerem greift... vielleicht zu SimpleXML, crXml, Pear XML_Parser2, oder native...? Leider kenne ich mich da zu wenig aus, wäre also froh wenn du das machst.

Re: Fehler in backend import über onyx_rss in master/2.0

Posted: Tue Oct 16, 2012 9:45 am
by garvinhicking
Hi!

Man kann ONYX nicht einfach ersetzen, das ist ja kein pauschaler XML Parser, sondern gezielt für RSS-Feeds. Man müsste das dann alles nachbasteln, das ist schon sehr komplex. Onyx ist auch einer der einzigen BSD-lizenzierten Parser.

Ich hab hier noch nicht das funktionierende Devel-Setup; ich glaube es liegt hieran:

Code: Select all

function ONYX_RSS($charset = 'UTF-8')
   {
      $this->__construct($charset);
   }
Der Fehler kommt übrigens nur bei E_STRICT zustande. Das wiederum dachte ich hätten wir doch mit unserem Fehlerhandler auskommentiert? Oder nur in non-alpha versionen? Vergesse ich immer wieder.

Ich würde am ehesten auf PHP4 scheißen und obige Codezeile einfach rauskicken, dann klappts in PHP5 auch wieder...magst du das mal probieren und dann auch gerne so committen?

Grüße,
Garvin

Re: Fehler in backend import über onyx_rss in master/2.0

Posted: Tue Oct 16, 2012 10:05 am
by Timbalu
NaNaNa, Garvin :shock: Solche Worte...!
Hmm, mein test lief mit 2.0..., aber ich sehe gerade, das Grischa das im Master bereits durch eine Umstellung des PHP4 Constructors hinter den PHP5 Constructor gelöst hat. Tritt der Fehler dann nur in PHP4 auf oder ist das Problem damit tatsächlich gelöst?
Meine Lösung wäre ansonsten gewesen, den __construct() in construct() umzubenennen, dann würde nur der PHP4 Class-Constructor benutzt. Das soll ja auch noch ein Weilchen unterstüzt werden, die Frage ist nur bis wann?

Re: Fehler in backend import über onyx_rss in master/2.0

Posted: Tue Oct 16, 2012 10:15 am
by garvinhicking
Hi!

Hm, dann sollte man das auch gerne in 2.0 backporten; ich habe jetzt leider weder ein PHP4 noch PHP5 mit dem ich das schnell nachvollziehen könnte.

__construct() ist für die PHP5-Zukunft ja schon das sinnvollste, wer weiß ob das alte function naming auch in Zukunft noch funktioniert. Da würde ich der jetzte funktionierenden PHP5-Lösung den Vortritt geben...

Grüße,
GArvin

Re: Fehler in backend import über onyx_rss in master/2.0

Posted: Tue Oct 16, 2012 10:37 am
by onli
Php 4 ist also spätestens mit s9y 2.0 kein Thema mehr?
Gruß

Re: Fehler in backend import über onyx_rss in master/2.0

Posted: Tue Oct 16, 2012 12:22 pm
by garvinhicking
onli wrote:Php 4 ist also spätestens mit s9y 2.0 kein Thema mehr?
Würde ich so sagen.

Grüße,
Garvin

Re: Fehler in backend import über onyx_rss in master/2.0

Posted: Tue Oct 16, 2012 2:17 pm
by onli
Find ich gut.

Re: Fehler in backend import über onyx_rss in master/2.0

Posted: Tue Oct 16, 2012 2:39 pm
by Timbalu
Dazu müsste man sagen das schon die aktuellen 1.6 Versionen nur mit Mühe unter PHP4 zu betreiben wären. Wie oft haben wir hier im Forum schon Fehler gehabt, die nur sinnvoll mit einem Update auf PHP5 zu lösen waren. In der kommenden 1.7 muss explizit >= 5.2.6 benutzt werden! Die Frage ist wahrscheinlich nur, wann man mal aufräumt!? :wink: