Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

PHP compatibility of LTS version #2884

Open
michael-e opened this issue Feb 18, 2019 · 4 comments
Open

PHP compatibility of LTS version #2884

michael-e opened this issue Feb 18, 2019 · 4 comments

Comments

@michael-e
Copy link
Member

michael-e commented Feb 18, 2019

Affected Symphony version(s) : LTS

The current Symphony version is an "LTS" (Long Term Support) version. However, PHP compatibility is limited to PHP 7.1. Active support for PHP 7.1 has already ended, and security support will end on December 1st, nine months from now (see http://php.net/supported-versions.php). How bad.

My suggestion is to release a 2.8.0 LTS version and mark it compatible with PHP 7.3.

I already run one of my smaller web apps on PHP 7.3, and the changes required were not too difficult. I will also make my — legendary — "big system" run on PHP 7.3, and of course I am willing to share any findings and fixes.

Until now I discovered only two significant issues with PHP 7.3. (BTW, here is a nice overwview of the changes: https://ayesh.me/Upgrade-PHP-7.3.)

  1. PHP's migration from PCRE to PCRE2 library requires to change some Regex expressions in the Symphony core. It's no big deal (and even backwards compatible).

  2. The introduction of a JsonException class in PHP requires to rename Symphony's JSONException class in order to prevent a name clash. In pure theory renaming the class is a breaking change, but I really wouldn't care in this case — who would ever use this exception except the JSON class itself?

I can send corresponding PRs, and I suggest to open a 2.8.x branch for this.

@nitriques
Copy link
Member

While LTS ends soon, I do not oppose it. Please submit both PR on 2.7.x for now.

@nitriques
Copy link
Member

@michael-e What about doing if class_exists('JSONException') before we declare the custom implementation ? Both should work (albeit they won't have the same error messages).

@michael-e
Copy link
Member Author

I wouldn't oppose this solution either, but I prefer to rename the Symphony class. e.g. to SymJSONException. This, at least theoretically, allows custom error handling in Symphony.

@michael-e
Copy link
Member Author

OK, done. Please take a look and comment.

All my systems are on PHP 7.3 now, so chances are that I will notice any hickups if they still occur. :-)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants