Cookies op Tweakers

Tweakers maakt gebruik van cookies, onder andere om de website te analyseren, het gebruiksgemak te vergroten en advertenties te tonen. Door gebruik te maken van deze website, of door op 'Ga verder' te klikken, geef je toestemming voor het gebruik van cookies. Wil je meer informatie over cookies en hoe ze worden gebruikt, bekijk dan ons cookiebeleid.

Meer informatie

Software-update: PHP 7.3.2 / 7.2.15

PHP noemt zichzelf een 'hypertext pre-processor' en wordt voornamelijk toegepast om dynamische content op webpagina's te genereren. Vaak gebeurt dit dan in combinatie met een databaseprogramma, zoals MySQL, Firebird, MongoDB, PostgreSQL of SQLite. Maar je kunt PHP ook voor andere zaken inzetten, zoals scripten op de commandline. De ontwikkelaars hebben versies 7.3.2 en 7.2.15 uitgebracht met de volgende aankondigingen:

PHP 7.3.2 Released

The PHP development team announces the immediate availability of PHP 7.3.2. This is a bugfix release, with several bug fixes included. All PHP 7.3 users are encouraged to upgrade to this version.
  • Core:
    • Fixed bug #77369 (memcpy with negative length via crafted DNS response).
    • Fixed bug #77387 (Recursion detection broken when printing GLOBALS).
    • Fixed bug #77376 ("undefined function" message no longer includes namespace).
    • Fixed bug #77357 (base64_encode / base64_decode doest not work on nested VM).
    • Fixed bug #77339 (__callStatic may get incorrect arguments).
    • Fixed bug #77317 (__DIR__, __FILE__, realpath() reveal physical path for subst virtual drive).
    • Fixed bug #77263 (Segfault when using 2 RecursiveFilterIterator).
    • Fixed bug #77447 (PHP 7.3 built with ASAN crashes in zend_cpu_supports_avx2).
    • Fixed bug #77484 (Zend engine crashes when calling realpath in invalid working dir).
    Curl:
    • Fixed bug #76675 (Segfault with H2 server push).
    Fileinfo:
    • Fixed bug #77346 (webm files incorrectly detected as application/octet-stream).
    FPM:
    • Fixed bug #77430 (php-fpm crashes with Main process exited, code=dumped, status=11/SEGV).
    GD:
    • Fixed bug #73281 (imagescale(…, IMG_BILINEAR_FIXED) can cause black border).
    • Fixed bug #73614 (gdImageFilledArc() doesn't properly draw pies).
    • Fixed bug #77272 (imagescale() may return image resource on failure).
    • Fixed bug #77391 (1bpp BMPs may fail to be loaded).
    • Fixed bug #77479 (imagewbmp() segfaults with very large images).
    ldap:
    • Fixed bug #77440 (ldap_bind using ldaps or ldap_start_tls()=exception in libcrypto-1_1-x64.dll).
    Mbstring:
    • Fixed bug #77428 (mb_ereg_replace() doesn't replace a substitution variable).
    • Fixed bug #77454 (mb_scrub() silently truncates after a null byte).
    MySQLnd:
    • Fixed bug #77308 (Unbuffered queries memory leak).
    • Fixed bug #75684 (In mysqlnd_ext_plugin.h the plugin methods family has no external visibility).
    Opcache:
    • Fixed bug #77266 (Assertion failed in dce_live_ranges).
    • Fixed bug #77257 (value of variable assigned in a switch() construct gets lost).
    • Fixed bug #77434 (php-fpm workers are segfaulting in zend_gc_addre).
    • Fixed bug #77361 (configure fails on 64-bit AIX when opcache enabled).
    • Fixed bug #77287 (Opcache literal compaction is incompatible with EXT opcodes).
    PCRE:
    • Fixed bug #77338 (get_browser with empty string).
    PDO:
    • Fixed bug #77273 (array_walk_recursive corrupts value types leading to PDO failure).
    PDO MySQL:
    • Fixed bug #77289 (PDO MySQL segfaults with persistent connection).
    SOAP:
    • Fixed bug #77410 (Segmentation Fault when executing method with an empty parameter).
    Sockets:
    • Fixed bug #76839 (socket_recvfrom may return an invalid 'from' address on MacOS).
    SPL:
    • Fixed bug #77298 (segfault occurs when add property to unserialized empty ArrayObject).
    Standard:
    • Fixed bug #77395 (segfault about array_multisort).
    • Fixed bug #77439 (parse_str segfaults when inserting item into existing array).
PHP 7.2.15 Released

The PHP development team announces the immediate availability of PHP 7.2.15. This is a bugfix release. All PHP 7.2 users are encouraged to upgrade to this version.
  • Core:
    • Fixed bug #77339 (__callStatic may get incorrect arguments).
    • Fixed bug #77494 (Disabling class causes segfault on member access).
    • Fixed bug #77530 (PHP crashes when parsing `(2)::class`).
  • Curl:
    • Fixed bug #76675 (Segfault with H2 server push).
  • GD:
    • Fixed bug #73281 (imagescale(…, IMG_BILINEAR_FIXED) can cause black border).
    • Fixed bug #73614 (gdImageFilledArc() doesn't properly draw pies).
    • Fixed bug #77272 (imagescale() may return image resource on failure).
    • Fixed bug #77391 (1bpp BMPs may fail to be loaded).
    • Fixed bug #77479 (imagewbmp() segfaults with very large images).
  • ldap:
    • Fixed bug #77440 (ldap_bind using ldaps or ldap_start_tls()=exception in libcrypto-1_1-x64.dll).
  • Mbstring:
    • Fixed bug #77454 (mb_scrub() silently truncates after a null byte).
  • MySQLnd:
    • Fixed bug #75684 (In mysqlnd_ext_plugin.h the plugin methods family has no external visibility).
  • Opcache:
    • Fixed bug #77361 (configure fails on 64-bit AIX when opcache enabled).
  • OpenSSL:
    • Fixed bug #77390 (feof might hang on TLS streams in case of fragmented TLS records).
  • PDO:
    • Fixed bug #77273 (array_walk_recursive corrupts value types leading to PDO failure).
  • Sockets:
    • Fixed bug #76839 (socket_recvfrom may return an invalid 'from' address on MacOS).
  • Standard:
    • Fixed bug #77395 (segfault about array_multisort).
    • Fixed bug #77439 (parse_str segfaults when inserting item into existing array).
Versienummer 7.3.2 / 7.2.15
Releasestatus Final
Besturingssystemen Scripttaal
Website PHP
Download http://www.php.net/downloads.php
Licentietype Voorwaarden (GNU/BSD/etc.)

Door Japke Rosink

Meukposter

11-02-2019 • 09:18

22 Linkedin Google+

Submitter: Elzooi

Bron: PHP

Reacties (22)

Wijzig sortering
Is 7.2.x dan zo anders dan 7.3.x ? Kan je van 7.2.x niet seamless over naar 7.3.x ?
In andere woorden. Waarom minor updates voor 7.2.x uitbrengen als 7.3.x er al is (Ik snap dat wanneer er updates voor 5 worden uitgebracht omdat 5 echt iets anders is)
Op mijn werk wordt 7.2 gebruikt. Zouden we zonder aanpassingen aan de code naar 7.3 gaan, dan is de site stuk. Dus ja, er zijn aardig wat verschillen tussen de versies en je kan niet zomaar seamless over.

Dat wordt nog lastiger als je van frameworks gebruik maakt die nog niet geschikt zijn voor de nieuwere PHP versie. Of dat je eerst je framework moet updaten voordat je een nieuwere PHP kan gebruiken. Alles wat dus eerst fatsoenlijk getest moet worden voordat je het zomaar in productie gooit.
Op mijn werk wordt 7.2 gebruikt. Zouden we zonder aanpassingen aan de code naar 7.3 gaan, dan is de site stuk. Dus ja, er zijn aardig wat verschillen tussen de versies en je kan niet zomaar seamless over.
Klinkt als dat je even naar je deprecation warnings moet kijken die 7.2 uitspuwd :)
Dat wordt nog lastiger als je van frameworks gebruik maakt die nog niet geschikt zijn voor de nieuwere PHP versie. Of dat je eerst je framework moet updaten voordat je een nieuwere PHP kan gebruiken. Alles wat dus eerst fatsoenlijk getest moet worden voordat je het zomaar in productie gooit.
Als je nu nog een framework gebruikt die niet PHP ^7.2.x compatibel is, zou je echt moeten kijken om over te stappen naar een ander framework die al compatibel is met ^7.3.x.

[Reactie gewijzigd door RoestVrijStaal op 11 februari 2019 14:21]

Er zijn updates van de frameworks die we hier gebruiken die na de update wel geschikt zijn voor 7.3. Het moet dus even duidelijk op de roadmap/backlog gezet worden om dat te doen. :) Gelukkig ga ik daar niet over. Ik heb alleen maar aangegeven dat de nieuwe servers die ik moet installeren hoogstwaarschijnlijk 7.3 gaan draaien en ze daar op moeten voorbereiden.
Mja, en dat is alleen nog het framework. Dan maar hopen dat al je dependencies al up2date/aangepast zijn door de ontwikkelaars :N wat dat betreft ben ik eigenlijk niet zo'n fan van frameworks. veel te veel afhankelijkheid.
Ah, het "Not invented here" Anti-pattern :)

Kritisch kijken hoe goed het framework wordt onderhouden (aantal ingrijpende(!) commits per week, reactietijd op tickets en releases van de dependecies van het framework, functionele/unit tests) is altijd vereist. Maar lekker het wiel opnieuw uitvinden is het kind met het badwater weggooien.

[Reactie gewijzigd door RoestVrijStaal op 11 februari 2019 18:49]

Om nog maar te zwijgen over security issues die niet opgemerkt worden bij een developer base van n<5.
Het loont ook om door de code van je dependency heen te bladeren inderdaad :)

Als het nog te lezen en begrijpen valt, kun je zelf altijd nog dingen patchen en een pull request versturen.

Als het niet te begrijpelijk is of het is een spaghetti, kijk ik wel verder.

[Reactie gewijzigd door RoestVrijStaal op 11 februari 2019 19:03]

Ligt dat niet ook een beetje aan PHP an sich? Elke minor versie upgrade weer hoofdpijn.

Sinds wij, al een hele tijd geleden, zijn overgestapt naar Python en Django hebben we nooit meer problemen gehad door updates van zowel python als het framework.
Laatst nog een oude site nieuw leven ingeblazen, van Py2.7 naar Py3.6 en van Django 1.8 naar 2.1. Best wel stappen, maar slechts minimale refactoring nodig op 76k regels
Het hangt ook een beetje van je development tools af. Als je een correcte CI flow hebt, waarbij er netjes getest wordt tegen PHP versies, dan kun je dit soort zaken ruim op tijd corrigeren.
Als jullie een dergelijke migratie niet aankunnen zonder downtime of code aanpassing, dan gebruiken jullie wel heel specifieke code als dat zelfs van 7.2 naar 7.3 op zijn plaat gaat.
Waarom is 5 dan "echt iets anders" volgens jou?

echo "Hello world";

Werkt in 5 net zo goed als in 7 ;)

Point being; wat voor de ene een "seamless" upgrade is hoeft dat voor een ander niet te zijn ;)

[Reactie gewijzigd door RobIII op 11 februari 2019 13:02]

Omdat bepaalde dingen (ik kan geen voorbeelden noemen) niet meer in 5 zitten en bepaalde dingen toegevoegd zijn aan 7. Sommige sites draaien gewoon niet meer op 5. - " En "hello world" is natuurlijk een te simpel voorbeeld.
Omdat bepaalde dingen (ik kan geen voorbeelden noemen)
Jammer. Wel benieuwd nu dan welke functionaliteit niet in 7.x maar wel in 5.x zit.. :)
(waarvoor dus geen alternatief in PHP7 bestaat)

Aangezien PHP functies naar mijn idee alleen deprecated maakt als ze foutgevoelig of onveilig (in ontwerp en/of gebruik) zijn, vind ik iets herschrijven (vaak niet meer dan enkele regels tenzij je code spaghetti is) geen probleem.

[Reactie gewijzigd door Barryke op 11 februari 2019 14:54]

Mua dat is niet het enige, ook nieuwe functies kunnen ander gedrag vertonen dan je gewent bent. Bijvoorbeeld excepties ipv alleen false, of -1 in plaats van false. Vaak kan je naadloos over, als je de aankomende deprecations goed bijhoudt en wijzigingen maakt waar nodig. Maar het hangt er ook maar net vanaf wat je gebruikt. Vaak kom je alleen echt in de problemen als je oude code gebruikt, die al jaren niet meer bijgewerkt is.
Mijn punt was: als je applicatie zwaar afhankelijk is van iets dat wel/niet in 7.2 zit dat niet/wel in 7.3 zit dan is dat 'tzelfde ("showstopper") dan wanneer je van 5.x naar 7.x zou upgraden. Voor een triviale applicatie zal 't waarschijnlijk geen kont uitmaken, voor een specialistische applicatie kan 't een wereld van verschil zijn. It's in the eye of the beholder ;)
Kan je van 7.2.x niet seamless over naar 7.3.x ?
Jawel dat kan seamless:
  • Fix de deprecation warnings voor je upgrade. Die geven vorige versie(s) al een tijdje. Zie "Deprecated Features"
  • Lees de "Backward Incompatible Changes" voor dingen die geen warning kunnen/konden geven.
http://php.net/manual/en/migration73.php

[Reactie gewijzigd door Barryke op 11 februari 2019 14:41]

Vergelijkbaar? Die heeft geen support meer dus daarin zitten alleen de enstige security fixes.
http://php.net/supported-versions.php
[CTRL]+[F] "CVE"
= geen, ok mooi en door :Y)
Zitten best wat kritische bugs in imho..
Inderdaad, en updaten is nodig. Maar niet vandaag. Dus ik wacht wel even (met productie updaten) tot er geen kanaries van stokjes vallen...


Om te kunnen reageren moet je ingelogd zijn


Apple iPhone XS Red Dead Redemption 2 LG W7 Google Pixel 3 XL OnePlus 6T (6GB ram) FIFA 19 Samsung Galaxy S10 Google Pixel 3

Tweakers vormt samen met Tweakers Elect, Hardware.Info, Autotrack, Nationale Vacaturebank, Intermediair en Independer de Persgroep Online Services B.V.
Alle rechten voorbehouden © 1998 - 2019 Hosting door True