[Kobv-opus-tester] OPUS 4.7.1 und PHP 7.1

Jens Schwidder schwidder at zib.de
Mo Nov 28 13:57:13 CET 2022


Hallo Alle,

hier der Zwischenstand zur Kompatibilität mit neueren PHP Versionen.
Ich bin dabei OPUS 4 mit Hilfe der "zf1-future"-Library kompatibel zu 
PHP 8.1 zu machen. Dafür sind doch viele kleine Anpassungen im OPUS 4 
Code notwendig. Für die meisten Packages, einschließlich dem Framework, 
habe ich mittlerweile eine Code-Basis (Branch: 4.7.2-zf1f), die mit PHP 
7.1, 7.4 und 8.1 kompatibel ist. Für diesen Branch wird auf Github mit 
allen drei Versionen automatisch getestet.

Wir haben etwa 6700 Unit Tests, aber bei diesem Wechsel sollte auch im 
Betrieb sorgfältig geprüft werden, ob alles den Erwartungen entspricht. 
Aufgrund der Änderungen, die mit PHP 8 kommen, kann es durchaus Probleme 
geben, die nicht durch die Unit Tests abgedeckt sind.

Es gibt nun ein Projekt mit den Aufgaben für den Umstieg zu PHP 8. Die 
Liste ist noch nicht vollständig.

https://github.com/orgs/OPUS4/projects/40/views/1

Für die Suche scheint es nicht möglich zu sein, den Code so anzupassen, 
dass er mit PHP 7 und 8 läuft. Dort muss auf eine neue Version der 
Solr-Client Library "Solarium" umgestiegen werden, die Änderungen in der 
API bringt. Für den Übergang werden für die Suche also zwei Versionen 
gepflegt werden müssen.

Wenn die Suche mit PHP 8 funktioniert, können die restlichen Arbeiten an 
der Application vorgenommen werden. Der Plan ist jetzt, die nächste 
Version, OPUS 4.7.2, kompatibel mit PHP 7.1 und 8.1 zu machen und somit 
den Umstieg so einfach wie möglich zu gestalten. Der PHP 7 Support wird 
dann später wegfallen. OPUS 4.7.2 soll spätestens im Januar freigegeben 
werden.

Viele Grüße

Jens Schwidder



On 10.11.22 08:17, Jens Schwidder wrote:
> Sehr geehrter Herr Heitmann,
> 
> vielen Dank, das war mir bisher nicht bewusst und klingt sehr spannend. 
> Ich werde einen Branch mit den Anpassungen anlegen, für die Application 
> und alle anderen Packages, die von ZF1 abhängig sind, um sämtliche Unit 
> Tests laufen lassen zu können. Ich werde versuchen das für PHP 7.4 und 
> PHP 8 zu machen, da ja der 7.4 Support auch schon diesen Monat ausläuft.
> Ich werde das erst einmal mit dem Code für 4.7.2 testen. Diese Version 
> soll noch in diesem Jahr veröffentlicht werden.
> 
> Vielen Dank und schöne Grüße
> 
> Jens Schwidder
> 
> 
> 
> On 09.11.22 16:12, Sven Heitmann wrote:
>> Sehr geehrter Herr Schmidt,
>>
>> wir haben festgestellt, dass mindestens die Versionen OPUS 4.7.0.8 und 
>> 4.7.1.1 auf einem aktuellen Debian 11 mit PHP 7.4 lauffähig sind, 
>> sofern man das Projekt "zf1-future" 
>> (https://github.com/Shardj/zf1-future) nutzt um das Zend Framework 1 
>> kompatibel mit neueren PHP-Versionen zu machen.
>> Dazu haben wir die composer.json leicht modifziert:
>> -  "php": ">=7.0 <7.2",
>> + "php": ">=7.0",
>> -  "zendframework/zendframework1": "1.12.*",
>> + "shardj/zf1-future": "1.20",
>>
>> Mit dieser Anpassung lief das System direkt. Bei manuellen Tests haben 
>> wir festgestellt, dass es an einer Stelle des Admin-Bereichs (Handling 
>> von Dateien) Probleme gibt und die Anwendung keine Seite 
>> zurückliefert. Eine Fehlermeldung im Webserver-Log hat aber direkt zur 
>> richtigen Stelle geführt. Es musste eine Datei 
>> (./opus4/library/Application/Form/Element/FileLink.php) von OPUS an 
>> einer Stelle (Parameter der Methode isValid()) angepasst werden:
>>      /**
>>       * Validierung ist erfolgreich, wenn Opus_File mit ID existiert.
>>       *
>>       * Wenn die ID nicht existiert wird in setValue eine 
>> Application_Exception geworfen.
>>       *
>>       * @param mixed $value
>>       * @return bool
>>       */
>> /* UB KL START */
>> //    public function isValid($value)
>>      public function isValid($value, $context = NULL)
>>      {
>> /* UB KL ENDE */
>>          $this->setValue($value);
>>          $file = $this->getValue();
>>
>>          if ($file instanceof Opus_File) {
>>              return true;
>>          } else {
>>              return false;
>>          }
>>      }
>> }
>>
>> Mehr Modifikationen waren nicht notwendig.
>>
>>
>> Viele Grüße
>> Sven Heitmann
>>
>> -- 
>> Regionales Hochschulrechenzentrum Kaiserslautern
>> TU Kaiserslautern
>> Abteilung Infrastruktur Softwaresysteme
>> Sven Heitmann
>>
>> Paul-Ehrlich-Straße
>> Gebäude 32, Raum 324
>> D-67663 Kaiserslautern
>>
>> Tel: +49 631 205 2813
>> Fax: +49 631 205 2355
>> E-Mail: heitmann at rhrk.uni-kl.de
>>
>> -----Original Message-----
>> From: Kobv-opus-tester <kobv-opus-tester-bounces at zib.de> On Behalf Of 
>> Markus Schmidt
>> Sent: Monday, November 7, 2022 2:28 PM
>> To: Opus-Tester <kobv-opus-tester at zib.de>
>> Subject: [Kobv-opus-tester] OPUS 4.7.1 und PHP 7.1
>>
>> Liebe OPUS Entwickler,
>>
>> wir planen aktuell den Umstieg/Update auf OPUS 4.7.1. Lt. 
>> Dokumentation ist die Verwendung von PHP7.1 aufgrund des Zend 
>> Framworks zwingend Voraussetzung. Leider hat diese PHP Version ja auch 
>> einige Sicherheitsprobleme. Gibt es Erfahrungen bzgl. OPUS 4.7.1 mit 
>> PHP8.0 oder Workarounds um PHP7.1 abzusichern?
>>
>>
>> Besten Dank!
>>
>> -- Mit freundlichen Grüßen, Markus Schmidt IT-Dienste Tel: 0234 /
>> 32-22792 Universitätsbibliothek Ruhr-Universität Bochum Universitätsstr.
>> 150 44801 Bochum
>>
>>
>> -- 
>> Kobv-opus-tester mailing list
>> Kobv-opus-tester at zib.de
>> https://listserv.zib.de/mailman/listinfo/kobv-opus-tester
> 

-- 
==============================================================
Jens Schwidder
Kooperativer Bibliotheksverbund Berlin-Brandenburg (KOBV)
c/o Konrad-Zuse-Zentrum für Informationstechnik Berlin (ZIB)
Takustr. 7, D-14195 Berlin
Telefon: (030) 841 85 - 308
Telefax: (030) 841 85 - 269
  E-Mail: schwidder at zib.de
     WWW: http://www.kobv.de
==============================================================



Mehr Informationen über die Mailingliste Kobv-opus-tester