rfc:my_rfc

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
Last revisionBoth sides next revision
rfc:my_rfc [2015/01/31 00:37] – created yohgakirfc:my_rfc [2017/09/22 13:28] – external edit 127.0.0.1
Line 1: Line 1:
-====== PHP RFC: Your Title Here ====== +====== PHP RFC: Deprecate INI set/get aliases ====== 
-  * Version: 0.9+  * Version: 0.1
   * Date: 2015-01-31   * Date: 2015-01-31
   * Author: Yasuo Ohgaki <yohgaki@ohgaki.net>   * Author: Yasuo Ohgaki <yohgaki@ohgaki.net>
Line 10: Line 10:
 There are number of INI set/get functions. This RFC proposes deprecation of these functions. There are number of INI set/get functions. This RFC proposes deprecation of these functions.
  
-===== Proposal =====+Use of ini_set()/ini_get() simplifies/improves/cleanups PHP. Some of these alias function names is inconsistent, some aliases are missing while similar INI setting may be set/get by aliases. Simple INI set/get alias functions are just making PHP complex, creating more inconsistencies. PHP needs no more INI set/get aliases at least, document use of ini_get()/ini_set() in the CODING_STANDARDS.
  
-Use of ini_set()/ini_get() simplifies/improves PHP. PHP needs no more INI set/get aliases at least, document use of ini_get()/ini_set() in the CODING_STANDARDS. 
  
-Pros +**Pros** 
- - Less API, hence simpler API. +  - Less API, hence simpler API. 
- - Modules will be less buggy.  +  - Modules will be less buggy. i.e. PHP_INI_MH() must handle "state" properly, but it tends to be forgotten, 3rd party modules especially.  
-    i.e. PHP_INI_MH() must handle "state" properly, but it tends to be forgotten, 3rd party modules especially.  +  - Consistent coding style/API across modules, both internal and script. 
- - Consistent coding style/API across modules, both internal and script. +  - Reduced documentations. INI descriptions are only in INI section. 
- - Reduced documentations. INI descriptions are only in INI section. +  - Less documentations, hence less documentation bugs. 
- - Less documentations, hence less documentation bugs. +  - Better documentation. All user needs to know will be in INI section. 
- - Better documentation. All user needs to know will be in INI section. +  - Awareness of INI setting use. Users are better to know they are using INI. i.e. All INI values has the same limitations, INI_SYSTEM/INI_PERDIR/INI_USER, stage limitations if any. 
- - Awareness of INI setting use. Users are better to know they are using INI. i.e. All INI values has the same limitations, INI_SYSTEM/INI_PERDIR/INI_USER, stage limitations if any. +  - (Please point it out more advantages)
- - (Please point it out more advantages)+
  
-Cons +**Cons** 
- - Existing code modifications. (It's E_DEPRECATED. User may ignore.) +  - Existing code modifications. (It's E_DEPRECATED. User may ignore.) 
- - (Please point it out more disadvantages)+  - (Please point it out more disadvantages) 
 + 
 + 
 +**Before** 
 +<code php> 
 +<?php 
 +// Setup environment 
 +session_cache_limiter('public'); 
 +session_name('MYSESS'); 
 +session_save_path('/var/php/session'); 
 +ini_set('max_execution_time', 15); 
 +ini_set('display_errors', 'Off'); 
 +ini_set('default_charset', 'UTF-8'); 
 +mb_internal_encoding('UTF-8'); 
 +</code> 
 + 
 +**After** 
 +<code php> 
 +<?php 
 +// Setup environment 
 +ini_set('session.cache_limiter', 'public'); 
 +ini_set('session.name', 'MYSESS'); 
 +ini_set('session.save_path', '/var/php/session'); 
 +ini_set('max_execution_time', 15); 
 +ini_set('display_errors', 'Off'); 
 +ini_set('default_charset', 'UTF-8'); 
 +ini_set('mbstring.internal_encoding', 'UTF-8'); 
 +</code> 
 + 
 + 
 + 
 + 
 +**From pre RFC discussion:** 
 + 
 +  removing or disrupting functions without a very good reason 
 +  (such as, functionality going away or this function is abused or is   
 +  broken in many use cases) is wrong. These functions don't seem broken, 
 +  they just do something that you can do in another way. I don't think it 
 +  is necessary to deprecated them. (Stas) 
 + 
 + 
 + 
 + 
 + 
 +===== Proposal =====
  
 +There are 2 documentation and 1 code change proposal.  
  
-1. Add plain ini_get/set() usage in CODING_STANDARDS. In the "Code Implementation" session add following standard.+1. Add plain ini_get/set() usage in **CODING_STANDARDS**. In the "Code Implementation" session add following standard.
  
   10.  Use ini_set()/ini_get() function when modules need to change INI values. Do not add simple ini_set()/ini_get()   10.  Use ini_set()/ini_get() function when modules need to change INI values. Do not add simple ini_set()/ini_get()
        alias functions.        alias functions.
  
-2. Document INI set/get alias functions.+2. Document INI set/get alias functions in the **PHP Manual**.
  
 e.g. e.g.
  
- - http://php.net/manual/en/function.session-save-path.php +  - http://php.net/manual/en/function.session-save-path.php 
- - http://php.net/manual/en/function.session-module-name.php +  - http://php.net/manual/en/function.session-module-name.php 
- - http://php.net/manual/en/function.session-cache-expire.php +  - http://php.net/manual/en/function.session-cache-expire.php 
- - http://php.net/manual/en/function.session-cache-limiter.php +  - http://php.net/manual/en/function.session-cache-limiter.php 
- - http://php.net/manual/en/function.session-name.php +  - http://php.net/manual/en/function.session-name.php 
- - http://php.net/manual/en/function.gc-enable.php +  - http://php.net/manual/en/function.gc-enable.php 
- - http://php.net/manual/en/function.set-include-path.php +  - http://php.net/manual/en/function.set-include-path.php 
- - http://php.net/manual/en/function.set-time-limit.php +  - http://php.net/manual/en/function.set-time-limit.php 
- - http://php.net/manual/en/function.error-reporting.php +  - http://php.net/manual/en/function.error-reporting.php 
- - http://php.net/manual/en/function.mb-internal-encoding.php +  - http://php.net/manual/en/function.mb-internal-encoding.php 
- - http://php.net/manual/en/function.mb-detect-order.php +  - http://php.net/manual/en/function.mb-detect-order.php 
- - http://php.net/manual/en/function.mb-language.php +  - http://php.net/manual/en/function.mb-language.php 
- - http://php.net/manual/en/function.iconv-set-encoding.php +  - http://php.net/manual/en/function.iconv-set-encoding.php 
- - And more.+  - And more.
  
-3. Raise E_DEPRICATE errors for INI set/get alias functions.+3. Add **E_DEPRICATED** errors for INI set/get alias functions.
  
  
Line 61: Line 104:
 1. None for CODING_STANDARD documentation. 1. None for CODING_STANDARD documentation.
  
-2. None for deprecation documentation in the manual.+2. None for deprecation documentation in the PHP manual.
  
-3. E_DEPRECATE error may be ignored+3. E_DEPRECATED error may be ignored
  
  
Line 103: Line 146:
 ===== Open Issues ===== ===== Open Issues =====
  
-None+Decided exceptionsCandidates are 
 + 
 + - Zend/Core functions that changes INI. e.g. gc_enable. 
  
 ===== Unaffected PHP Functionality ===== ===== Unaffected PHP Functionality =====
rfc/my_rfc.txt · Last modified: 2022/04/05 18:30 by imsop