This is an old revision of the document!

PHP RFC: Your Title Here


There are number of INI set/get functions. This RFC proposes deprecation of these functions.


  1. Less API, hence simpler API.
  2. Modules will be less buggy. i.e. PHP_INI_MH() must handle “state” properly, but it tends to be forgotten, 3rd party modules especially.
  3. Consistent coding style/API across modules, both internal and script.
  4. Reduced documentations. INI descriptions are only in INI section.
  5. Less documentations, hence less documentation bugs.
  6. Better documentation. All user needs to know will be in INI section.
  7. 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.
  8. (Please point it out more advantages)


  1. Existing code modifications. (It's E_DEPRECATED. User may ignore.)
  2. (Please point it out more disadvantages)


// Setup environment
ini_set('max_execution_time', 15);
ini_set('display_errors', 'Off');
ini_set('default_charset', 'UTF-8');


// 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');

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)


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.


  1. 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


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


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.


After the project is implemented, this section should contain

  1. the version(s) it was merged to
  2. a link to the git commit(s)
  3. a link to the PHP manual entry for the feature


Rejected Features

rfc/my_rfc.1422665349.txt.gz · Last modified: 2017/09/22 13:28 (external edit)