Installation Contenido & PHP 5.3

Gesperrt
Oldperl
Beiträge: 4254
Registriert: Do 30. Jun 2005, 22:56
Wohnort: Eltmann, Unterfranken, Bayern
Kontaktdaten:

Installation Contenido & PHP 5.3

Beitrag von Oldperl » Do 17. Sep 2009, 14:24

Soderle, ich hab mir da mal ein paar Gedanken, na nicht nur Gedanken, zu den Problemen rund um PHP 5.3 und Contenido gemacht.
Wer nicht so auf dem Laufenden ist lese sich den folgenden Thread durch
:arrow: http://forum.contenido.org/viewtopic.php?f=63&t=24032

EDIT 05.04.2010:
Da es weiterhin Anfragen zu Contenido unter PHP >= 5.3 gibt, hänge ich hier mal den momentanen Stand der Änderungen zur conlib an. Dies ist eine Beta und ich empfehle daher nicht den Einsatz in produktiven Umgebungen.
conlib_beta.zip
Beta für die conlib-Dateien.
Der Einsatz in Produktivumgebungen wird nicht empfohlen.
(64.63 KiB) 412-mal heruntergeladen
Für Rückmeldungen sowohl von weiteren Bugs, aber auch wenn alles funktioniert, wären wir sehr dankbar! :-)

Bevor ihr nun eine Installation von Contenido mit dieser PHP-Version macht, solltet ihr folgende Änderungen durchführen, die zwar nicht alle Probleme beseitigen, aber zumindest dafür sorgen, das ihr mit Contenido unter PHP 5.3 arbeiten könnt. Solltet Ihr danach weitere Fehlermeldungen in Contenido oder im Errorlog erhalten, so bitte ich diese hier zu Posten, damit das gefixt werden kann.

1. E_DEPRECATED
PHP 5.3 führt neue Errorlevel ein (E_DEPRECATED und E_USER_DEPRECATED). Dadurch, und durch als deprecated gekennzeichnete PHP-Funktionen (z.B. alle ereg-Funktionen), kommt es zu einem Wust an Fehlermeldungen in Contenido. Hier wäre sicherlich eine grundsätzliche Abschaltung dieser Meldungen während einer Übergangsphase sinnvoller gewesen (in der php.ini).
Da ein Austausch aller als deprecated gekennzeichneten Funktionen sehr aufwendig ist und daher gewiss noch einige Zeit in Anspruch nehmen wird, habe ich vorerst eine, auch abwärtskompatible, Lösung durch Änderung der Fehleranzeige in der contenido/includes/config.misc.php für euch.

Bitte in dieser Datei folgende Zeilen

Code: Alles auswählen

/* Report all errors except warnings */
error_reporting (E_ALL ^E_NOTICE);
ersetzen durch

Code: Alles auswählen

/* Report all errors except warnings */
/* fix for E_DEPRECATED using PHP >= 5.3 (Author: O. Pinke)*/
if (version_compare(PHP_VERSION, '5.3.0', '<')) {
    error_reporting (E_ALL ^E_NOTICE);
} else {
    error_reporting (E_ALL ^E_NOTICE ^E_DEPRECATED);
}
Dies kann man auch bereits vor einem PHP-Upgrade machen, durch die Abfrage der PHP-Version greift die Änderung erst bei einem Upgrade.

2. PHPLib
Das die PHPLib schon etwas betagt ist, ist hinlänglich bekannt. Sicherlich wäre ein modernerer Abstraktionslayer wünschenswert, jedoch wäre auch das mit einem unverhältnismäßigem Aufwand verbunden, da doch sehr oft im Core ganz speziell auf die PHPLib zugegriffen wird und nicht nur eine neue DB-Abstraktion dies berücksichtigen müßte, oder man alle DB-Abfragen im Core prüfen und anpassen müßte.
Daher habe ich (zumindest) begonnen, Änderungen an der PHPLib einzuarbeiten, um diese so nach und nach fit für PHP >= 5.3 zu machen.
Bisher geänderte Dateien habe ich als conlib.zip angehängt. Bitte diese einfach ins Verzeichnis conlib kopieren.


Weiterhin habe ich eine Datei php53_ereg_todo.txt mit ins Archiv gepackt, die eine Liste aller von mir gefundenen Stellen der ereg-Funktionen beinhaltet. Hier könnte ich ein bisschen Unterstützung gebrauchen beim "Übersetzen" in preg-Funktionen.
Irgendwo ein RegEx-Profi da draussen? :wink:

Ok, soweit erst mal, bitte alle Infos rund um Contenido und PHP >= 5.3 hier in diesem Thread sammeln, danke. :-)

Gruß aus Franken

Ortwin

Quellen:
Deprecated features in PHP 5.3.x (php.net)
Dateianhänge
conlib.zip
Austauschdateien für Contenido PHPLib
(17.97 KiB) 459-mal heruntergeladen
Zuletzt geändert von Oldperl am Mo 5. Apr 2010, 11:04, insgesamt 2-mal geändert.
Grund: aktuelle Beta-Dateien angehängt.
ConLite 2.1, alternatives und stabiles Update von Contenido 4.8.x unter PHP 7.x - Download und Repo auf Gitport.de
phpBO Search Advanced - das Suchwort-Plugin für CONTENIDO 4.9
Mein Entwickler-Blog

thepoet
Beiträge: 55
Registriert: Mo 7. Jul 2003, 11:39
Wohnort: Vilsbiburg
Kontaktdaten:

Re: Installation Contenido & PHP 5.3

Beitrag von thepoet » Do 17. Sep 2009, 15:05

Ich habe mir grade mal die ereg(i)-Liste durchgeschaut, und au den ersten Blick sollte es damit getan sein, den Aufruf durch preg_match zu ersetzen, die Patterns in Schrägstriche zu packen und für eregi() noch den 'i'-Modifier anzuhängen. U.a. in der include.rights_menu.php hast du ein paar False Positives (preg_match( '/ereg/i', "setWhereGroup") === TRUE). Ein grep mit '\beregi?[ _(]' wär genauer. Ich habe das mal über eine jungfräuliche 4.8.12er drüberlaufen lassen, da bleiben noch 100 Treffer übrig:
eregi.zip
(2.17 KiB) 328-mal heruntergeladen

Dodger77
Beiträge: 3626
Registriert: Di 12. Okt 2004, 20:00
Wohnort: Voerde (Niederrhein)
Kontaktdaten:

Re: Installation Contenido & PHP 5.3

Beitrag von Dodger77 » Do 17. Sep 2009, 15:18

Ein paar der Fundstellen könnten auch statt der preg- durch Stringfunktionen (str_replace(), str_ireplace(), strpos(), stripos()) ersetzt werden. Das sollte performanter sein.

thepoet
Beiträge: 55
Registriert: Mo 7. Jul 2003, 11:39
Wohnort: Vilsbiburg
Kontaktdaten:

Re: Installation Contenido & PHP 5.3

Beitrag von thepoet » Do 17. Sep 2009, 16:16

Jupp, da sind mir ein paar untergekommen. Ich hab mal ganz quick&dirty ein Perl Skript die Änderungen machen lassen, vielleicht mag mal jemand drüberschaun. Ein paar Fundstellen (class.datatype.datetime.php und conlib/session.inc) sind noch nicht drin.
eregi_fixed.zip
(2.82 KiB) 361-mal heruntergeladen

McHubi
Beiträge: 1209
Registriert: Do 18. Nov 2004, 23:06
Wohnort: Mettmann
Kontaktdaten:

Re: Installation Contenido & PHP 5.3

Beitrag von McHubi » Mi 11. Nov 2009, 09:06

Ähm...

...habe jetzt die Änderungen von Oldperl durchgeführt. - Dumme Frage zum Perl Skript: wie funzt das denn? - Duckundweg...
seamless-design.de
"Geht nicht!" wohnt in der "Will nicht!"-Strasse.

Das Handbuch zur Version 4.10: CONTENIDO für Einsteiger (4.10)

Das Handbuch zur Version 4.9: CONTENIDO für Einsteiger (4.9)

ehenk
Beiträge: 14
Registriert: Mi 6. Sep 2006, 15:19
Kontaktdaten:

Re: Installation Contenido & PHP 5.3

Beitrag von ehenk » Mi 11. Nov 2009, 15:08

wow!

Vielen Dank!

Ich habe mich schon dusselig gesucht :roll:

Jetzt kann ich weitermachen!

Viele Grüße ehenk!!

Oldperl
Beiträge: 4254
Registriert: Do 30. Jun 2005, 22:56
Wohnort: Eltmann, Unterfranken, Bayern
Kontaktdaten:

Re: Installation Contenido & PHP 5.3

Beitrag von Oldperl » Mo 5. Apr 2010, 11:08

Ich habe mal aktuelle Beta-Dateien der conlib im 1. Post angehängt.
Bitte nicht in produktiven Umgebungen einsetzen!
Auch übernehmen wir keinen Support für diese Version der conlib und der Einsatz erfolgt auf eigene Gefahr, daher bitte immer an Backup der DB denken.

Gruß aus Franken

Ortwin
ConLite 2.1, alternatives und stabiles Update von Contenido 4.8.x unter PHP 7.x - Download und Repo auf Gitport.de
phpBO Search Advanced - das Suchwort-Plugin für CONTENIDO 4.9
Mein Entwickler-Blog

Herogarma
Beiträge: 15
Registriert: Mi 6. Jan 2010, 03:14
Wohnort: Krefeld
Kontaktdaten:

Re: Installation Contenido & PHP 5.3

Beitrag von Herogarma » Mi 2. Jun 2010, 23:59

Gibt es irgendwelche Bedenken, einfach auf PHP 5.2 zu downgraden, bis Contenido sich mit 5.3 angefreundet hat?

Oldperl
Beiträge: 4254
Registriert: Do 30. Jun 2005, 22:56
Wohnort: Eltmann, Unterfranken, Bayern
Kontaktdaten:

Re: Installation Contenido & PHP 5.3

Beitrag von Oldperl » Do 3. Jun 2010, 10:54

Hallo Herogarma,

grundsätzlich gibt es da keinerlei Bedenken, Contenido läuft unter PHP 5.2.
Alternativ kannst du ja auch einmal die 4.8.13 RC2 testen. :arrow: http://forum.contenido.org/viewtopic.php?f=25&p=144654

Gruß aus Franken

Ortwin
ConLite 2.1, alternatives und stabiles Update von Contenido 4.8.x unter PHP 7.x - Download und Repo auf Gitport.de
phpBO Search Advanced - das Suchwort-Plugin für CONTENIDO 4.9
Mein Entwickler-Blog

Herogarma
Beiträge: 15
Registriert: Mi 6. Jan 2010, 03:14
Wohnort: Krefeld
Kontaktdaten:

Re: Installation Contenido & PHP 5.3

Beitrag von Herogarma » Do 3. Jun 2010, 11:01

Das ist für mich leider keine Alternative, weil ich lokal dieses Problem SUSE 11.2 / PHP 5.3 habe und hier die Applikationen entwickle. Das schiebe ich dann auf die Webserver der Kunden, auf denen in der Regel 5.2 läuft.

Oldperl
Beiträge: 4254
Registriert: Do 30. Jun 2005, 22:56
Wohnort: Eltmann, Unterfranken, Bayern
Kontaktdaten:

Re: Installation Contenido & PHP 5.3

Beitrag von Oldperl » So 29. Aug 2010, 15:51

Mit dem Release der Version 4.8.13 sollte sich dieser Thread vorerst erledigt haben.

Daher mach ich hier mal dicht, lass den Thread aber noch ein paar Tage gepinnt als Info.

Gruß aus Franken

Ortwin
ConLite 2.1, alternatives und stabiles Update von Contenido 4.8.x unter PHP 7.x - Download und Repo auf Gitport.de
phpBO Search Advanced - das Suchwort-Plugin für CONTENIDO 4.9
Mein Entwickler-Blog

Gesperrt