Archive for the ‘PHP7’ tag
PHP 7: Migration eines Projekts
Noch knapp einen Monat warten, dann erscheint das Christkind PHP7! Was gibt es also schöneres als sich damit zu beschäftigen und erste Erfahrungen zu sammeln?
Im Januar habe ich mir speziell den Arbeitsspeicherverbrauch von PHP 7 angeschaut, die ChangeLogs verinnerlicht, es kompiliert und ein paar Testzeilen ausgeführt. Das lief schon sehr gut, aber um größere Projekte laufen zu lassen mangelte es noch an einigen Extensions. Außerdem wollte ich ein Zend Framework 1 Projekt testen, und ZF1 war zu dem Zeitpunkt noch nicht PHP 7-kompatibel.
Doch das hat sich geändert. ZF1 ist seit Mai 2015 mit Version 1.12.12 PHP 7 kompatibel, und auch die von mir benötigten Extensions wurden umgebaut, sodass es nun PHP 7-kompatible Branches vieler Extensions auf Github gibt.
Die Vorgehendweise: Neueste PHP 7 Version herunterladen, kompilieren, Extensions herunterladen, kompilieren, und dann SPASS HABEN!
Also los! PHP 7 RC5 kompilieren
Den aktuellen Stand von PHP 7 (pre-alpha) selbst kompilieren und testen
PHP 7 wird kommen, nach aktuellem Plan wird es Mitte Oktober 2015 soweit sein. Ich persönlich bin da noch etwas skeptisch ob das zeitlich klappen kann, aber ich hoffe dass es noch 2015 sein wird.
PHP 7 wird sehr große interne Änderungen an der Zend Engine mit sich bringen, die Performance wird ungefähr verdoppelt und dann auf dem Niveau von HHVM sein. Aber auch der Arbeitsspeicherbedarf wird radikal reduziert. Genau um letzteres zu prüfen habe ich den aktuellen PHP 7-Stand selbst kompiliert, und möchte hier zeigen dass es sehr einfach geht und ihr das auch machen solltet!
Wir werden PHP 7 aka phpng direkt aus dem GIT-Repository holen und kompilieren, folgende Schritte sind dazu nötig:
cd /tmp/ git clone https://github.com/php/php-src.git cd php-src ./buildconf ./configure --prefix=/usr/local/phpng --with-zlib --with-config-file-path=/usr/local/phpng/etc --enable-mbstring --with-mysql --with-mysqli --with-pdo-mysql --enable-zip --with-imap --with-kerberos --with-imap-ssl --with-openssl --with-jpeg-dir --with-gd --with-gettext --with-freetype-dir --enable-ftp --with-pspell --with-curl make make test
Falls es Fehler beim configure bzgl. re2c oder bison gibt, unter Ubuntu installiert man diese folgendermaßen:
sudo apt-get install bison sudo apt-get install re2c
Falls pspell nicht gefunden werden kann:
configure: error: Cannot find pspell
sudo apt-get install libpspell-dev
Nach dem „make test“ ist PHP 7 auf Kommandozeilenebene nutzbar:
$ sapi/cli/php -v PHP 7.0.0-dev (cli) (built: Jan 20 2015 23:13:58) Copyright (c) 1997-2015 The PHP Group Zend Engine v3.0.0-dev, Copyright (c) 1998-2015 Zend Technologies
Wer PHP danach richtig installieren möchte macht noch ein „sudo make install“, dann wird PHP im oben definierten Prefix-Verzeichnis installiert.
Ich bin mir sehr sicher dass ich Mitte des Jahres, wenn es die ersten Alpha- und Beta-Versionen gibt, ausgiebig Applikationen testen werde, damit möglichst wenige Bugs in PHP 7 drin sind, und es hoffentlich bereits Ende 2015 auf Produktionsmaschinen einsetzbar sein wird. Ich sage schonmal voraus dass ich dann breit grinsend vor den Maschinen hocken werde und die neuen schnellen Webseiten und Scripte bewundern werde 😉
Im nächsten Blogartikel geht es um meinen kleinen Vergleich des Memory-Verbrauchs.