rfc:my_rfc

Differences

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

Link to this comparison view

rfc:my_rfc [2015/01/31 00:49]
yohgaki
rfc:my_rfc [2017/09/22 13:28]
Line 1: Line 1:
-====== PHP RFC: Your Title Here ====== 
-  * Version: 0.9 
-  * Date: 2015-01-31 
-  * Author: Yasuo Ohgaki <​yohgaki@ohgaki.net>​ 
-  * Status: Under Discussion 
-  * First Published at: http://​wiki.php.net/​rfc/​deprecate_ini_set_get_aliases 
- 
-===== Introduction ===== 
- 
-There are number of INI set/get functions. This RFC proposes deprecation of these functions. 
- 
-**Pros** 
-  - Less API, hence simpler API. 
-  - Modules will be less buggy. 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. 
-  - Reduced documentations. INI descriptions are only in INI section. 
-  - Less documentations,​ hence less documentation bugs. 
-  - 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. 
-  - (Please point it out more advantages) 
- 
-**Cons** 
-  - Existing code modifications. (It's E_DEPRECATED. User may ignore.) 
-  - (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'​);​ 
-mbstring_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 ===== 
- 
-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. 
- 
- 
-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() 
-       alias functions. 
- 
-2. Document INI set/get alias functions in the **PHP Manual**. 
- 
-e.g. 
- 
-  - 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-cache-expire.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.gc-enable.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.error-reporting.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-language.php 
-  - http://​php.net/​manual/​en/​function.iconv-set-encoding.php 
-  - And more. 
- 
-3. Add **E_DEPRICATE** errors for INI set/get alias functions. 
- 
- 
-===== Backward Incompatible Changes ===== 
- 
-1. None for CODING_STANDARD documentation. 
- 
-2. None for deprecation documentation in the PHP manual. 
- 
-3. E_DEPRECATE error may be ignored 
- 
- 
-===== Proposed PHP Version(s) ===== 
- 
- - PHP 7.0 
- 
-===== RFC Impact ===== 
-==== To SAPIs ==== 
- 
-No SAPI impact. 
- 
-==== To Existing Extensions ==== 
- 
-Modules that has INI set/get aliases are affected. 
- 
- - standard 
- - session 
- - mbstring 
- - iconv 
- - (and more) 
- 
-==== To Opcache ==== 
- 
-No Opcache impact. 
- 
-==== New Constants ==== 
- 
-No constant. 
- 
-==== php.ini Defaults ==== 
- 
-No changes for INI values. 
- 
-  * hardcoded default values 
-  * php.ini-development values 
-  * php.ini-production values 
- 
-===== Open Issues ===== 
- 
-None.  
- 
-===== Unaffected PHP Functionality ===== 
- 
-Functions that are not simple INI set/get aliases are not affected. ​ 
- 
-===== Future Scope ===== 
- 
-None. If proposal 3 (Add E_DEPRECATE error) is rejected, adding E_DEPRECATE error will be future decision. 
- 
-===== Proposed Voting Choices ===== 
- 
-Proposals require 50%+1 majority 
- 
- 
- 
-===== Patches and Tests ===== 
- 
-No patch is prepared as this is a trivial change. 
- 
- 
-===== Implementation ===== 
-After the project is implemented,​ this section should contain ​ 
-  - the version(s) it was merged to 
-  - a link to the git commit(s) 
-  - a link to the PHP manual entry for the feature 
- 
-===== References ===== 
- 
- 
- 
-===== Rejected Features ===== 
- 
- 
- 
  
rfc/my_rfc.txt · Last modified: 2017/09/22 13:28 (external edit)