Re: [PHP-DEV] [PRE-RFC] Runtime modules

[email protected] ("Rowan Tommins [IMSoP]")
Newsgroups php.internals
Message-ID <[email protected]>
On 28 June 2026 14:49:18 BST, Alexander Egorov <[email protected]> wrote:

>Let's again start simple and temporarily forget about tags. We also load
>this class, either manually by including that same file, or instruct our
>autoloader for that. Now we also have this symbol in our own container:
>\Client. Despite that $client is also a \Client, its original symbol (which
>is remembered by PHP internally) is unavailable to us (like "shadowed") and
>there is no conflict. Moreover, since those are still technically the same
>class (PHP can handle that, I believe), $client instaceof \Client === true;
>And we can use this symbol throughout our main app.


No, PHP can't handle that, at least not trivially. Knowing that it was defined in the same file is *not* enough to prove it is the same object. 

This is in fact why OpCache only optimises and caches individual files: it has to take the compiled code and run a "linker" to resolve references to other symbols, because they might be *different* in different processes/threads.

You either have a complex key made up of every symbol the linker needed, recursively; or you just assume that every time you link the class you get a different result. 



Rowan Tommins
[IMSoP]
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.