mboost-dp1

php

PHP 5.3 frigivet

- Via php.net - , redigeret af Pernicious

Udviklerne bag PHP har nået endnu en milesten med frigivelsen af version 5.3.

Ud over de sædvanlige mange bug-fixes og forbedringer byder den nye version bl.a. på namespaces, anonyme funktioner som man kender det fra JavaScript samt en native MySQL driver.
Læs evt. changeloggen mellem version 5.2.10 og 5.3.0.

Ønsker man at migrere eksisterende PHP-applikationer kan man følge PHP’s guide dertil.

Næste version af PHP (PHP 6) vil først og fremmest omhandle Unicode support.





Gå til bund
Gravatar #1 - TuxDK
3. jul. 2009 12:17
*savle* anonyme funktioner *savle*

Bruger jeg satme meget i Javascript.
Glæder jeg mig til at bruge i php også.

Namespaces er så'n lidt meh. Hvad er der nu galt med statiske objekter? :)
Ved ikke om namespaces er noget jeg kommer til at benytte i PHP, nu må vi se. Kan være jeg finder det hjælpsomt til tider.
Gravatar #2 - ysangkok
3. jul. 2009 12:19
*savle* goto *savle*

Se http://us.php.net/goto som har en XKCD strip angående goto.

Og bemærk at namespaces bruger "\" som seperator. F.eks. se her:

<?php
namespace Foo\Bar\subnamespace;

const FOO = 1;
function foo() {}
class foo
{
static function staticmethod() {}
}
?>


Nu mangler vi bare COMEFROM :D
Bemærk at Python har begge dele, men det er selvfølgelig som moduler.

Og så bliver goto desuden også brugt i Linux-kernen: kerneltrap
Gravatar #3 - Windcape
3. jul. 2009 12:19
Closures i PHP, heh.

Rigtig mange af kerneudviklerne på PHP har altid været stærkt imod det, men jeg ser det som en rigtig velkommen ting.

Desværre så er PHP6 jo allerede år forsinket, så PHP er nok en teknologi mange forsøger at bevæge sig væk fra, istedet for hen imod.

Deres implementation af namespaces er ligeså elendig som Java's packages, desværre. Jeg foretrækker hvordan C++ og C# har implementeret dem.

Tux (1) skrev:
Ved ikke om namespaces er noget jeg kommer til at benytte i PHP, nu må vi se. Kan være jeg finder det hjælpsomt til tider.
Det er det forhåbenlig. Hvis du ikke ved hvad du skal bruge namespaces til, vil jeg absolut opfodre dig til at læse op omkring dem!
Gravatar #4 - TuxDK
3. jul. 2009 12:21
#3

Har aldrig sagt jeg ikke ved hvad jeg skal bruge namespaces til.
Sagde jeg ikke ved om jeg kommer til at bruge det på samme niveau som man gør i f.eks C#.
Gravatar #5 - Windcape
3. jul. 2009 12:25
#4

Du benytter vel object orienteret programming i PHP, så det burde være logisk hvad de skal benyttes til.

Tag f.eks. Zend Framework, lige nu ser det sådan her ud:

Zend_Db
Zend_Db_Adapter

De benytter altså _ til at definere et namespace.

Her er en version med namespaces:

Zend\Db\Adapter

Og så skal man ikke bekymre sig om navngivnings problemer.

Namespaces er simpelthen en nødvendighed når man skal designe et godt API.
Gravatar #6 - marzmandk
3. jul. 2009 17:36
Synes det er tydeligt at se at .NET platformen er meget længere fremme med object orinteret programmering end php på noget tidspunkt kommer til.

Dog synes jeg at php blev bedre og bedre og de nye tiltag med namespaces er en utrolig lettelse i arbejdet med koden...
Gravatar #7 - arne_v
3. jul. 2009 19:44
#0

Jeg forstår ikke deres begrundelse for MySQL native driver.

Teksten siger:

The older MySQL Client Library was written by MySQL AB (now Sun Microsystems, Inc.) and so was released under the MySQL license. This ultimately led to MySQL support being disabled by default in PHP. However, the MySQL Native Driver has been developed as part of the PHP project, and is therefore released under the PHP license. This removes licensing issues that have been problematic in the past.


MySQL lavede en FOSS exception i 2004 som mig bekendt ikke giver problemer for PHP !

NIHS ?
Gravatar #8 - ysangkok
4. jul. 2009 20:51
#7, det er jo heller ikke et problem mere, de kan bare ikke lide at være afhængige af den licens som MySQL bruger.

Der er desuden også andre fordele, bl.a. den at den nye driver ikke laver en kopi af hver resultatrække, og at den er bedre integreret med anden PHP kode.

Se her: http://forge.mysql.com/wiki/PHP_MYSQLND
Gravatar #9 - arne_v
5. jul. 2009 00:11
#8

Der er vel mange andre extensions som er undergivet diverse licenser. Jeg kan ikke se hvorfor MySQL's skulle være et problem.

Og hvis de kan se problemer i libmysql, så synes jeg at de skulle fixe de problemer.

Libmysql er jo tra la la open source.
Gravatar #10 - arne_v
5. jul. 2009 00:17
Windcape (3) skrev:
Deres implementation af namespaces er ligeså elendig som Java's packages, desværre. Jeg foretrækker hvordan C++ og C# har implementeret dem.


Så vidt jeg kan se, så har PHP implementeret namespaces som C++ og C# - ikke som Java !

Se f.eks. eksempel 2 i:
http://www.php.net/manual/en/language.namespaces.d...

De har bare tilladt en Java lignende syntax som forkortelse.

Gravatar #11 - arne_v
5. jul. 2009 00:21
Windcape (5) skrev:

Tag f.eks. Zend Framework, lige nu ser det sådan her ud:

Zend_Db
Zend_Db_Adapter

De benytter altså _ til at definere et namespace.

Her er en version med namespaces:

Zend\Db\Adapter


Der er en vigtig forskel på namespaces/packages fremfor naming conventions.

Med namespaces/packages kan man use/importe.


Gravatar #12 - arne_v
5. jul. 2009 00:27
Windcape (5) skrev:

Og så skal man ikke bekymre sig om navngivnings problemer.

Namespaces er simpelthen en nødvendighed når man skal designe et godt API.


Men pussigt nok er det kun Java som har en konvention for package navne som gør et virkeligt seriøst forsøg på at undgå navngivnings problemer.
Gravatar #13 - Windcape
5. jul. 2009 09:31
arne_v (10) skrev:
Så vidt jeg kan se, så har PHP implementeret namespaces som C++ og C# - ikke som Java !
Hmm, ja.

Dog havde jeg gerne set at de benyttede {} blocks til det.
Gravatar #14 - mat
5. jul. 2009 09:47
#13

Jeg ser da en block i arnes link?
Gravatar #15 - arne_v
5. jul. 2009 14:29
Windcape (13) skrev:
Dog havde jeg gerne set at de benyttede {} blocks til det.


Det har de også. Se eksempel 2 i link.

De har bare en kort form som ligner Java.
Gå til top

Opret dig som bruger i dag

Det er gratis, og du binder dig ikke til noget.

Når du er oprettet som bruger, får du adgang til en lang række af sidens andre muligheder, såsom at udforme siden efter eget ønske og deltage i diskussionerne.

Opret Bruger Login