## Bitte hier die Versionen kommagetrennt eintragen, mit denen getestet wurde. [[Vorlage(Getestet, bionic, 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 18.10 ist noch Zend Framework 1 in den Paketquellen (universe) enthalten und hat dort den Paketnamen '''zend-framework'''. Ebenso sind noch vereinzelte Komponenten von Zend Framework 2 (universe) 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. Erst ab Ubuntu 19.04 wird diese Voraussetzung erfüllt. Unter Ubuntu 18.04 (Composerversion: 1.6) muss daher zunächst eine manuelle Installation von Composer erfolgen. Ein Anleitung dazu gibt es hier in der Wiki [:Composer/#Manuelle-Installation:im Composer Artikel]. 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