Willkommen, Gast ( Anmelden | Registrierung )     [ Hilfe | Mitglieder | Suche ]

 
Reply to this topicStart new topic
> Probleme mit systemweiten PEAR
MaGdev
Beitrag Sat. 26. August 2006, 10:42
Beitrag #1


Newbie
*

Gruppe: Members
Beiträge: 8
Mitglied seit: 15.07.2006
Wohnort: Hamburg
Mitglieds-Nr.: 143



Hi,

wenn ich ein Kontaktformular (PEAR::HTML_QuickForm) in eine Seite einbinde kommt folgender Fehler:

ZITAT
Fatal error: Cannot redeclare _pear_call_destructors() (previously declared in /srv/www/vhosts/apn-solutions.de/httpdocs/backend/external/pear.php.net/PEAR.php:759) in /usr/share/php/PEAR.php on line 796

Ist es möglich, das ihr eine Verwendung der mitgelieferten PEAR-Klassen erzwingt? Das wäre nämlich äusserst unschön... Gibts ne Möglichkeit, das mitglieferte PEAR optional einzubinden?
Da ich gedenke, Sefrengo im professionellen Umfeld mit etwas umfangreicheren Modulen zu verwenden, sollten solche Fehler nicht auftauchen....

Für die Zukunft empfehle ich euch, das ggf. installierte Systemweite PEAR zu verwenden oder statt einer statischen Einbindung des external/pear.php.net-Verzeichnisses eine __autoload-Funktion zu schreiben, die das mitgelieferte PEAR _bei Bedarf_ verwendet.

Grüße,
Marco

Der Beitrag wurde von MaGdev bearbeitet: Sat. 26. August 2006, 10:42


--------------------
Also the longest way always begins with a small step!

http://www.pear-forum.de
Go to the top of the page
 
+Quote Post
alexander
Beitrag Sat. 26. August 2006, 10:50
Beitrag #2


Advanced Member
********

Gruppe: AdvancedMembers
Beiträge: 853
Mitglied seit: 16.06.2006
Wohnort: Wien / Österreich
Mitglieds-Nr.: 2



ZITAT(MaGdev @ Sat. 26. August 2006, 11:42) *
Ist es möglich, das ihr eine Verwendung der mitgelieferten PEAR-Klassen erzwingt? Das wäre nämlich äusserst unschön...


für dich vielleicht ... für andere auf deren server pear nicht ordnungsgemäß oder unvollständig installiert ist (was leider zu hauf vorkommt) ist das die bessere Methode .

ZITAT
Da ich gedenke, Sefrengo im professionellen Umfeld mit etwas umfangreicheren Modulen zu verwenden, sollten solche Fehler nicht auftauchen....

ist kein fehler works as designed ... du kannst es aber gerne deine von dir vorgeschlagene autoload funktion schreiben und hier bereitstellen.


--------------------
SEFRENGO | a free choice ... again!
Go to the top of the page
 
+Quote Post
MaGdev
Beitrag Sat. 26. August 2006, 11:03
Beitrag #3


Newbie
*

Gruppe: Members
Beiträge: 8
Mitglied seit: 15.07.2006
Wohnort: Hamburg
Mitglieds-Nr.: 143



ZITAT
für andere auf deren server pear nicht ordnungsgemäß oder unvollständig installiert ist (was leider zu hauf vorkommt) ist das die bessere Methode .

...there´s no libs beside ours...??! Sorry - aber das halte ich für sehr kurzsichtig, dürfte im CMS-Bereich kaum mehrheitsfähig sein und impliziert schlecht wartbare Anwendungen - zumindest solche, die über die Standard-Funktionalität hinausgehen!

Ich werd mich gerne dransetzen und die __autoload schreiben - und auch gerne hier bereitstellen. Da wird nur keiner was mit anfangen können, da in den Sefrengo-Dateien alle require-Anweisungen, die PEAR betreffen auskommentiert werden müssen. Das ganze wird also ein etwas umfangreicherer Patch und wird auch nur unter PHP5 funktionieren!

Wenn ihr keine Anpassungen in den eigentlichen PEAR-Klassen gemacht habt, könnte ich den Ordner natürlich auch einfach löschen...habt Ihr PEAR angepasst?

Viele Grüße,
Marco


--------------------
Also the longest way always begins with a small step!

http://www.pear-forum.de
Go to the top of the page
 
+Quote Post
alexander
Beitrag Sat. 26. August 2006, 11:10
Beitrag #4


Advanced Member
********

Gruppe: AdvancedMembers
Beiträge: 853
Mitglied seit: 16.06.2006
Wohnort: Wien / Österreich
Mitglieds-Nr.: 2



ZITAT(MaGdev @ Sat. 26. August 2006, 12:03) *
...there´s no libs beside ours...??! Sorry - aber das halte ich für sehr kurzsichtig, dürfte im CMS-Bereich kaum mehrheitsfähig sein und impliziert schlecht wartbare Anwendungen - zumindest solche, die über die Standard-Funktionalität hinausgehen!


bis jetzt gab es mit der in SF implemetierten variante weniger probleme als mit der von dir vorgeschlagenen methode, dass ist leider fakt auch wenn es nicht dem idealbild der programmierung entspricht.

ZITAT
wird auch nur unter PHP5 funktionieren!


dann ist das ein ausschlusskriterium das es in den kern wandert, denn sefrengo muss bis auf weiteres ohne einschränkungen unter php4 funktionieren.

ZITAT
habt Ihr PEAR angepasst?


ja

Der Beitrag wurde von alexander bearbeitet: Sat. 26. August 2006, 11:14


--------------------
SEFRENGO | a free choice ... again!
Go to the top of the page
 
+Quote Post
MaGdev
Beitrag Sat. 26. August 2006, 11:18
Beitrag #5


Newbie
*

Gruppe: Members
Beiträge: 8
Mitglied seit: 15.07.2006
Wohnort: Hamburg
Mitglieds-Nr.: 143



ZITAT
habt Ihr PEAR angepasst?

ZITAT("Alexander")
ja


hmmm - ich werd´ folgendes probieren:
Ich werde Ableitungen von den eigentlichen PEAR-Klassen mit euren Anpassungen schreiben. Diese werde ich dann anstelle des von euch geänderten PEAR einfügen. ...ich hoffe mal, das ihr die PEAR-Instanzierungen nicht über den gesamten Code veteilt habt...

das ganze werde ich dann auch als Patch bereitstellen - sollte sogar unter PHP4 laufen...

So long...
Marco

Der Beitrag wurde von MaGdev bearbeitet: Sat. 26. August 2006, 11:19


--------------------
Also the longest way always begins with a small step!

http://www.pear-forum.de
Go to the top of the page
 
+Quote Post
alexander
Beitrag Sat. 26. August 2006, 11:23
Beitrag #6


Advanced Member
********

Gruppe: AdvancedMembers
Beiträge: 853
Mitglied seit: 16.06.2006
Wohnort: Wien / Österreich
Mitglieds-Nr.: 2



ZITAT(MaGdev @ Sat. 26. August 2006, 12:18) *
hoffe mal, das ihr die PEAR-Instanzierungen nicht über den gesamten Code veteilt habt...


diese frage kann dir wohl nur björn beantworten.


--------------------
SEFRENGO | a free choice ... again!
Go to the top of the page
 
+Quote Post
MaGdev
Beitrag Sat. 26. August 2006, 11:33
Beitrag #7


Newbie
*

Gruppe: Members
Beiträge: 8
Mitglied seit: 15.07.2006
Wohnort: Hamburg
Mitglieds-Nr.: 143



hab jetzt gerade mal die Sefrengo-PEAR-Klassen mit den originalen verglichen und konnte keine Unterschiede finden - ausser zwei zusätzlichen Dateien im Mail-Verzeichnis und dem Template-Ordner im Root - wobei die Template_IT-Dateien auch am originalen Platz vorhanden sind. Die Dateien unterscheiden sich auch nicht von den originalen....

Das lässt mich vermuten: Es gibt wohl doch keine Änderungen...

Hab mich somit für die Administratoren-Lösung entschieden: pear.php.net umbennenen und Symlink auf /usr/share/php.... scheint zu funktionieren, muss aber noch ausführlich testen!

ZITAT
diese frage kann dir wohl nur björn beantworten.


ich bin gespannt...


--------------------
Also the longest way always begins with a small step!

http://www.pear-forum.de
Go to the top of the page
 
+Quote Post
bjoern
Beitrag Sat. 26. August 2006, 13:20
Beitrag #8


Administrator
********

Gruppe: Members
Beiträge: 1.092
Mitglied seit: 16.06.2006
Wohnort: Köln
Mitglieds-Nr.: 1



Die ini_set Funktion zum setzen des inclue_path findest Du unter backend/API/inc.apiLoader.php . Das gillt dann für das ganze System. Auf der sicheren Seite bist Du, wenn Du den inlude_path so setzt, das erst die Sefrengo PEAR inludiert wird und danach die Original PEAR. Auch wenn es Änderungen in der Sefrengo-PEAR geben wird (was ich auf jeden Fall zu vermeiden versuche) hat die SF PEAR immer Prio vor der Original PEAR. Nur wenn es das Package bei SF nicht gibt, bedient sich PHP beim Original.

ZITAT
habt Ihr PEAR angepasst?

Nur in soweit, das da nur die Pakete drinne sind, die wir benutzen. In der nächsten Version kommt noch das PAGER Package dazu.


--------------------
Es wird, es wird...
Go to the top of the page
 
+Quote Post
MaGdev
Beitrag Sat. 26. August 2006, 14:02
Beitrag #9


Newbie
*

Gruppe: Members
Beiträge: 8
Mitglied seit: 15.07.2006
Wohnort: Hamburg
Mitglieds-Nr.: 143



Hallo Bjoern,

danke für die Info.

Die Methode mit dem Symlink (s.o) funktioniert bei mir ganz hervorragend. Ich sehe auch keinen Grund, die (wahrscheinlich) veraltete PEAR.php aus den Sefrengo-Quellen der aktuellen systemweiten PEAR.php vorzuziehen. Ich arbeite nämlich ggf. mit diversen Sefrengo-Installationen auf dem Server und möchte im Falle von Bugfixes oder Sicherheitspatches nicht jede einzelne Installation manuell patchen.

Falls es notwendig sein sollte, die PEAR-Klassen anzupassen, würde ich auf jeden Fall den Weg einer konkreten Ableitung gehen, anstatt die PEAR-Dateien zu patchen - alles mit Hinblick auf eine sauber pflegbare Anwendung.

Über das PEAR-Paket PEAR_PackageUpdate könnte man auch (bei vorhandenem System-PEAR) im Sefrengo-Installer ggf. nicht installierte, aber benötigte PEAR-Klassen dynamisch nachinstallieren - und dann das mitgelieferte PEAR abschalten. Ist kein System-PEAR vorhanden wird halt das mitgelieferte benutzt.

Sorry, das ich so drauf rumreite - ich arbeite seit Jahren mit PEAR und stehe vor der Entscheidung, dauerhaft auf Sefrengo umzusteigen. Dabei sind die Kompatibilität mit externen Bibliotheken und ggf. Frameworks, sowie die Pflegbarkeit des Codes absolute Killer-Kriterien! Ich bin auch gerne bei der Integration behilflich!

Nochmal so als Info: Sefrengo läuft bei mir z.Zt. mit PHP 5.1.6 und (systemweitem) PEAR 1.4.11 unter SuSE 9.3 - Fehler sind bisher keine aufgetaucht!

Viele Grüße,
Marco


--------------------
Also the longest way always begins with a small step!

http://www.pear-forum.de
Go to the top of the page
 
+Quote Post
alexander
Beitrag Sat. 26. August 2006, 14:41
Beitrag #10


Advanced Member
********

Gruppe: AdvancedMembers
Beiträge: 853
Mitglied seit: 16.06.2006
Wohnort: Wien / Österreich
Mitglieds-Nr.: 2



ZITAT(MaGdev @ Sat. 26. August 2006, 12:33) *
Das lässt mich vermuten: Es gibt wohl doch keine Änderungen...


ZITAT(bjoern @ Sat. 26. August 2006, 14:20) *
In der nächsten Version kommt noch das PAGER Package dazu.


und diese packages hast du doch modifiziert björn? genau auf das habe ich mich bezogen.


--------------------
SEFRENGO | a free choice ... again!
Go to the top of the page
 
+Quote Post
MaGdev
Beitrag Sat. 26. August 2006, 15:02
Beitrag #11


Newbie
*

Gruppe: Members
Beiträge: 8
Mitglied seit: 15.07.2006
Wohnort: Hamburg
Mitglieds-Nr.: 143



ZITAT
und diese packages hast du doch modifiziert

Dann würde ich auf jeden fall eine Ableitung schreiben und die modifizierte Version _nicht_ als PEAR-Klasse 'tarnen'!


--------------------
Also the longest way always begins with a small step!

http://www.pear-forum.de
Go to the top of the page
 
+Quote Post
bjoern
Beitrag Sun. 27. August 2006, 12:03
Beitrag #12


Administrator
********

Gruppe: Members
Beiträge: 1.092
Mitglied seit: 16.06.2006
Wohnort: Köln
Mitglieds-Nr.: 1



Die Modifikation ist so umbedeutend, das sie wieder vor die Tür gesetzt habe. Es ging darum, das beim Pager der "aktive Link" nicht klickbar war. Ich bin auch der Meinung das Updatefähigkeit das Killerkriterium ist. Bei DeDi ist das gesamte PEAR gepacht, so dass man weder vor noch zurück kommt. Das war eines der ersten Dinge, die ich bei Sefrengo geändert hatte.

Auf die Integrationshilfe komme ich gerne noch drauf zurück. smile.gif


--------------------
Es wird, es wird...
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 Besucher lesen dieses Thema (Gäste: 1 | Anonyme Besucher: 0)
0 Mitglieder:

 



RSS Vereinfachte Darstellung Aktuelles Datum: 29.3.24 - 05:54

Sefrengo ist ein eingetragenes Markenzeichen und urheberrechtlich geschützt.
Copyright 2009 Design & Daten, Alle Rechte vorbehalten.