## Bitte hier die Versionen kommagetrennt eintragen, mit denen getestet wurde. [[Vorlage(Getestet, focal)]] ## Bitte hier alle wesentlichen Wikiartikel auflisten, deren Kenntnis vorausgesetzt wird. {{{#!vorlage Wissen [:PHP:] [:Composer:PHP Pakte mit Composer verwalten] [:Laminas:] [:Terminal: Ein Terminal öffnen] }}} ## Eine vollständige Befehlsübersicht befindet sich im Wiki unter http://wiki.ubuntuusers.de/Wiki/Syntax [[Inhaltsverzeichnis(2)]] ## Artikeltext Das Zend Framework (ZF) gab es seit 2005 und wurde gesponsert von der Firma Zend, die auch die Zend Engine, den Compiler von [:PHP:], maßgeblich mit entwickelt. 2019 wurde entschieden, dass das Framework nicht mehr von der Firma Zend betreut wird. Vielmehr soll das Sponsoring und Weiterentwicklung jetzt unter dem Dach der [https://www.linuxfoundation.org/ Linux Foundation] {en} herstellerneutral und weiterhin als Open Source ([:Lizenzen/#BSD-Lizenz:New BSD License]) geschehen. Im Zuge dessen gab es auch eine Namensänderung. Das Framework heißt jetzt seit Anfang 2020 Laminas.[3] Außer der Namensänderung gab es aus der Sicht eines PHP-Entwicklers bisher keine großartigen Veränderungen, so dass jemand, der mit ZF vertraut ist, sich mühelos in Laminas zurecht finden kann. Zwar gibt es die alten ZF-Pakete noch auf Github. Dies sind jedoch archiviert und sollten daher tunlichst nicht mehr verwendet werden. Eine [wikipedia:Migration_(Informationstechnik):Migration] bestehender ZF-Installationen auf Laminas ist die empfohlene Vorgehensweise. Die Umstellung auf Laminas ist jedoch erstaunlich einfach und schnell zu bewerkstelligen. {{{#!vorlage Warnung Bis einschließlich Ubuntu 22.10 sind noch vereinzelte Komponenten von Zend Framework aus den Ubuntu Paketquellen installierbar ('''php-zend-*'''). Alle dies Pakete werden nicht mehr mit Updates versorgt und sollten auf keinen Fall mehr genutzt werden. }}} = Vorbereitung = == Richtige Composer-Version == Am einfachsten geht die Migration mithilfe von Composer.[2] Es wird die Composerversion 1.7.0 oder höher benötigt, was seit Ubuntu 19.04 erfüllt wird. Eine Anleitung zum manuellen Installieren der neusten Version von Composer gibt es unter [:Composer/#Manuelle-Installation:]. Die installierte Version lässt sich so ermitteln: {{{#!vorlage Befehl composer --version }}} == Laminas Migrationstool installieren == === Systemweit === Systemweit, genauer gesagt für ein Ubuntu-Benutzerkonto, sind folgende Schritte (ohne Rootrechte) erforderlich: {{{#!vorlage Befehl composer global require laminas/laminas-migration }}} Damit das Tool ohne Pfadangabe genutzt werden kann, kann man es der Datei '''~/.profile''' hinzufügen. Dazu diese Zeile in einem Editor hinzufügen: {{{#!code bash export PATH="$HOME/.composer/vendor/laminas/laminas-migration/bin:$PATH" }}} === Manuell === Natürlich kann man das Tool auch mit dem absoluten Pfad aufrufen, wenn man eine sytemweite Installation nicht wünscht. Dazu laminas-migration in einem beliebigen Verzeichnis folgendermaßen installieren: {{{#!vorlage Befehl composer require laminas/laminas-migration }}} = Ein Projekt umstellen = {{{#!vorlage Warnung Bevor ein ZF-Projekt auf Laminas umgestellt wird, sollte eine vollständige Sicherheitskopie aller Dateien im Projektverzeichnis in ein separates Verzeichnis erstellt werden, um Datenverlust zu vermeiden. }}} Ins Hauptverzeichnis des ZF-Projekts wechseln und das Tool folgendermaßen starten: {{{#!vorlage Befehl laminas-migration migrate }}} Beziehungsweise bei einer nicht-systemweiten Installation: {{{#!vorlage Befehl /PFAD-ZUM-LAMINAS-MIGRATION-TOOL/vendor/bin/laminas-migration migrate }}} Für ein ZF-Projekt, das der Standardstruktur entspricht, also mit den Unterverzeichnissen '''module/''', '''vendor/''', '''public/''' etc, sollte dies problemlos funktionieren. Bei einer abweichenden Struktur sollte man gegebenenfalls Verzeichnisse, die außer der Reihe existieren, von der Migration ausschließen. Angenommen, man hat im Wurzelverzeichnis des ZF-Projektes ein Verzeichnis namens '''meine-lib/''' mit eigenen PHP-Bibliotheken, so kann man dieses wie folgt von der Migration ausschließen: {{{#!vorlage Befehl laminas-migration migrate --exclude meine-lib }}} Nun noch die neuen Abhängigkeiten installieren: {{{#!vorlage Befehl composer install }}} = Links = * [https://getlaminas.org/blog/2019-12-31-out-with-the-old-in-with-the-new.html Projektseite] * [https://getlaminas.org/blog/2019-12-31-out-with-the-old-in-with-the-new.html Migrationsanleitung] {en} im Laminas-Blog * [github:laminas/laminas-migration:Migrationsanleitung] {en} auf Github * [https://entwickler.de/online/php/zend-framework-zu-laminas-579914479.html Vom Zend Framework zu Laminas] {de} - Hintergrundinformationen auf entwickler.de #tag: PHP, Composer, Webanwendung, Framework, Internet, Installation, Server, Programmierung