rfc:my_rfc

Differences

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

Link to this comparison view

Next revision
Previous revision
rfc:my_rfc [2015/01/31 00:37]
yohgaki created
rfc:my_rfc [2017/09/22 13:28] (current)
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.1422664624.txt.gz · Last modified: 2017/09/22 13:28 (external edit)