cleanup and documentation updates
[webpac] / openisis / doc / PHP.txt
diff --git a/openisis/doc/PHP.txt b/openisis/doc/PHP.txt
deleted file mode 100644 (file)
index 4166f62..0000000
+++ /dev/null
@@ -1,75 +0,0 @@
-considerations on the design of a PHP interface
-
-This paper is based on the requirements of
->      Concurrency
-
-
-*      why not to export sessions
-
-From the C-API's point of view, the use of sessions is a MUST
-in a multithreaded environment, which PHP may be. 
-This, however, is the server-side of the PHP engine.
-The PHP page, as seen by the programmer, is a client to the database:
-it does NOT handle multiple requests, but one!
-
-In other words, the page is already executing within the context of
-a given request, including a given thread.
-Since a request is not meant to operate on several sessions,
-but rather has one session as an attribute of it's context,
-nothing would be gained by making the session visible ("export")
-to the PHP programmer by calls like read(ses,...) or ses->read(...).
-
-
-Moreover, the currently most used environments, i.e. MP Apache 1.x/Unix
-and some Windoze boxes, do not allow/require the use of multiple sessions,
-anyway.
-
-Finally, the only reason to explicitly select a session based on a user's
-session id, would be to access this session's state as #1-style result sets
-or authentication information. Both will not be implemented in the near
-future and both will rarely be needed in web environments.
-Yet, it might be made available when needed by means of an additional
-call that "selects" that session as the one to be associated with the
-request context.
-
-
-*      strategy
-
-Therefore, I would suggest the following strategy:
--      In the first step, stick to the default session by using a static
-       session variable like openisis_ses0 and auto-initializing it like
-       the OPENISIS_SES0 macro does.
--      For the MP version register a function using register_shutdown_function
-       (is there a corresponding C-API to register a C function ?)
-       that closes all open DBs in order to release their flocks.
-       (Berlin will provide such a "close all").
--      On Windoze and Apache 2, make sure to actually run single-threaded
-       by using EnterCriticalSection/pthread_mutex_lock
-       on a static CRITICAL_SECTION/PTHREAD_MUTEX_INITIALIZER
-       and leaving/unlocking it in a registered shutdown_function
--      Some day, in a better age, replace the static session variable
-       with a thread specific one by using pthread_key_create/pthread_setspecific
-       or maybe PHP's TSRM.
-
-C.f. man pthread_mutex_lock, 
->      http://msdn.microsoft.com/library/en-us/dllproc/base/critical_section_objects.asp       critical Windoze
-
-
-*      notes
-
--      is there a call in the PHP API that can be relied upon
-       to be the first one used, in order to do initialization?
-       Probably opening a DB?
--      In the MT version, closing databases is not enforced,
-       thus successive requests will open already opened databases.
-       This is ok with the C-API's DOpen, which will happily return
-       the same handle.
--      Once additional worker sessions/threads are supported,
-       we'll need additional open/close calls, which do neither
-       actually open or close a database, but access and release
-       (and possibly flush). The MT and MP usage could then be made
-       to look very similarm with details governed by a few config
-       settings.
-
----
-       $Id: PHP.txt,v 1.1 2003/02/13 20:36:23 kripke Exp $