ID: 19694 Updated by: [EMAIL PROTECTED] Reported By: citd at mediaways dot net Status: Open Bug Type: Feature/Change Request Operating System: N/A PHP Version: 4.2.3 New Comment:
The various opcode caches tend to implement this. mmcache and ZPS have ways to do this easily. And I will be submitting a patch to pecl/apc to support this as well shortly. That is, you can do: $var = apc_fetch('var'); And: apc_store('var',$var); We definitely don't want PHP to require a standalone marshalling process as someone suggested and as someone else suggested, no, the $_SESSION code is nothing like what would be needed for this. The main argument against using something like this is that your horizontal scalability is destroyed if you use it incorrectly. Ideally you want to architect your solution such that every request is sandboxed from every other so that you can handle an entire browsing session on any of dozens of servers behind a load balancer, for example. If you store state on a single machine like this, much like many Java apps do by storing state in the JVM, then you have a scalability nightmare on your hands. Previous Comments: ------------------------------------------------------------------------ [2004-09-07 15:50:17] jon_obuchowski at terc dot edu I agree that a persistent variable functionality would be useful; however, this does require an additional level of configuration to allow ISPs soem leeway in how this is deployed; a) availabilty of feature AT ALL determined by configuration b) separate scopes for different applications (as several may be running on the same server and there needs to be some way to prevent collision); these scopes may be determined by name (low inter-application security), automatically by domain/URL path (higher security) or by some other means c) timeout periods (i.e. how often the application variables need to be refreshed) need to be determined on a per-server, per-application basis d) some sort of locking mechanism to prevent corruption issues during writing (assuming that multiple concurrent PHP requests have similar shared-memory issues to concurrent threads); this could be automatic and/or manual, depending on performance needs... ------------------------------------------------------------------------ [2004-03-26 14:17:13] hans at deragon dot biz 2004 and still nothing showing up for this issue. I am a newbie, but even I (less than one month of PHP experience) understand the importance of this issue. One could do something with shared memory and msession, but these solutions are overkill for small projects (and shared memory does not work on Windows). What we need is a simple global array named $_PERSISTENT. Anything stored in this array lives until unset or the server goes down. And as for the implementation, can't this be done easily? I mean, $_SESSION exists already and the only difference between $_SESSION and $_PERSISTENT is that $_SESSION is associated with a session (cookie or URL based). Just reuse the same code for $_SESSION, but without the user association code and voilĂ , a new feature is born. $_PERSISTENT would be so intuitive to use to newbies, as $_SESSION is. ------------------------------------------------------------------------ [2003-02-20 12:29:50] okapi at yahoo dot com I'm suprised why something along these lines isn't incorporated into PHP such that there's an application process that could handle application scope variables (and query caching). It seems this kind of issue would make it match up better with ASP and Cold Fusion. Is anyone aware of such an effort? ------------------------------------------------------------------------ [2002-10-02 03:16:56] citd at mediaways dot net Thinking at Shared memory data-interchaning comes to my mind. (OK SSJS can interchange data via the project-variable. But, at leat in our project, i can't see the point for this.) For our project a global and persistent variable is important for SPPPPPEEEEEDDDDDD (and cost. We don't have to buy more frontend-machines to compensate the performance losse of PHP compared to SSJS). Having to parse the configuration for every request just kills the performance. ------------------------------------------------------------------------ [2002-10-01 12:23:18] [EMAIL PROTECTED] what about using shared memory? http://www.php.net/manual/en/ref.sem.php http://www.php.net/manual/en/ref.shmop.php ------------------------------------------------------------------------ The remainder of the comments for this report are too long. To view the rest of the comments, please view the bug report online at http://bugs.php.net/19694 -- Edit this bug report at http://bugs.php.net/?id=19694&edit=1