rfc:session-gc
Differences
This shows you the differences between two versions of the page.
Next revision | Previous revision | ||
rfc:session-gc [2014/03/13 03:20] – created yohgaki | rfc:session-gc [2017/09/22 13:28] (current) – external edit 127.0.0.1 | ||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== PHP RFC: Your Title Here ====== | + | ====== PHP RFC: Add session_gc() |
- | * Version: | + | * Version: |
* Create Date: 2014-03-13 | * Create Date: 2014-03-13 | ||
- | * Modify Date: 2014-03-13 | + | * Modify Date: 2016-08-10 |
* Author: Yasuo Ohgaki, yohgaki@ohgaki.net | * Author: Yasuo Ohgaki, yohgaki@ohgaki.net | ||
- | * Status: | + | * Status: |
* First Published at: http:// | * First Published at: http:// | ||
Line 14: | Line 14: | ||
The best way to purge old session data is executing GC periodically. | The best way to purge old session data is executing GC periodically. | ||
+ | |||
+ | Although timestamp based session management is declined twice, it is mandatory for session management. Please refer to Strict Session RFC for details. | ||
+ | |||
+ | * https:// | ||
===== Proposal ===== | ===== Proposal ===== | ||
- | ==== Option 1 - Let user call GC ==== | ||
* Add session_gc() API. | * Add session_gc() API. | ||
* Document calling session_gc() periodically is the best practice. | * Document calling session_gc() periodically is the best practice. | ||
- | ==== Option 2 - Change save handler ==== | ||
- | * Let save handlers to check last GC time. | ||
- | * If last GC time is over session.expire, | ||
- | ===== Backward Incompatible Changes ===== | + | int session_gc(void) |
- | None | + | It simply executes GC save handler defined. |
- | ===== Proposed PHP Version(s) ===== | ||
- | PHP 5.x+ | + | ===== Backward Incompatible Changes |
- | + | ||
- | ===== SAPIs Impacted | + | |
None | None | ||
- | ===== Impact to Existing Extensions | + | ===== Proposed PHP Version(s) |
- | * Option 1 : Session module have new API (session_gc()) | + | PHP 7.2 |
- | * Option 2 : Session save handlers including 3rd party modules. | + | |
- | ===== New Constants | + | ===== Vote ===== |
- | None | + | This project requires a 2/3 majority. |
- | + | Vote starts: 2016/08/10 - Vote ends: 2016/08/17 23:59:59 UTC | |
- | ===== php.ini Defaults ===== | + | |
- | + | ||
- | No INI changes | + | |
- | + | ||
- | If there are any php.ini settings then list: | + | |
- | * hardcoded default values | + | |
- | * php.ini-development values | + | |
- | * php.ini-production values | + | |
- | + | ||
- | ===== Open Issues ===== | + | |
- | + | ||
- | None | + | |
- | + | ||
- | ===== Unaffected PHP Functionality ===== | + | |
- | + | ||
- | + | ||
- | ===== Future Scope ===== | + | |
- | + | ||
- | Removing probability based GC. | + | |
- | + | ||
- | ===== Proposed Voting Choices ===== | + | |
- | + | ||
- | VOTE: 2014/XX/XX - 2014/XX/XX | + | |
- | <doodle title=" | + | <doodle title=" |
- | | + | |
- | | + | |
- | * Option 2 (Modify save handlers) | + | |
</ | </ | ||
- | State whether this project requires a 2/3 or 50%+1 majority (see [[voting]]) | ||
===== Patches and Tests ===== | ===== Patches and Tests ===== | ||
- | TBD | + | * https:// |
===== Implementation ===== | ===== Implementation ===== | ||
Line 86: | Line 57: | ||
After the project is implemented, | After the project is implemented, | ||
- the version(s) it was merged to | - the version(s) it was merged to | ||
+ | - PHP 7.1 and master branch (Merged to PHP 7.1 also by RM permission) | ||
- a link to the git commit(s) | - a link to the git commit(s) | ||
+ | - http:// | ||
- a link to the PHP manual entry for the feature | - a link to the PHP manual entry for the feature | ||
+ | - http:// | ||
===== References ===== | ===== References ===== | ||
- | Links to external references, discussions or RFCs | + | * https:// |
- | + | ||
- | ===== Rejected Features ===== | + | |
- | + | ||
- | Keep this updated with features that were discussed on the mail lists. | + |
rfc/session-gc.1394680803.txt.gz · Last modified: 2017/09/22 13:28 (external edit)