Scriptorama.nl

Header image showing a keyboard, mouse, laptop and books on design patterns

PHP6 komt met nieuwe MySQL client library: MySQLNG.

Enkele mensen uit de PHP wereld waren iets minder blij met het feit dat MySQL A.B. besloten heeft om de client library van MySQL uit te brengen onder de GPL licentie, dit onder andere omdat deze GPL licentie in principe incompatible is met de BSD-style licentie van PHP:

Now why would we care? One boring, yet important aspect, is that mysqlnd will be licensed under the PHP license. So this will solve any legal concerns or hickups and its definitely a nicer solution than the FLOSS exception

Ze hebben dus besloten om voor PHP6 en nieuwer een nieuwe MySQL client library te ontwikkelen welke onder een BSD style licentie wordt vrijgegeven. Als je mysqli gebruikt (zie ook de MySQLI artikelen hier op Scriptorama) veranderd er verder niet veel. De wijziging zit voornamelijk achter de schermen en mysqli werkt zoals vanouds. MySQLNG wordt uitgebracht als een toevoeging en niet als een vervanging voor de reeds bestaande libmysql client library. Dus als je de mysql of MySQLi extensie toch liever met de officiele libmysql client library wilt gebruiken is dat geen enkel probleem.

Update: Het is toch het plan om ook met een PHP5 versie van MySQLNG te komen

The MySQL native driver for PHP is an additional, alternative way to connect from PHP 6 to the MySQL Server 4.1 or newer. It is a replacement for the libmysql, the MySQL Client Library. From now on you can use ext/mysqli either together with libmysql as you did in the past or with mysqlnd.

Het grote verschil met de normale libmysql client library is dat MySQLNG speciaal gebouwd wordt voor integratie binnen PHP. Dit houdt onder andere in dat specifieke goed getestte functies uit PHP zelf hergebruikt worden om deze client library te bouwen. Deze nauwe integratie houdt ook in dat MySQLNG PHP sscripecifieke functionaliteit kan aanbieden. Denk hierbij aan onder andere aan het toepassen van het memory_limit van PHP. Een van de auteurs zegt ook dat de php streams functionaliteit in combinatie met mysqlng gebruikt zou kunnen worden, maar hoe hij dat precies voor ogen heeft is op dit moment nog niet echt duidelijk.

Inmiddels is een eerste testversie van MySQLNG beschikbaar en de ontwikkelaars hebben daar meteen maar de nodige benchmarks tussen de verschillende extensies en client libraries tegen aangegooid. Ik ben in elk geval benieuwd wat voor speciale PHP-specifieke functionaliteit ze van plan zijn in te bouwen.

Reageer ook!

Support voor PHP 5 is aangekondigd (zonder planning): http://blog.ulf-wendel.de/?p=139

Ik vraag me af of ik nu blij moet zijn of niet :s

MySQL5 installeren voor php5 is zowiezo een ramp, ben eerst een uur een kutten geweest.

Hopelijk gaat het hiermee wel goed :)

@Sebastiaan:
Mocht je op Windows werken: probeer WAMP 's, bijna een 'one click installer': http://www.wampserver.com/en/download.php

@michel:

Ja, dat is inderdaad wel prettig, maar aan de andere kant is het wel vervelend dat alles zo in elkaar verweven is. Ik zie de componenten liever apart zeg maar.

@berry:
WAMP knoeit niet met de componenten. Ze worden in een directory verzameld met elk hun originele bestanden. Het pakket stelt een stel handige scripts beschikbaar om bijvoorbeeld services te installeren of te switchen tussen PHP 4 en 5. Je kunt dus rustig handmatig configureren.

@michel:

Ja, dat klopt, handmatig configureren is wel mogelijk. Echter, probeer maar eens om Ruby er bij te laten draaien. Dan heb je wel Ruby, maar niet in dezelfde interface. Nu heb ik alleen de apache control dinges in mijn taakbalk.

Is het nou ND of NG? Je mixt het echt constant, geen touw aan vast te knopen. Ontopic: Klinkt wel goed in ieder geval. :)

Oh ik zie nu de datum, is vast ondertussen van naam veranderd.

@Fuzion: Ja, daar was destijds een beetje onduidelijkheid over. Er werd gesproken over MySQL Next Generation. Inmiddels is duidelijk dat de nieuwe driver eigenlijk altijd MySQLND wordt genoemd: MySQL Native Driver.

Leave a comment
Line and paragraph breaks automatic, e-mail address never displayed, HTML allowed: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>