Antwort
 
LinkBack Themen-Optionen Thema durchsuchen
Alt 30.06.2009, 21:27 Nach oben    #1
Jann Hendrik Bekaan
 
Benutzerbild von Jann Hendrik
 
Registriert seit: 02.12.2004
Ort: Wildeshausen
Beiträge: 3.198
Standard alles zu PHP 5.3

Heute ist es erschienen:
PHP 5.3

Zitat:
Gut zweieinhalb Jahre nach der Veröffentlichung von PHP 5.2.0 im November 2006 ist nun mit Version 5.3.0 die nächste Generation der nach Java, C und C++ populärsten Programmiersprache erschienen.
Gern dürft ihr eure Meinungen und Erfahrungen hier posten!

http://www.php.net/archive/2009.php#id2009-06-30-1
http://www.heise.de/developer/Was-ae...artikel/140003
Jann Hendrik ist gerade online  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 30.06.2009, 22:39 Nach oben    #2
Christian W. Achatz
 
Benutzerbild von dr.e.
 
Registriert seit: 05.02.2007
Ort: München
Beiträge: 198
Standard

Nach der Installation habe ich mich erstmal tierisch aufgeregt: http://forum.adventure-php-framework....php?f=6&t=133.

Solche Kinderkrankheiten...
dr.e. ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 01.07.2009, 02:54 Nach oben    #3
Ben
Erfahrener Benutzer
 
Benutzerbild von Ben
 
Registriert seit: 02.12.2004
Ort: Koblenz
Beiträge: 4.794
Standard

Warum auch immer man dazu jetzt den Link posten musste.

Nunja, ich hab mich nun seit ein paar Monaten nicht mehr mit PHP oder gar der Weiterentwicklung der Sprache befasst.
Kann mir eventuell jemand sinnvolle Anwendungsgebiete für die garbage collection geben? Die Doku bzw. das Beispiel in den Kommentaren hilft mir aktuell nicht wirklich weiter.

Da der Link zu den "closures" in der Pressemitteilung nicht funktioniert, wäre es auch nett, wenn mir einer erklären könnte, was es damit auf sich hat.

Danke. :)
Ben ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 01.07.2009, 07:29 Nach oben    #4
Christian W. Achatz
 
Benutzerbild von dr.e.
 
Registriert seit: 05.02.2007
Ort: München
Beiträge: 198
Standard

Zitat:
Warum auch immer man dazu jetzt den Link posten musste.
Verstehe ich nicht? Der Link enthält eine Beschreibung der Problemstellung und einen Link zum Bug-Tracker. Das hat - und das unterstellst du mir gerne - definitiv nichts mit Werbung zu tun.
dr.e. ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 01.07.2009, 08:27 Nach oben    #5
Projektleiter
 
Registriert seit: 30.11.2005
Ort: Bottrop
Beiträge: 1.365
Standard

Closures sind, vereinfacht ausgedrückt, Funktionen, die Zugriff auf ihren umgebenden Zustand (also dort definierte Variablen) haben. Bsp.:

PHP-Code:
$test '<code lang="php">...</code>';
$prefix '<pre><code>';
$suffix '</pre></code>';
$test preg_replace_callback('`<code lang="(.*?)">(.*?)</code>`is', function($matchesuses($prefix$suffix) {
    
// highlight ist natürlich imaginäre funktion...
    
return $prefix highlight($matches[2], $matches[1]) . $suffix;
}); 
Wobei ich mir bei der Syntax gerade noch nicht ganz sicher... ist ne Weile her, dass ich mir die angesehen habe.

Der neue GC hilft bei Skripts, die eine längere Laufzeit haben (also z.B. für cronjobs) oder mit stark zyklischen Objekten (A referenziert B, B referenziert A) arbeiten. Bisher sind die am Speicher gescheitert, weil der nicht freigegeben wurde.

Ich für meinen Teil werde jetzt erstmal abwarten, wie das ganze von den Webspace-Anbietern akzeptiert wird. Namespaces, Closures und Lambdas sind zwar Dinge, auf die ich schon lange warte, aber irgendwie seh ich mir die an und bin enttäuscht (ich sag nur: \). Von daher erstmal abwarten, wie sich das verbreitet und ob es sich lohnt, sich damit näher auseinander zu setzen.
pago ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 01.07.2009, 08:38 Nach oben    #6
Martin Eisengardt
 
Registriert seit: 30.03.2006
Ort: Pfinztal
Beiträge: 396
Standard

Zitat:
Zitat von pago Beitrag anzeigen
Wobei ich mir bei der Syntax gerade noch nicht ganz sicher... ist ne Weile her, dass ich mir die angesehen habe.
passt schon.

Prinzipiell ist das aus JavaScript bereits bekannt, wenn du mal bei der Web-Entwicklung bleibst. Dojo baut zum Beispiel die Objektstrukture aus synthetischen Klassen zusammen. Die Methoden einer Klasse werden über Closures zusammentgestöpselt. In dem Zusammenhang noch das Stichwort "Lambda Functions". So kannst du beispielsweise über die PHP-Magics "__call", "__get" und "__set" ebenfalls Klassen aufbauen, denen zu Laufzeit neue Methoden zugeordnet werden können. Beispielsweise sowas:
PHP-Code:
$foo = new DIContainer();
$foo->myFunc = function() { echo "myFunc"; }
$foo->myFunc(); 
Im Prinzip ist das mächtig und für verschiedene Programmieransätze zwingend notwendig. Stichwort beispielsweise "Dependency Injection". Oder suche nach "PHP DIContainer". Das sollte ausreichen um sich per Google weiterzubilden :)
Ich selbst fange gerade erst an, damit rumzuspielen, aber das ist schon recht mächtig. Funktionen, die du eigentlich nur als kleines Bauteil brauchst, so wie beim obigen Beispiel als Callback, müssen nicht mehr global registriert weden und du musst dir keine sinnvollen Namen dazu mehr überlegen. Im Prinzip eine Weiterentwicklung von "create_function", was es schon länger gibt. Früher kam da nur der generische Name einer Funktion rüber, nun sind die wirklich (auch vom Variablen-Typ her, wenn ich mich nicht irre) anonym und können auch restlos zerstört werden, wenn man die Variable löscht.

Es gibt vielleicht eine kleine Neuerung, die unbeachtet ist, aber in Vorbereitung auf PHP 6 unabdingbar sein dürfte:
PHP-Code:
declare(encoding 'UTF-8'); 
Derzeit wird das zwar von PHP 5.3 schlichtweg ignoriert (normalerweise) aber sobald PHP mit Version 6 intern standardmäßig (ähnlich Java) mit mehreren Encodings jongliert, ist das eine der wichtigsten Angaben. Denn darüber teilst du PHP mit, dass es deine Sourcen mit dem richtigen Zeichensatz interpretiert. Sowas sollte dann in jedem Source stehen :)

Geändert von mepeisen (01.07.2009 um 08:41 Uhr)
mepeisen ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 01.07.2009, 11:35 Nach oben    #7
Projektleiter
 
Registriert seit: 30.11.2005
Ort: Bottrop
Beiträge: 1.365
Standard

Ne Frage zu dem encoding: In jeder Quelldatei? Oder reicht das pro Projekt in einer Bootstrap-Datei?
pago ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 01.07.2009, 14:42 Nach oben    #8
Erfahrener Benutzer
 
Registriert seit: 12.06.2006
Beiträge: 335
Standard

Würde jetzt spontan sagen: Solange die Bootstrap-Datei nicht includiert wird, ja. Es muss also die wirklich allererste Anweisung nach dem öffnenden PHP-Tag sein.
FloB ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 01.07.2009, 16:07 Nach oben    #9
Martin Eisengardt
 
Registriert seit: 30.03.2006
Ort: Pfinztal
Beiträge: 396
Standard

In jeder Datei, da es auch ausschließlich pro Datei gilt. Die Declare-Anweisung ist (ähnlich dem Namespace) eine Anweisung, die dem Parser zur Verfügung steht, wenn er eine PHP-Datei analysiert und in ein internes Format umsetzt. Bei jeder neuen PHP-Datei, die inkludiert wird, könnte es sich ja wieder um einen anderen Zeichensatz handeln. So wird später auch möglich sein, dass man beispielsweise UTF-irgendwas-Dateien und ISO-irgendwas-Dateien in ein und demselben Projekt mischt.

Und ja, analog Namespace muss es die allererste Anweisungen in der Datei sein. Im Handbuch steht auch, was nunwirklich zuerst kommen muss (namespace oder declare) und wie das dann geht.
mepeisen ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
alles zu PHP 5.3 - Vorabversionen Ben Nachrichten 12 30.06.2009 21:28
PHP 5.3 - Neue MySQL5 Schnittstelle (mysqlnd) marc9022 Datenbanken 12 21.05.2009 14:34
Kummunikation zwischen PHP Und einem "Java Server" Avaris Anwendungsdesign / Softwarearchitektur 25 07.12.2008 16:23
PHP 5.1.5, PHP 4.4.4 und PHP 5.2.0 RC2 veröffentlicht Ben Nachrichten 2 01.09.2006 16:05
Neue PHP "release candidates": PHP 4.4.2 RC 1 und PHP 5.1 RC 6 Ben Nachrichten 1 21.11.2005 20:48


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:02 Uhr.


Powered by vBulletin® Version 3.8.4 (Deutsch)
Copyright ©2000 - 2010, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.3.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47