[PHP4BETA] The next step
| From: | Zeev Suraski | Date: | Mon, 26 Apr 1999 00:43:40 +0000 |
| Subject: | [PHP4BETA] The next step | ||
| Groups: | php.version4 | ||
| Request: | Send a blank email to php-version4+get-530@lists.php.net to get a copy of this message | ||
Hi,
After working for a few hours, Andi and I got very very preliminary
positive results from ISAPI interfacing IIS 4.0. Code compiles and
executes nicely, with full thread safety (the way it's written, there's a
minimum of two threads that 'talk' with each other to some extent). We
didn't invest any time in the ISAPI specific issues, so stuff like headers
and content type don't yet work, so the browser ends up prompting you to
save the file.
We've written a *tiny* framework for SAPI. My intentions are to port most
of Shane's work from his SAPI base into this framework (essentially,
nothing but a static structure of functions that is specific to each server
API, and a thread-safe structure that contains the request information).
[The following applies to the Win32 thread-safe project only, for now]
In order to save time compiling and recompiling all the time, we converted
PHP 4.0 to be a static library. For various reasons we'd convert it to be
a dynamic link library (DLL) in the future, but we didn't yet do it (we
have to do it mainly in order to support extension DLLs that would work
with ISAPI, WSAPI, NSAPI and CGI in one single binary file).
[/end]
In general, I think we should do the same in UNIX. Slowly but surely, we'd
get rid of any server specific code in PHP 4.0, and move to using SAPI.
Compiling PHP 4.0 should then consist of:
1. Compiling libzend
2. Possibly compiling TSRM
3. Compiling libphp4, with the requested built-in extensions.
4. Compiling the appropriate SAPI implementation for your server, and
linking in the above libraries.
If we do it right, it should be possible to compile libzend, TSRM and
libphp4 once and it would be linked as-is for all server implementations.
In Win32, it would actually be a DLL (we can make it an .so under UNIX too,
but I don't think we have a good reason to do it - in Win32, we must).
Zeev
--
Zeev Suraski <zeev@zend.com> http://www.zend.com/
For a PGP public key, finger bourbon@netvision.net.il
--
PHP 4 Beta