Ankündigung: PHP 5.5 ist da

saftmeister

Nutze den Saft!
Hier die Anouncement-News: http://php.net/archive/2013.php#id2013-06-20-1

Wie schon in meinem anderen Post zum Thema erwähnt gibt diese die neuen

* Generators und zugehörige Routinen (http://php.net/generators)
* "finally" Schlüsselwort (http://php.net/exceptions)
* Vereinfachte Hashing-API (http://php.net/password)
* Array- und String-Dereferenzierung (http://de2.php.net/migration55.new-features#migration55.new-features.const-dereferencing)
* Klassennamen-Auflösung via ::class (http://php.net/oop5.basic#language.oop5.basic.class.class)
* Erweiterte Unterstützung für empty()-Prüfungen (http://php.net/migration55.new-features#migration55.new-features.empty)
* Unterstützung für nicht-skalare Interatoren-Schlüssel in foreach (http://php.net/migration55.new-features#migration55.new-features.non-scalar-iterator-keys)
* Unterstützung für list()-Konstrukte in foreach() (http://php.net/foreach#control-structures.foreach.list)
* Opcode-Cache von Zend im Core (http://php.net/opcache)
* GD-Library auf 2.1 angehoben
* Weitere Verbesserungen und Bugfixes

Allerdings gibt es hier und da noch ungeklärte Probleme, wenn man sich die Bug-List für 5.5 ansieht. Immerhin sind bis dato noch 79 Einträge in der Liste (wobei nicht alles Bugs sind, ein paar Requests sind da auch bei). Hier die Liste:

https://bugs.php.net/search.php?boo...g_age=0&bug_updated=0&bug_type=All&phpver=5.5

Falls jemand auf Probleme stößt, sollte er/sie als erstes dort nachsehen, ob es ein bekanntes Problem ist.
 
Zuletzt bearbeitet:
Und was mir gerade in den Downloads für Windows aufgefallen ist: Es gibt jetzt auch 64-Bit-Versionen für (Non-)Thread-Safe. Diese sind allerdings noch als experimentell eingestuft.
 
Mit denen kann man dann endlich Strings mit einer Länge größer als 2^32 - 1 haben.

Ich habe gerade eine neue Art von Maximum function nesting level -Auslöser gefunden :P
PHP:
<?php

function f() {
	foreach (f() as $i) {
		yield $i;
	}
}

foreach (f() as $i) {}
 
Was ich nur nicht verstehe: Wofür ist dieses yield gut? Wann sollte man das benutzen? Warum diese Logik nicht direkt in die foreach-Schleife packen? Also in den Beispielen aus dem Manual würde ich das jedenfalls so machen (gut, das sind eben nur Beispiele). Aber in welchem konkreten Anwendungsgebiet lohnt das?
 
Mit denen kann man dann endlich Strings mit einer Länge größer als 2^32 - 1 haben.

Den Sarkasmus habe ich sehr spät bemerkt. Nunja, es ist dann sinnvoll, wenn man ebenfalls einen Apache mit 64bit hat. Viele vergessen, dass Applikationen Speicher nicht nur für Laufzeit-Daten benötigen. Der Adressraum einer Applikation beinhaltet jedoch auch geladene Libraries, Dateisystem-Resourcen (Sockets, Pipes, etc.) und Shared Memory. All das muss im VirtualMemory der Applikation Platz finden. Sicher hat man mit 4GB Adressraum eigentlich genug, aber der Tag wird kommen, da lachen wir über 4GB.

Beispiel: Ich habe auf Arbeit ein CI-System (Jenkins) auf einer Maschine mit 64GB physikalischen Arbeitsspeicher und 16 CPU Cores (32 Threads) laufen, der hat zur Laufzeit 20GB allokiert. ;-)
 
Den Sarkasmus habe ich sehr spät bemerkt.

Sollte allerdings gar keiner sein ;)
Außerdem kann man nun auch [phpf]fseek[/phpf] bei größeren Dateien verwenden ohne irgendwelche Workarounds.


Beispiel: Ich habe auf Arbeit ein CI-System (Jenkins) auf einer Maschine mit 64GB physikalischen Arbeitsspeicher und 16 CPU Cores (32 Threads) laufen, der hat zur Laufzeit 20GB allokiert. :8
Kommt natürlich immer auf das gebrauchte Volumen an, aber du hast Recht: wie viel Speicher werden wir in 10 Jahren verbrauchen?
 
Zurück