On Fri, Jan 5, 2024 at 8:47 AM Rowan Tommins <rowan.coll...@gmail.com> wrote:
>
> On 5 January 2024 06:55:34 GMT, Robert Landers <landers.rob...@gmail.com> 
> wrote:
>
> >I already said this, but to reiterate: I, personally, hear what you
> >are saying and largely agree with you; however, before we can really
> >have any kind of discussion on concurrent servers, we HAVE to address
> >the underlying issues that are missing from PHP. In PHP-src
>
> So, let's address them...
>
>
> > there are no such things as request objects
>
> This is a non-issue. As has been discussed already, it's perfectly fine to 
> have an event-based system where the event details are an associative array, 
> rather than a rich object.
>
>
>
> > There are no such things as event loops. There are fibers,
> > but absolutely no std-library i/o functions are using them
>
> This is what the bulk of Daniil's email is suggesting a way to improve.
>
>
> >We have a long way to go before those will be real things that we can
> >have a proper conversation about in the context of php-src.
>
> If we keep waiting to have the conversation, it will never happen.
>
> And if we start building brand new APIs like infrastructure for worker-mode 
> SAPIs, in ways that are fundamentally incompatible with async, we're just 
> making more work for ourselves when we do get there.

I don't think they are fundamentally incompatible. If we look at
FrankenPHP's implementation, you pass a callback that gets called when
there is a request. This is the same as giving Swoole a callback to
call when a request is received, though the underlying implementation
might be very different. An event-loop doesn't matter here and what
gets passed to the callback is what we are discussing here.

The exact implementation (in php-src) matters, but only so far as what
php-src is capable of. Globals is how this works (atm) and changing
the signature of the callback is generally backwards compatible. For
example, if we start with only globals (no parameters), adding
parameters later once there are request objects/arrays/whatever, is
fine. Calling a callback with parameters when the function actually
doesn't accept any arguments, isn't even a notice
(https://3v4l.org/URj9b).

Changing the underlying implementation in php-src when there are
native fibers/event loops probably won't even change anything (since
that was exactly how they were designed).

But holding up the entire conversation because these things don't even
exist, seems like a pointless endeavor since they may not even pass
the RFC point (IIRC, getting an event-loop in PHP was a large part of
the reason fibers are the way they are because people were against an
event-loop at that time).

> Regards,
>
> --
> Rowan Tommins
> [IMSoP]
>
> --
> PHP Internals - PHP Runtime Development Mailing List
> To unsubscribe, visit: https://www.php.net/unsub.php
>


Robert Landers
Software Engineer
Utrecht NL

--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: https://www.php.net/unsub.php

Reply via email to