Skip to content

Commit 54c00f5

Browse files
authored
Merge pull request #8 from PHPCompatibility/feature/update-for-phpcompatibility-9.0-and-new-rulesets
Version 2.0.0 / Update for PHPCompatibility 9.0.0
2 parents 3192dbf + 861ee2c commit 54c00f5

7 files changed

Lines changed: 71 additions & 199 deletions

File tree

.gitattributes

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,8 @@
55
/.gitattributes export-ignore
66
/.gitignore export-ignore
77
/.travis.yml export-ignore
8-
/.github export-ignore
8+
/.github/ export-ignore
9+
/Test/ export-ignore
910

1011
#
1112
# Auto detect text files and perform LF normalization

.github/issue_template.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ This repository is only for the Joomla PHPCompatibility ruleset, which prevents
33
44
If your issue is related to the PHPCompatibility sniffs, please open an issue in the PHPCompatibility repository: https://github.com/PHPCompatibility/PHPCompatibility/issues
55
6-
Before opening a new issue, please search for duplicate issues to prevent opening a duplicate. If there is already an open issue, please leave a comment there.
6+
Before opening a new issue, please search for your issue to prevent opening a duplicate. If there is already an open issue, please leave a comment there.
77
88
If you are opening an issue to get a new back-fill / poly-fill which was added to Joomla excluded, please include links to the Joomla source code to substantiate your request.
99

.travis.yml

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,6 @@ language: php
1010
## Cache composer downloads.
1111
cache:
1212
directories:
13-
# Cache directory for older Composer versions.
14-
- $HOME/.composer/cache/files
15-
# Cache directory for more recent Composer versions.
1613
- $HOME/.cache/composer/files
1714

1815
matrix:
@@ -30,6 +27,7 @@ before_install:
3027
- if [[ $COVERALLS_VERSION == "notset" ]]; then phpenv config-rm xdebug.ini || echo 'No xdebug config.'; fi
3128
- export XMLLINT_INDENT=" "
3229
- composer install
30+
- vendor/bin/phpcs -i
3331

3432
script:
3533
- |
@@ -42,6 +40,9 @@ script:
4240
diff -B ./PHPCompatibilityJoomla/ruleset.xml <(xmllint --format "./PHPCompatibilityJoomla/ruleset.xml")
4341
fi
4442
43+
# Test the ruleset.
44+
- vendor/bin/phpcs ./Test/JoomlaTest.php --standard=PHPCompatibilityJoomla --runtime-set testVersion 5.3
45+
4546
# Validate the composer.json file.
4647
# @link https://getcomposer.org/doc/03-cli.md#validate
4748
- composer validate --no-check-all --strict

PHPCompatibilityJoomla/ruleset.xml

Lines changed: 12 additions & 160 deletions
Original file line numberDiff line numberDiff line change
@@ -4,175 +4,27 @@
44

55
<!--
66
The Joomla minimum PHP requirement is PHP 5.3.10.
7-
Add the following in your project PHPCS ruleset to enforce this:
7+
Add the following in your project PHP_CodeSniffer ruleset to enforce this:
88
<config name="testVersion" value="5.3-"/>
99
1010
This directive is not included in this ruleset as individual projects may use
1111
a different (higher) minimum PHP version.
1212
-->
1313

1414
<rule ref="PHPCompatibility">
15-
<!-- Via `ircmaxell/password-compat` -->
16-
<exclude name="PHPCompatibility.PHP.NewConstants.password_bcryptFound"/>
17-
<exclude name="PHPCompatibility.PHP.NewConstants.password_bcrypt_default_costFound"/>
18-
<exclude name="PHPCompatibility.PHP.NewConstants.password_defaultFound"/>
19-
<exclude name="PHPCompatibility.PHP.NewFunctions.password_get_infoFound"/>
20-
<exclude name="PHPCompatibility.PHP.NewFunctions.password_hashFound"/>
21-
<exclude name="PHPCompatibility.PHP.NewFunctions.password_needs_rehashFound"/>
22-
<exclude name="PHPCompatibility.PHP.NewFunctions.password_verifyFound"/>
23-
24-
<!-- Via `joomla/compat` -->
25-
<exclude name="PHPCompatibility.PHP.NewClasses.callbackfilteriteratorFound"/>
26-
<exclude name="PHPCompatibility.PHP.NewInterfaces.jsonserializableFound"/>
27-
28-
<!-- Via `paragonie/random_compat` -->
29-
<exclude name="PHPCompatibility.PHP.NewClasses.errorFound"/>
30-
<exclude name="PHPCompatibility.PHP.NewClasses.typeerrorFound"/>
31-
<exclude name="PHPCompatibility.PHP.NewFunctions.random_intFound"/>
32-
<exclude name="PHPCompatibility.PHP.NewFunctions.random_bytesFound"/>
33-
34-
<!-- Via `paragonie/sodium_compat` -->
35-
<exclude name="PHPCompatibility.PHP.NewConstants.sodium_crypto_aead_chacha20poly1305_keybytesFound"/>
36-
<exclude name="PHPCompatibility.PHP.NewConstants.sodium_crypto_aead_chacha20poly1305_nsecbytesFound"/>
37-
<exclude name="PHPCompatibility.PHP.NewConstants.sodium_crypto_aead_chacha20poly1305_npubbytesFound"/>
38-
<exclude name="PHPCompatibility.PHP.NewConstants.sodium_crypto_aead_chacha20poly1305_abytesFound"/>
39-
<exclude name="PHPCompatibility.PHP.NewConstants.sodium_crypto_aead_aes256gcm_keybytesFound"/>
40-
<exclude name="PHPCompatibility.PHP.NewConstants.sodium_crypto_aead_aes256gcm_nsecbytesFound"/>
41-
<exclude name="PHPCompatibility.PHP.NewConstants.sodium_crypto_aead_aes256gcm_npubbytesFound"/>
42-
<exclude name="PHPCompatibility.PHP.NewConstants.sodium_crypto_aead_aes256gcm_abytesFound"/>
43-
<exclude name="PHPCompatibility.PHP.NewConstants.sodium_crypto_aead_chacha20poly1305_ietf_keybytesFound"/>
44-
<exclude name="PHPCompatibility.PHP.NewConstants.sodium_crypto_aead_chacha20poly1305_ietf_nsecbytesFound"/>
45-
<exclude name="PHPCompatibility.PHP.NewConstants.sodium_crypto_aead_chacha20poly1305_ietf_npubbytesFound"/>
46-
<exclude name="PHPCompatibility.PHP.NewConstants.sodium_crypto_aead_chacha20poly1305_ietf_abytesFound"/>
47-
<exclude name="PHPCompatibility.PHP.NewConstants.sodium_crypto_auth_bytesFound"/>
48-
<exclude name="PHPCompatibility.PHP.NewConstants.sodium_crypto_auth_keybytesFound"/>
49-
<exclude name="PHPCompatibility.PHP.NewConstants.sodium_crypto_box_sealbytesFound"/>
50-
<exclude name="PHPCompatibility.PHP.NewConstants.sodium_crypto_box_secretkeybytesFound"/>
51-
<exclude name="PHPCompatibility.PHP.NewConstants.sodium_crypto_box_publickeybytesFound"/>
52-
<exclude name="PHPCompatibility.PHP.NewConstants.sodium_crypto_box_keypairbytesFound"/>
53-
<exclude name="PHPCompatibility.PHP.NewConstants.sodium_crypto_box_macbytesFound"/>
54-
<exclude name="PHPCompatibility.PHP.NewConstants.sodium_crypto_box_noncebytesFound"/>
55-
<exclude name="PHPCompatibility.PHP.NewConstants.sodium_crypto_box_seedbytesFound"/>
56-
<exclude name="PHPCompatibility.PHP.NewConstants.sodium_crypto_kx_bytesFound"/>
57-
<exclude name="PHPCompatibility.PHP.NewConstants.sodium_crypto_kx_publickeybytesFound"/>
58-
<exclude name="PHPCompatibility.PHP.NewConstants.sodium_crypto_kx_secretkeybytesFound"/>
59-
<exclude name="PHPCompatibility.PHP.NewConstants.sodium_crypto_kx_seedbytesFound"/>
60-
<exclude name="PHPCompatibility.PHP.NewConstants.sodium_crypto_generichash_bytesFound"/>
61-
<exclude name="PHPCompatibility.PHP.NewConstants.sodium_crypto_generichash_bytes_minFound"/>
62-
<exclude name="PHPCompatibility.PHP.NewConstants.sodium_crypto_generichash_bytes_maxFound"/>
63-
<exclude name="PHPCompatibility.PHP.NewConstants.sodium_crypto_generichash_keybytesFound"/>
64-
<exclude name="PHPCompatibility.PHP.NewConstants.sodium_crypto_generichash_keybytes_minFound"/>
65-
<exclude name="PHPCompatibility.PHP.NewConstants.sodium_crypto_generichash_keybytes_maxFound"/>
66-
<exclude name="PHPCompatibility.PHP.NewConstants.sodium_crypto_pwhash_saltbytesFound"/>
67-
<exclude name="PHPCompatibility.PHP.NewConstants.sodium_crypto_pwhash_strprefixFound"/>
68-
<exclude name="PHPCompatibility.PHP.NewConstants.sodium_crypto_pwhash_alg_argon2i13Found"/>
69-
<exclude name="PHPCompatibility.PHP.NewConstants.sodium_crypto_pwhash_alg_argon2id13Found"/>
70-
<exclude name="PHPCompatibility.PHP.NewConstants.sodium_crypto_pwhash_memlimit_interactiveFound"/>
71-
<exclude name="PHPCompatibility.PHP.NewConstants.sodium_crypto_pwhash_opslimit_interactiveFound"/>
72-
<exclude name="PHPCompatibility.PHP.NewConstants.sodium_crypto_pwhash_memlimit_moderateFound"/>
73-
<exclude name="PHPCompatibility.PHP.NewConstants.sodium_crypto_pwhash_opslimit_moderateFound"/>
74-
<exclude name="PHPCompatibility.PHP.NewConstants.sodium_crypto_pwhash_memlimit_sensitiveFound"/>
75-
<exclude name="PHPCompatibility.PHP.NewConstants.sodium_crypto_pwhash_opslimit_sensitiveFound"/>
76-
<exclude name="PHPCompatibility.PHP.NewConstants.sodium_crypto_scalarmult_bytesFound"/>
77-
<exclude name="PHPCompatibility.PHP.NewConstants.sodium_crypto_scalarmult_scalarbytesFound"/>
78-
<exclude name="PHPCompatibility.PHP.NewConstants.sodium_crypto_shorthash_bytesFound"/>
79-
<exclude name="PHPCompatibility.PHP.NewConstants.sodium_crypto_shorthash_keybytesFound"/>
80-
<exclude name="PHPCompatibility.PHP.NewConstants.sodium_crypto_secretbox_keybytesFound"/>
81-
<exclude name="PHPCompatibility.PHP.NewConstants.sodium_crypto_secretbox_macbytesFound"/>
82-
<exclude name="PHPCompatibility.PHP.NewConstants.sodium_crypto_secretbox_noncebytesFound"/>
83-
<exclude name="PHPCompatibility.PHP.NewConstants.sodium_crypto_sign_bytesFound"/>
84-
<exclude name="PHPCompatibility.PHP.NewConstants.sodium_crypto_sign_seedbytesFound"/>
85-
<exclude name="PHPCompatibility.PHP.NewConstants.sodium_crypto_sign_publickeybytesFound"/>
86-
<exclude name="PHPCompatibility.PHP.NewConstants.sodium_crypto_sign_secretkeybytesFound"/>
87-
<exclude name="PHPCompatibility.PHP.NewConstants.sodium_crypto_sign_keypairbytesFound"/>
88-
<exclude name="PHPCompatibility.PHP.NewConstants.sodium_crypto_stream_keybytesFound"/>
89-
<exclude name="PHPCompatibility.PHP.NewConstants.sodium_crypto_stream_noncebytesFound"/>
90-
<exclude name="PHPCompatibility.PHP.NewFunctions.sodium_bin2hexFound"/>
91-
<exclude name="PHPCompatibility.PHP.NewFunctions.sodium_compareFound"/>
92-
<exclude name="PHPCompatibility.PHP.NewFunctions.sodium_crypto_aead_aes256gcm_decryptFound"/>
93-
<exclude name="PHPCompatibility.PHP.NewFunctions.sodium_crypto_aead_aes256gcm_encryptFound"/>
94-
<exclude name="PHPCompatibility.PHP.NewFunctions.sodium_crypto_aead_aes256gcm_is_availableFound"/>
95-
<exclude name="PHPCompatibility.PHP.NewFunctions.sodium_crypto_aead_chacha20poly1305_decryptFound"/>
96-
<exclude name="PHPCompatibility.PHP.NewFunctions.sodium_crypto_aead_chacha20poly1305_encryptFound"/>
97-
<exclude name="PHPCompatibility.PHP.NewFunctions.sodium_crypto_aead_chacha20poly1305_keygenFound"/>
98-
<exclude name="PHPCompatibility.PHP.NewFunctions.sodium_crypto_aead_chacha20poly1305_ietf_decryptFound"/>
99-
<exclude name="PHPCompatibility.PHP.NewFunctions.sodium_crypto_aead_chacha20poly1305_ietf_encryptFound"/>
100-
<exclude name="PHPCompatibility.PHP.NewFunctions.sodium_crypto_aead_chacha20poly1305_ietf_keygenFound"/>
101-
<exclude name="PHPCompatibility.PHP.NewFunctions.sodium_crypto_aead_xchacha20poly1305_ietf_decryptFound"/>
102-
<exclude name="PHPCompatibility.PHP.NewFunctions.sodium_crypto_aead_xchacha20poly1305_ietf_encryptFound"/>
103-
<exclude name="PHPCompatibility.PHP.NewFunctions.sodium_crypto_aead_xchacha20poly1305_ietf_keygenFound"/>
104-
<exclude name="PHPCompatibility.PHP.NewFunctions.sodium_crypto_authFound"/>
105-
<exclude name="PHPCompatibility.PHP.NewFunctions.sodium_crypto_auth_keygenFound"/>
106-
<exclude name="PHPCompatibility.PHP.NewFunctions.sodium_crypto_auth_verifyFound"/>
107-
<exclude name="PHPCompatibility.PHP.NewFunctions.sodium_crypto_boxFound"/>
108-
<exclude name="PHPCompatibility.PHP.NewFunctions.sodium_crypto_box_keypairFound"/>
109-
<exclude name="PHPCompatibility.PHP.NewFunctions.sodium_crypto_box_keypair_from_secretkey_and_publickeyFound"/>
110-
<exclude name="PHPCompatibility.PHP.NewFunctions.sodium_crypto_box_openFound"/>
111-
<exclude name="PHPCompatibility.PHP.NewFunctions.sodium_crypto_box_publickeyFound"/>
112-
<exclude name="PHPCompatibility.PHP.NewFunctions.sodium_crypto_box_publickey_from_secretkeyFound"/>
113-
<exclude name="PHPCompatibility.PHP.NewFunctions.sodium_crypto_box_sealFound"/>
114-
<exclude name="PHPCompatibility.PHP.NewFunctions.sodium_crypto_box_seal_openFound"/>
115-
<exclude name="PHPCompatibility.PHP.NewFunctions.sodium_crypto_box_secretkeyFound"/>
116-
<exclude name="PHPCompatibility.PHP.NewFunctions.sodium_crypto_box_seed_keypairFound"/>
117-
<exclude name="PHPCompatibility.PHP.NewFunctions.sodium_crypto_generichashFound"/>
118-
<exclude name="PHPCompatibility.PHP.NewFunctions.sodium_crypto_generichash_finalFound"/>
119-
<exclude name="PHPCompatibility.PHP.NewFunctions.sodium_crypto_generichash_initFound"/>
120-
<exclude name="PHPCompatibility.PHP.NewFunctions.sodium_crypto_generichash_keygenFound"/>
121-
<exclude name="PHPCompatibility.PHP.NewFunctions.sodium_crypto_generichash_updateFound"/>
122-
<exclude name="PHPCompatibility.PHP.NewFunctions.sodium_crypto_kxFound"/>
123-
<exclude name="PHPCompatibility.PHP.NewFunctions.sodium_crypto_pwhashFound"/>
124-
<exclude name="PHPCompatibility.PHP.NewFunctions.sodium_crypto_pwhash_strFound"/>
125-
<exclude name="PHPCompatibility.PHP.NewFunctions.sodium_crypto_pwhash_str_verifyFound"/>
126-
<exclude name="PHPCompatibility.PHP.NewFunctions.sodium_crypto_pwhash_scryptsalsa208sha256Found"/>
127-
<exclude name="PHPCompatibility.PHP.NewFunctions.sodium_crypto_pwhash_scryptsalsa208sha256_strFound"/>
128-
<exclude name="PHPCompatibility.PHP.NewFunctions.sodium_crypto_pwhash_scryptsalsa208sha256_str_verifyFound"/>
129-
<exclude name="PHPCompatibility.PHP.NewFunctions.sodium_crypto_scalarmultFound"/>
130-
<exclude name="PHPCompatibility.PHP.NewFunctions.sodium_crypto_scalarmult_baseFound"/>
131-
<exclude name="PHPCompatibility.PHP.NewFunctions.sodium_crypto_secretboxFound"/>
132-
<exclude name="PHPCompatibility.PHP.NewFunctions.sodium_crypto_secretbox_keygenFound"/>
133-
<exclude name="PHPCompatibility.PHP.NewFunctions.sodium_crypto_secretbox_openFound"/>
134-
<exclude name="PHPCompatibility.PHP.NewFunctions.sodium_crypto_shorthashFound"/>
135-
<exclude name="PHPCompatibility.PHP.NewFunctions.sodium_crypto_shorthash_keygenFound"/>
136-
<exclude name="PHPCompatibility.PHP.NewFunctions.sodium_crypto_signFound"/>
137-
<exclude name="PHPCompatibility.PHP.NewFunctions.sodium_crypto_sign_detachedFound"/>
138-
<exclude name="PHPCompatibility.PHP.NewFunctions.sodium_crypto_sign_keypairFound"/>
139-
<exclude name="PHPCompatibility.PHP.NewFunctions.sodium_crypto_sign_openFound"/>
140-
<exclude name="PHPCompatibility.PHP.NewFunctions.sodium_crypto_sign_publickeyFound"/>
141-
<exclude name="PHPCompatibility.PHP.NewFunctions.sodium_crypto_sign_publickey_from_secretkeyFound"/>
142-
<exclude name="PHPCompatibility.PHP.NewFunctions.sodium_crypto_sign_secretkeyFound"/>
143-
<exclude name="PHPCompatibility.PHP.NewFunctions.sodium_crypto_sign_seed_keypairFound"/>
144-
<exclude name="PHPCompatibility.PHP.NewFunctions.sodium_crypto_sign_verify_detachedFound"/>
145-
<exclude name="PHPCompatibility.PHP.NewFunctions.sodium_crypto_sign_ed25519_pk_to_curve25519Found"/>
146-
<exclude name="PHPCompatibility.PHP.NewFunctions.sodium_crypto_sign_ed25519_sk_to_curve25519Found"/>
147-
<exclude name="PHPCompatibility.PHP.NewFunctions.sodium_crypto_streamFound"/>
148-
<exclude name="PHPCompatibility.PHP.NewFunctions.sodium_crypto_stream_keygenFound"/>
149-
<exclude name="PHPCompatibility.PHP.NewFunctions.sodium_crypto_stream_xorFound"/>
150-
<exclude name="PHPCompatibility.PHP.NewFunctions.sodium_hex2binFound"/>
151-
<exclude name="PHPCompatibility.PHP.NewFunctions.sodium_incrementFound"/>
152-
<exclude name="PHPCompatibility.PHP.NewFunctions.sodium_library_version_majorFound"/>
153-
<exclude name="PHPCompatibility.PHP.NewFunctions.sodium_library_version_minorFound"/>
154-
<exclude name="PHPCompatibility.PHP.NewFunctions.sodium_version_stringFound"/>
155-
<exclude name="PHPCompatibility.PHP.NewFunctions.sodium_memcmpFound"/>
156-
<exclude name="PHPCompatibility.PHP.NewFunctions.sodium_memzeroFound"/>
157-
<exclude name="PHPCompatibility.PHP.NewFunctions.sodium_randombytes_bufFound"/>
158-
<exclude name="PHPCompatibility.PHP.NewFunctions.sodium_randombytes_uniformFound"/>
159-
<exclude name="PHPCompatibility.PHP.NewFunctions.sodium_randombytes_random16Found"/>
15+
<!-- https://github.com/joomla-framework/compat/tree/master/src -->
16+
<exclude name="PHPCompatibility.Classes.NewClasses.callbackfilteriteratorFound"/>
17+
<exclude name="PHPCompatibility.Interfaces.NewInterfaces.jsonserializableFound"/>
18+
</rule>
16019

161-
<!-- Via `symfony/polyfill-php55` -->
162-
<exclude name="PHPCompatibility.PHP.NewFunctions.array_columnFound"/>
163-
<exclude name="PHPCompatibility.PHP.NewFunctions.boolvalFound"/>
164-
<exclude name="PHPCompatibility.PHP.NewFunctions.hash_pbkdf2Found"/>
165-
<exclude name="PHPCompatibility.PHP.NewFunctions.json_last_error_msgFound"/>
20+
<!-- https://github.com/joomla/joomla-cms/blob/staging/composer.json -->
16621

167-
<!-- Via `symfony/polyfill-php56` -->
168-
<exclude name="PHPCompatibility.PHP.NewFunctions.hash_equalsFound"/>
169-
<exclude name="PHPCompatibility.PHP.NewFunctions.ldap_escapeFound"/>
22+
<!-- Includes Paragonie random_compat. -->
23+
<rule ref="PHPCompatibilityParagonieSodiumCompat"/>
17024

171-
<!-- Via `symfony/polyfill-php73` -->
172-
<exclude name="PHPCompatibility.PHP.NewFunctions.is_countableFound"/>
173-
<exclude name="PHPCompatibility.PHP.NewFunctions.hrtimeFound"/>
174-
<exclude name="PHPCompatibility.PHP.NewFunctions.array_key_firstFound"/>
175-
<exclude name="PHPCompatibility.PHP.NewFunctions.array_key_lastFound"/>
176-
</rule>
25+
<!-- Includes ircmaxell password_compat. -->
26+
<rule ref="PHPCompatibilitySymfonyPolyfillPHP55"/>
27+
<rule ref="PHPCompatibilitySymfonyPolyfillPHP56"/>
28+
<rule ref="PHPCompatibilitySymfonyPolyfillPHP73"/>
17729

17830
</ruleset>

0 commit comments

Comments
 (0)