Hallole !
Beim Versuch eine Tebell über XForm anzulegen kommt folgender Fehler:
Fatal error: Cannot redeclare class rex_xform_action_db2email in .../redaxo/include/addons/xform/plugins/email/classes/action/class.xform.action_db2email.inc.php on line 90
Die Tabelle wird nicht angelegt. Sie ist zwar im RedaxoBackend sichtbar, aber in PHP MY Admin existiert sie nicht.
Ich hoffe mir kann jemand helfen.
Danke schonmals
REDAXO: 4.5.0
PHP: 5.3.23
MySQL: 5.1.69
XForm Version 4.5
Hallo,
Wir haben in letzter Zeit festgestellt, dass die Kommunikation via Slack viel schneller und zielführender ist als ein Beitrag im Forum. Aufgrund der neuen und besseren Möglichkeiten der Kommunikation haben wir uns entschlossen das Forum nur noch als Archiv zur Verfügung zu stellen. Somit bleibt es weiterhin möglich hier nach Lösungen zu suchen. Neue Beiträge können nicht mehr erstellt werden.
Wir empfehlen, für deine Fragen/Probleme Slack zu nutzen. Dort sind viele kompetente Benutzer aktiv und beantworten jegliche Fragen, gerne auch von REDAXO-Anfängern! Slack wird von uns sehr intensiv und meistens "rund um die Uhr" benutzt
Selbst einladen kannst Du dich hier: https://redaxo.org/slack/
Wir haben in letzter Zeit festgestellt, dass die Kommunikation via Slack viel schneller und zielführender ist als ein Beitrag im Forum. Aufgrund der neuen und besseren Möglichkeiten der Kommunikation haben wir uns entschlossen das Forum nur noch als Archiv zur Verfügung zu stellen. Somit bleibt es weiterhin möglich hier nach Lösungen zu suchen. Neue Beiträge können nicht mehr erstellt werden.
Wir empfehlen, für deine Fragen/Probleme Slack zu nutzen. Dort sind viele kompetente Benutzer aktiv und beantworten jegliche Fragen, gerne auch von REDAXO-Anfängern! Slack wird von uns sehr intensiv und meistens "rund um die Uhr" benutzt
Selbst einladen kannst Du dich hier: https://redaxo.org/slack/
XForm Tablemanager PHP Fehler
Halbwissen ist schonmal besser als Vollpfosten!
Re: XForm Tablemanager PHP Fehler
Hi!
Der Fehler sagt eigentlich schon alles: Die Klasse rex_xform_action_db2email wird irgendwo zweimal definiert. Am leichtesten findest du das raus, indem du alle Dateien nach dem Klassennamen durchsuchst.nuxx hat geschrieben:Fatal error: Cannot redeclare class rex_xform_action_db2email in .../redaxo/include/addons/xform/plugins/email/classes/action/class.xform.action_db2email.inc.php on line 90
Die Version gibt´s nicht. =)nuxx hat geschrieben:XForm Version 4.5
Re: XForm Tablemanager PHP Fehler
Danke für die fixe Antwort.
die Klasse kommt im Addon 2 mal vor:
/classes/action/
/plugins/email/classes/action/
Muss die entsprechende Passage auskommentiert werden, oder bringd das dann anderweitig Probleme?
l.G Nuxx
Die Addon Version steht in der Hilfe des Addons und auch im Downloadbereich.die Klasse kommt im Addon 2 mal vor:
/classes/action/
/plugins/email/classes/action/
Muss die entsprechende Passage auskommentiert werden, oder bringd das dann anderweitig Probleme?
l.G Nuxx
Halbwissen ist schonmal besser als Vollpfosten!
Re: XForm Tablemanager PHP Fehler
Ich würde hier einfach per class_exists prüfen ob die Klasse schon da und wenn nicht, dann halt inkludieren: http://php.net/manual/de/function.class-exists.phpnuxx hat geschrieben:Muss die entsprechende Passage auskommentiert werden, oder bringd das dann anderweitig Probleme?
Re: XForm Tablemanager PHP Fehler
Ne, das ist schlechter Codingstil. Das kann man in Templates oder Modulen machen, wo die Gefahr besteht, dass eine Klasse oder Funktion mehrmals eingebunden werden könnte.RexDude hat geschrieben:Ich würde hier einfach per class_exists prüfen ob die Klasse schon da und wenn nicht, dann halt inkludieren: http://php.net/manual/de/function.class-exists.phpnuxx hat geschrieben:Muss die entsprechende Passage auskommentiert werden, oder bringd das dann anderweitig Probleme?
Es reicht, die Datei im Ordner /xform/classes/action zu löschen.
Re: XForm Tablemanager PHP Fehler
Hi nuxx!
Du hast recht, da hab ich mich wohl geirrt: https://github.com/dergel/redaxo4_xform ... ig.inc.phpnuxx hat geschrieben:Die Addon Version steht in der Hilfe des Addons und auch im Downloadbereich.
Re: XForm Tablemanager PHP Fehler
Das sollte ja auch nur eine temporäre Quick and Dirty Übergangslösung sein. XForm muss sich natürlich drum kümmern, die Klassen richtig einzubinden. Aber auch hier gerade wenn man Plugins nutzt wird man fasst nicht um besagtes Vorgehen drumrumkommen. Deshalb verstehe ich deine Aussage nicht!Xong hat geschrieben:Ne, das ist schlechter Codingstil.
Ja und dann? Sie wird doch nich weiter im Quellcode eingebunden!?!? Und as würde wieder zu einem neuen Fehler führen!Xong hat geschrieben:Es reicht, die Datei im Ordner /xform/classes/action zu löschen.
Re: XForm Tablemanager PHP Fehler
Hey Rudi!
Generell könnte man sich natürlich überlegen, dass XForm überprüft, ob eine Klasse schon eingebunden wurde, und ggf. eine Warnmeldung ausgeben. Allerdings sehe ich da keine Dringlichkeit. Wenn man das Addon, so wie es ausgeliefert wird, installiert, gibt es das Problem ja nicht.
Ich vermute mal nuxx, hat die neue Version einfach drübergebügelt, weshalb die Datei noch im alten Verzeichnis vorhanden war.
XForm bindet alle Dateien aus den Ordnern ein, die im Array $REX['ADDON']['xform']['classpaths'] registriert werden.
Edit: Grade noch ´nen Geistesblitz gehabt, was du gemeint haben könntest. Die Klasse befindet sich jetzt unter /xform/plugins/email/classes/action. Also kann man die veraltete Datei durchaus einfach löschen.
Das hilft in einem Forum aber nicht weiter, wo Beiträge noch Jahre zu lesen sind. =)RexDude hat geschrieben:Das sollte ja auch nur eine temporäre Quick and Dirty Übergangslösung sein.Xong hat geschrieben:Ne, das ist schlechter Codingstil.
Jetzt versteh ich deine Aussage nicht. XForm hat die E-Mail-Funktionalität in ein Plugin ausgelagert. Die Klasse db2email wurde aus dem Ordner xform/classes/action gelöscht.RexDude hat geschrieben:XForm muss sich natürlich drum kümmern, die Klassen richtig einzubinden. Aber auch hier gerade wenn man Plugins nutzt wird man fasst nicht um besagtes Vorgehen drumrumkommen. Deshalb verstehe ich deine Aussage nicht!
Generell könnte man sich natürlich überlegen, dass XForm überprüft, ob eine Klasse schon eingebunden wurde, und ggf. eine Warnmeldung ausgeben. Allerdings sehe ich da keine Dringlichkeit. Wenn man das Addon, so wie es ausgeliefert wird, installiert, gibt es das Problem ja nicht.
Ich vermute mal nuxx, hat die neue Version einfach drübergebügelt, weshalb die Datei noch im alten Verzeichnis vorhanden war.
Hö? Natürlich wird sie nicht mehr eingebunden, wenn sie gelöscht ist.RexDude hat geschrieben:Ja und dann? Sie wird doch nich weiter im Quellcode eingebunden!?!? Und as würde wieder zu einem neuen Fehler führen!Xong hat geschrieben:Es reicht, die Datei im Ordner /xform/classes/action zu löschen.
XForm bindet alle Dateien aus den Ordnern ein, die im Array $REX['ADDON']['xform']['classpaths'] registriert werden.
Edit: Grade noch ´nen Geistesblitz gehabt, was du gemeint haben könntest. Die Klasse befindet sich jetzt unter /xform/plugins/email/classes/action. Also kann man die veraltete Datei durchaus einfach löschen.
Re: XForm Tablemanager PHP Fehler
Gute Argumentation.. kommt mir bekannt vor.Xong hat geschrieben:Generell könnte man sich natürlich überlegen, dass XForm überprüft, ob eine Klasse schon eingebunden wurde, und ggf. eine Warnmeldung ausgeben. Allerdings sehe ich da keine Dringlichkeit. Wenn man das Addon, so wie es ausgeliefert wird, installiert, gibt es das Problem ja nicht.
vg, Jan
Re: XForm Tablemanager PHP Fehler
Also Xong bevor wir hier weiter diskutieren: Ich habe weder XForm programmiert noch bin ich so bewandert über die internen Begebeheiten wie du. Meine Lösungsvorschlag beruhte sich auf einer sehr simplen Sichtweise und sollte als einfache Variante verstanden werden das Problem was der Autor dieses Threads hatte in den Griff zu bekommen OHNE tiefer in XForm reindiggen zu müssen und z.B. zu verstehen, dass alle Klassen automatisch eingebunden werden.
Was mich persönlich aber echt nervt ist, dass du mir unterstellst ich hätte einen schlechten Codingstil wegen diesem Muckenschiss jetzt. Übrigens eine Aussage die Jahrzehnte hier verewigt sein wird. Also schau auf deinen eigenen Kot und schreib dir deinen eigenen Satz hinter die Ohren: "Das hilft in einem Forum aber nicht weiter, wo Beiträge noch Jahre zu lesen sind."
Und hier noch was: Wenn dieser "Autoload" Mechanismus bei einem Update versagt, sollte man ihn ggf. halt verbessern oder abändern
Was mich persönlich aber echt nervt ist, dass du mir unterstellst ich hätte einen schlechten Codingstil wegen diesem Muckenschiss jetzt. Übrigens eine Aussage die Jahrzehnte hier verewigt sein wird. Also schau auf deinen eigenen Kot und schreib dir deinen eigenen Satz hinter die Ohren: "Das hilft in einem Forum aber nicht weiter, wo Beiträge noch Jahre zu lesen sind."
Und hier noch was: Wenn dieser "Autoload" Mechanismus bei einem Update versagt, sollte man ihn ggf. halt verbessern oder abändern
Re: XForm Tablemanager PHP Fehler
Das hab ich nirgendwo geschrieben. Ich hab dich auch nicht persönlich angreifen wollen. Warum du jetzt so angepisst reagierst, versteh ich nicht.RexDude hat geschrieben:Was mich persönlich aber echt nervt ist, dass du mir unterstellst ich hätte einen schlechten Codingstil wegen diesem Muckenschiss jetzt.
Zwei Versionen ein und derselben Klasse zu haben und Fehler mit class_exists abzufangen, ist deshalb schlechter Codingstil, weil man bei Änderungen beide Klassen warten muss. Wozu also die Mühe?
Und von dieser Meinung wirst du mich auch nicht abbringen können. =)
Jo, darüber könnte man nachdenken. Aber das wird dann sicher erst mit der neuen Version für Redaxo 5 kommen.RexDude hat geschrieben:Und hier noch was: Wenn dieser "Autoload" Mechanismus bei einem Update versagt, sollte man ihn ggf. halt verbessern oder abändern
Re: XForm Tablemanager PHP Fehler
Da gebe ich dir zu 100% Recht. Aber wie ich schon sagte, wollte ich als XForm Laie halt zu einer schnellen Lösung kommen ohne mich in XForm zu vertiefen oder gar mit der Absicht XForm zu verbessern. Es war also nicht als Pull Request gedacht!Xong hat geschrieben:Zwei Versionen ein und derselben Klasse zu haben und Fehler mit class_exists abzufangen, ist deshalb schlechter Codingstil, weil man bei Änderungen beide Klassen warten muss. Wozu also die Mühe?
Der Rest wird ja per PM geklärt
Re: XForm Tablemanager PHP Fehler
Schon mal erwogen das es evtl. keine Absicht ist das eine Klasse doppelt vorkommt, sondern dummer Zufall? Xform hat ja eben die geschmeidige Möglichkeit eigene Klassen einfach per path dazuzupacken.. eine Kollision weil man zufällig nochmal eine gleichnamige Klasse über irgendein (weiteres/älteres) Plugin o.ä. reinholt sind sicher nicht etwas das in dem Kontext auszuschließen wäre. Unerwartetes, das zu einem fatal führen kann nicht abzufangen ist alles mögliche.. nur sicher kein "schlechter Codingstil". Das dies eigentlich in den Xform core gehörte dürfte ausser Frage stehn..Xong hat geschrieben:Zwei Versionen ein und derselben Klasse zu haben und Fehler mit class_exists abzufangen, ist deshalb schlechter Codingstil, weil man bei Änderungen beide Klassen warten muss.
vg, Jan
Re: XForm Tablemanager PHP Fehler
Jo, ist es. Hab ich aber auch geschrieben:jdlx hat geschrieben:Schon mal erwogen das es evtl. keine Absicht ist das eine Klasse doppelt vorkommt, sondern dummer Zufall?Xong hat geschrieben:Zwei Versionen ein und derselben Klasse zu haben und Fehler mit class_exists abzufangen, ist deshalb schlechter Codingstil, weil man bei Änderungen beide Klassen warten muss.
Xong hat geschrieben:Ich vermute mal nuxx, hat die neue Version einfach drübergebügelt, weshalb die Datei noch im alten Verzeichnis vorhanden war.
Bitte versuch mir nicht weiß zu machen, dass du lieber zwei, womöglich unterschiedliche Klassen hättest, als einen Fatal-Error, der dich darauf hinweist, dass da was nicht stimmt.jdlx hat geschrieben:Unerwartetes, das zu einem fatal führen kann nicht abzufangen ist alles mögliche.. nur sicher kein "schlechter Codingstil".
Auch das hab ich geschrieben. Aber ich finde nicht, dass das unbedingt außer Frage steht. Alles was XForm machen könnte, wäre eine benutzerfreundlichere Fehlerausgabe. Aber auch dann müsste die Formularverarbeitung abgebrochen werden, weil XForm nicht wissen kann, welche Klasse die richtige ist.jdlx hat geschrieben:Das dies eigentlich in den Xform core gehörte dürfte ausser Frage stehn..
Ich habe nur darauf hingewiesen, dass es nicht gut ist, zwei Klassen, die den gleichen Namen haben, über class_exists eine Koexistenz zu gewähren. Und auch wenn ich mich wiederhole: Das ist schlechter Codingstil, weil er zu unerwarteten Fehlern führen kann.
Und damit das auch noch aus der Welt geschafft wird: Ich finde nicht, dass Rudi schlechten Code schreibt. Darf man denn nichtmal mehr auf ´nen Fehler hinweisen?
Re: XForm Tablemanager PHP Fehler
Wo sprach ich davon?Xong hat geschrieben:Bitte versuch mir nicht weiß zu machen, dass du lieber zwei, womöglich unterschiedliche Klassen hättest, ..
Ein fatal error als best practice des error handlings? Wohl kaum.. und schon garnicht im diesem Kontext.Xong hat geschrieben:..als einen Fatal-Error, der dich darauf hinweist, dass da was nicht stimmt.
Eben..jdlx hat geschrieben:Alles was XForm machen könnte, wäre eine benutzerfreundlichere Fehlerausgabe.
Natürlich nicht, das ist ja auch nicht das Problem.jdlx hat geschrieben:Aber auch dann müsste die Formularverarbeitung abgebrochen werden, weil XForm nicht wissen kann, welche Klasse die richtige ist.
S.o.jdlx hat geschrieben:Und auch wenn ich mich wiederhole: Das ist schlechter Codingstil, weil er zu unerwarteten Fehlern führen kann.
vg, Jan
Re: XForm Tablemanager PHP Fehler
Hallo Euch allen,
Jedenfalls ist das die Ursache und ich bedanke mich herzlich für Eure Hilfe.
Und nun geniesst liebe ne Tasse Kaffee, anstatt Euch zu streiten!
Schönen Tag Euch!
Nuxx
Möglich, bin mir nicht ganz sicher. Könnte das Update auch über den Installer gemacht haben.Xong hat geschrieben: Ich vermute mal nuxx, hat die neue Version einfach drübergebügelt, weshalb die Datei noch im alten Verzeichnis vorhanden war.
Jedenfalls ist das die Ursache und ich bedanke mich herzlich für Eure Hilfe.
Und nun geniesst liebe ne Tasse Kaffee, anstatt Euch zu streiten!
Schönen Tag Euch!
Nuxx
Halbwissen ist schonmal besser als Vollpfosten!