====== PHP RFC: Change terminology to ExcludeList ====== * Version: 0.9 * Date: 2020-06-09 * Author: MichaƂ Marcin Brzuchalski * Status: Draft * Target Version: PHP 8.0 * First Published at: https://wiki.php.net/rfc/change-terminology-to-excludelist Change the use of "blacklist" in Opcache configuration with better self-descriptive terminology. ===== Introduction ===== The word "blacklist" require additional context to figure out the exact intention of a specific configuration. This proposal suggest to change this to a name that better reflects what the functionality does. ===== Proposal ===== The proposal is to replace all occurrences of "blacklist" to the alternative "exclude_list". A list of Open Source projects with similar terminology change is listed in [[https://wiki.php.net/rfc/change-terminology-to-allowlist-and-blocklist#references|references]] section. There is also a draft [[https://tools.ietf.org/id/draft-knodel-terminology-00.html|IETF document]]. ==== Change INI directive name ==== A new INI directive called ''opcache.exclude_list_filename'' will be introduced and will configure the same internal value as the already existing ''opcache.blacklist_filename''. The INI directive called ''opcache.blacklist_filename'' will remain as is but with additional soft-deprecation in the docs and in ''php.ini-development'' and ''php.ini-production''. ==== Change in opcache_get_configuration function ==== The ''opcache_get_configuration()'' function currently returns an associative array with information about Opcache. A new key named ''exclude_list'' will be added to resulting array with the same value as the original ''blacklist'' key which will remain untouched with additional soft-deprecation in the docs. ===== Backward Incompatible Changes ===== Most of the changes are internal only with two exceptions for which this patch requires RFC: - The new ''opcache.exclude_list_filename'' INI directive - An extra ''exclude_list'' key in the returned array value of ''opcache_get_configuration()'' Whether the use of the ''opcache.blacklist_filename'' INI directive triggers a deprecation notice is a subject to a secondary vote. ===== Proposed PHP Version(s) ===== Next PHP version 8.0. ===== RFC Impact ===== ==== To SAPIs ==== None. ==== To Existing Extensions ==== Only in Opcache. ==== To Opcache ==== This proposal modifies Opcache structure and function names by replacing "blacklist" with "exclude_list". ==== php.ini Defaults ==== * php.ini-development changed name of ''opcache.blacklist_filename'' into ''opcache.exclude_list_filename'' * php.ini-production changed name of ''opcache.blacklist_filename'' into ''opcache.exclude__filename'' ===== Future scope ===== The possibility to remove ''opcache.blacklist_filename'' INI directive and ''opcache_get_configuration()["exclude_list"]'' in the next minor PHP version: 8.1. ===== Proposed Voting Choices ===== Accept changing terminology in PHP 8.0? Yes/No with 2/3 majority required. Add deprecation notice when deprecated INI directive used? Yes/No ===== Implementation ===== - [[https://github.com/php/php-src/pull/5685]] ===== References ===== - [[https://github.com/sebastianbergmann/phpunit/blob/master/ChangeLog-9.3.md#930---2020-08-07|PHPUnit]] - [[https://github.com/xdebug/xdebug/commit/63b43b51e43b794cf8cd740e54089b2b7320fbe1|Xdebug]] - [[https://www.drupal.org/project/drupal/issues/2993575|Drupal]] - [[https://gitlab.com/gitlab-org/gitlab/-/issues/7554|Gitlab]] - [[https://go-review.googlesource.com/c/go/+/236857/|GoLang]] - [[https://github.com/rails/rails/issues/33677|RoR]] - [[https://github.com/rubocop-hq/rubocop/pull/7469|Ruby Static Analyser]]