Re: Pqsocket not implemented in PHP

From: "Nick Stone" <nick(at)harelane(dot)com>
To: "'Volkan YAZICI'" <volkan(dot)yazici(at)gmail(dot)com>
Cc: <pgsql-php(at)postgresql(dot)org>
Subject: Re: Pqsocket not implemented in PHP
Date: 2005-06-30 12:25:56
Message-ID: 20050630122757.B99AE252A5E@smtp.nildram.co.uk
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-php

Ok that's fair enough - I was concerned that the internal structure of PHP
might be a stumbling block - also since nearly every other function was
implemented I suspected there had to be a good reason why that's not been. I
can easily write the code a different way.

Thanks for your help

Nick

-----Original Message-----
From: pgsql-php-owner(at)postgresql(dot)org [mailto:pgsql-php-owner(at)postgresql(dot)org]
On Behalf Of Volkan YAZICI
Sent: 30 June 2005 12:38
To: Nick Stone
Cc: pgsql-php(at)postgresql(dot)org
Subject: Re: [PHP] Pqsocket not implemented in PHP

Hi,

On 6/30/05, Nick Stone <nick(at)harelane(dot)com> wrote:
> I'm a bit confused the FD is all that is required for the select call
> - so I think what you're saying is that the postgres socket open
> mechanism isn't the same in php as the postgres C development library.

No. PHP has an internal struct type to record `resource's. (As you know,
resources are data sources for other functions and they're specific to PHP.)
Therefore, it's not just passing PQsocket() value to
select() function. I'm not very experienced in the PHP internals, but AFAIC,
you need to store socket FD in a specific struct and use other Zend API
calls to proccess 'em.

To sum up, I'd advice you to take a look at ext/socket/socket.c in PHP
source code for a better point of view.

> I say this because I've implemented this exact mechanism in C++ before
> without problem so I'm really not quite following - sorry.

In C++, you just passed PQsocket() value to select() condition. But in PHP
it's not as easy as this. You need to store PQsocket() value in a specific
struct. Let me explain this in PHP way:

When we look at socket_create() function:
resource socket_create ( int domain, int type, int protocol )
socket_create() doesn't return an `int' for socket FD, it returns a socket
`resource'. That's what I try to mean with "PHP's internal data source
representation".

Regards.

---------------------------(end of broadcast)---------------------------
TIP 8: explain analyze is your friend

In response to

Browse pgsql-php by date

  From Date Subject
Next Message Francisco Reyes 2005-07-02 00:37:43 PHP Frameworks that work with PostgreSQL?
Previous Message Volkan YAZICI 2005-06-30 11:38:08 Re: Pqsocket not implemented in PHP