Re: Ruminations on PHP 5++

From: Date: Fri, 24 Jan 2014 21:19:14 +0000
Subject: Re: Ruminations on PHP 5++
References: 1 2 3 4 5 6 7 8  Groups: php.internals 
Request: Send a blank email to internals+get-71533@lists.php.net to get a copy of this message
On 1/24/14, 1:03 PM, Arvids Godjuks wrote: > The PDO. This is something that needs so much improvement that it's > ridicilous it has survived till this time. I use Yii framework as my tool, > they use PDO as their base. I have considered many times to integrate a > mysqli to PDO wrapper to bring things like mysqli_ping, unbuffered queries > and lost more. At this point I can do without those things because I do not > have a lot of load on my projects, but they are growing and at some point > abandoning the PDO will be a nesesity due to it's lack of features. > I think PDO is a bad idea for PHP as a whole. We are better of with a > consisten API through the native drivers and maybe a PDO like thing that > gives us data objects, but still provides ability to get to the low level > stuff that is sometimes needed. PHP lately has moved to projects that > previosly where done on Java and some other move advanced tech. And lack of > frameworks using the native drivers is kind'a bad, because in really > advanced projects you have to create your own framewok... But note, if you blindly switch from PDO to mysqli, which in turn usually means moving from client-side prepares to server-side prepares, chances are you are going to take a significant performance hit. Like I said, it means two extra network roundtrips per sql query and for one large project I worked on that meant an extra 40ms latency per web request. So I don't think PDO is a bad idea. Having a single source of common functionality needed by all DB drivers makes sense. Imagine if every lower-level driver needed to implement their own client-side prepare feature? And a consistent API across the low-level drivers isn't feasible since each DB has a lot of specialization. It would end up looking exactly like PDO but with a bunch of special calls for each one. If you could bounce back and forth between PDO and the lower-level driver easily you get the consistent API and you get access to all the lower-level features. Also, from a migration point of view, scrapping PDO and rewriting all the low-level drivers to be "consistent" would be an absolute nightmare. -Rasmus

Attachment: [application/pgp-signature] OpenPGP digital signature signature.asc
« previous php.internals (#71533) next »