Skip to content

Commit 032389e

Browse files
authored
Merge pull request #1 from PHPCompatibility/feature/initial-release-1.0.0
Initial commit / v 1.0.0
2 parents 8d0a355 + 6b13924 commit 032389e

7 files changed

Lines changed: 378 additions & 1 deletion

File tree

.gitattributes

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
#
2+
# Exclude these files from release archives.
3+
# https://blog.madewithlove.be/post/gitattributes/
4+
#
5+
/.gitattributes export-ignore
6+
/.gitignore export-ignore
7+
/.travis.yml export-ignore
8+
/.github export-ignore
9+
10+
#
11+
# Auto detect text files and perform LF normalization
12+
# http://davidlaing.com/2012/09/19/customise-your-gitattributes-to-become-a-git-ninja/
13+
#
14+
* text=auto

.github/issue_template.md

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
<!--
2+
This repository is only for the Joomla PHPCompatibility ruleset, which prevents false positives from the PHPCompatibility standard by excluding back-fills and poly-fills which are included by Joomla.
3+
4+
If your issue is related to the PHPCompatibility sniffs, please open an issue in the PHPCompatibility repository: https://github.com/PHPCompatibility/PHPCompatibility/issues
5+
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.
7+
8+
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.
9+
10+
Thanks!
11+
-->

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
/vendor/
2+
composer.lock

.travis.yml

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
sudo: false
2+
3+
dist: trusty
4+
5+
cache:
6+
apt: true
7+
8+
language: php
9+
10+
## Cache composer downloads.
11+
cache:
12+
directories:
13+
# Cache directory for older Composer versions.
14+
- $HOME/.composer/cache/files
15+
# Cache directory for more recent Composer versions.
16+
- $HOME/.cache/composer/files
17+
18+
matrix:
19+
fast_finish: true
20+
include:
21+
- php: 7.2
22+
addons:
23+
apt:
24+
packages:
25+
- libxml2-utils
26+
- php: 5.4
27+
28+
before_install:
29+
# Speed up build time by disabling Xdebug when its not needed.
30+
- if [[ $COVERALLS_VERSION == "notset" ]]; then phpenv config-rm xdebug.ini || echo 'No xdebug config.'; fi
31+
- export XMLLINT_INDENT=" "
32+
- composer install
33+
34+
script:
35+
- |
36+
if [[ $TRAVIS_PHP_VERSION == "7.2" ]]; then
37+
# Validate the xml file.
38+
# @link http://xmlsoft.org/xmllint.html
39+
xmllint --noout ./PHPCompatibilityJoomla/ruleset.xml
40+
41+
# Check the code-style consistency of the xml file.
42+
diff -B ./PHPCompatibilityJoomla/ruleset.xml <(xmllint --format "./PHPCompatibilityJoomla/ruleset.xml")
43+
fi
44+
45+
# Validate the composer.json file.
46+
# @link https://getcomposer.org/doc/03-cli.md#validate
47+
- composer validate --no-check-all --with-dependencies --strict

PHPCompatibilityJoomla/ruleset.xml

Lines changed: 175 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,175 @@
1+
<?xml version="1.0"?>
2+
<ruleset name="PHPCompatibilityJoomla">
3+
<description>Joomla specific ruleset which checks for PHP cross version compatibility.</description>
4+
5+
<!--
6+
The Joomla minimum PHP requirement is PHP 5.3.10.
7+
Add the following in your project PHPCS ruleset to enforce this:
8+
<config name="testVersion" value="5.3-"/>
9+
10+
This directive is not included in this ruleset as individual projects may use
11+
a different (higher) minimum PHP version.
12+
-->
13+
14+
<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"/>
160+
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"/>
166+
167+
<!-- Via `symfony/polyfill-php56` -->
168+
<exclude name="PHPCompatibility.PHP.NewFunctions.hash_equalsFound"/>
169+
<exclude name="PHPCompatibility.PHP.NewFunctions.ldap_escapeFound"/>
170+
171+
<!-- Via `symfony/polyfill-php73` -->
172+
<exclude name="PHPCompatibility.PHP.NewFunctions.is_countableFound"/>
173+
</rule>
174+
175+
</ruleset>

0 commit comments

Comments
 (0)