aboutsummaryrefslogtreecommitdiff
path: root/app
diff options
context:
space:
mode:
authorGravatar Alexandre Alapetite <alexandre@alapetite.fr> 2019-08-20 14:55:43 +0200
committerGravatar GitHub <noreply@github.com> 2019-08-20 14:55:43 +0200
commitfd33d92d413acb5ee48e04d8a78f251e35ef06c5 (patch)
tree494f54d132e9b305ec91f5c8736b633bdedfb298 /app
parent38a4b22f7bb2eb51c5224d2a340e199d6a280797 (diff)
Require PHP 5.5+ (#2495)
* Require PHP 5.5+ https://github.com/FreshRSS/FreshRSS/issues/2469#issuecomment-522255093 I think it would be reasonable to require PHP 5.5+ for the core of FreshRSS after all. As Frenzie said, WordPress currently requires PHP 5.6.20+, and it is the most popular PHP application. We would loose about 20% of the PHP servers according to https://w3techs.com/technologies/details/pl-php/5/all but I expect this number to drop fast after the release of CentOS 8 (CentOS accounts for 17% of Linux servers https://w3techs.com/technologies/details/os-linux/all/all ). Distributions: * no impact on Ubuntu, Fedora, Alpine, OpenWRT, FreeBSD, OpenSuze, Mageia, as all active versions have PHP > 7 * no impact on OpenSuze, Synology, as all active versions have PHP > 5.5 * we drop Debian 8 Jessie (-2020) - we keep supporting Debian 9 Stretch (2017-06) - current is Debian 10 Buster * we drop Red Hat 7 (-2024) - we keep supporting RHEL 8 (2019-05) * we drop CentOS 7 (-2024) - we will support CentOS 8 (to be released soonish) When dropping older versions, I can better like when it is for a good reason, and there is actually one with PHP 5.5, namely generators (yield) https://php.net/language.generators.overview which I consider using. * Version note for JSON.php * hex2bin * Update .travis.yml Co-Authored-By: Frans de Jonge <fransdejonge@gmail.com>
Diffstat (limited to 'app')
-rw-r--r--app/Controllers/authController.php4
-rw-r--r--app/Controllers/userController.php3
-rw-r--r--app/Models/Auth.php7
-rw-r--r--app/Models/EntryDAO.php4
-rw-r--r--app/install.php2
-rw-r--r--app/views/helpers/export/articles.phtml5
-rw-r--r--app/views/update/checkInstall.phtml2
7 files changed, 6 insertions, 21 deletions
diff --git a/app/Controllers/authController.php b/app/Controllers/authController.php
index ca44b1a96..e06a26399 100644
--- a/app/Controllers/authController.php
+++ b/app/Controllers/authController.php
@@ -169,10 +169,6 @@ class FreshRSS_auth_Controller extends Minz_ActionController {
return;
}
- if (!function_exists('password_verify')) {
- include_once(LIB_PATH . '/password_compat.php');
- }
-
$s = $conf->passwordHash;
$ok = password_verify($password, $s);
unset($password);
diff --git a/app/Controllers/userController.php b/app/Controllers/userController.php
index bf9084930..c1c27a4ab 100644
--- a/app/Controllers/userController.php
+++ b/app/Controllers/userController.php
@@ -9,9 +9,6 @@ class FreshRSS_user_Controller extends Minz_ActionController {
const BCRYPT_COST = 9;
public static function hashPassword($passwordPlain) {
- if (!function_exists('password_hash')) {
- include_once(LIB_PATH . '/password_compat.php');
- }
$passwordHash = password_hash($passwordPlain, PASSWORD_BCRYPT, array('cost' => self::BCRYPT_COST));
$passwordPlain = '';
$passwordHash = preg_replace('/^\$2[xy]\$/', '\$2a\$', $passwordHash); //Compatibility with bcrypt.js
diff --git a/app/Models/Auth.php b/app/Models/Auth.php
index 6d079a01f..b7fb0e6d6 100644
--- a/app/Models/Auth.php
+++ b/app/Models/Auth.php
@@ -219,10 +219,6 @@ class FreshRSS_FormAuth {
return false;
}
- if (!function_exists('password_verify')) {
- include_once(LIB_PATH . '/password_compat.php');
- }
-
return password_verify($nonce . $hash, $challenge);
}
@@ -283,8 +279,7 @@ class FreshRSS_FormAuth {
$cookie_duration = empty($limits['cookie_duration']) ? 2592000 : $limits['cookie_duration'];
$oldest = time() - $cookie_duration;
foreach (new DirectoryIterator(DATA_PATH . '/tokens/') as $file_info) {
- // $extension = $file_info->getExtension(); doesn't work in PHP < 5.3.7
- $extension = pathinfo($file_info->getFilename(), PATHINFO_EXTENSION);
+ $extension = $file_info->getExtension();
if ($extension === 'txt' && $file_info->getMTime() < $oldest) {
@unlink($file_info->getPathname());
}
diff --git a/app/Models/EntryDAO.php b/app/Models/EntryDAO.php
index b47cd55ad..1b2786a6a 100644
--- a/app/Models/EntryDAO.php
+++ b/app/Models/EntryDAO.php
@@ -191,7 +191,7 @@ class FreshRSS_EntryDAO extends Minz_ModelPdo implements FreshRSS_Searchable {
if ($this->hasNativeHex()) {
$this->addEntryPrepared->bindParam(':hash', $valuesTmp['hash']);
} else {
- $valuesTmp['hashBin'] = pack('H*', $valuesTmp['hash']); //hex2bin() is PHP5.4+
+ $valuesTmp['hashBin'] = hex2bin($valuesTmp['hash']);
$this->addEntryPrepared->bindParam(':hash', $valuesTmp['hashBin']);
}
}
@@ -273,7 +273,7 @@ class FreshRSS_EntryDAO extends Minz_ModelPdo implements FreshRSS_Searchable {
if ($this->hasNativeHex()) {
$this->updateEntryPrepared->bindParam(':hash', $valuesTmp['hash']);
} else {
- $valuesTmp['hashBin'] = pack('H*', $valuesTmp['hash']); //hex2bin() is PHP5.4+
+ $valuesTmp['hashBin'] = hex2bin($valuesTmp['hash']);
$this->updateEntryPrepared->bindParam(':hash', $valuesTmp['hashBin']);
}
diff --git a/app/install.php b/app/install.php
index 961a7c171..8e14d14c0 100644
--- a/app/install.php
+++ b/app/install.php
@@ -413,7 +413,7 @@ function printStep1() {
<?php if ($res['php'] == 'ok') { ?>
<p class="alert alert-success"><span class="alert-head"><?php echo _t('gen.short.ok'); ?></span> <?php echo _t('install.check.php.ok', PHP_VERSION); ?></p>
<?php } else { ?>
- <p class="alert alert-error"><span class="alert-head"><?php echo _t('gen.short.damn'); ?></span> <?php echo _t('install.check.php.nok', PHP_VERSION, '5.3.8'); ?></p>
+ <p class="alert alert-error"><span class="alert-head"><?php echo _t('gen.short.damn'); ?></span> <?php echo _t('install.check.php.nok', PHP_VERSION, '5.5.0'); ?></p>
<?php } ?>
<?php if ($res['minz'] == 'ok') { ?>
diff --git a/app/views/helpers/export/articles.phtml b/app/views/helpers/export/articles.phtml
index 2d1fcd133..0bbfb86ec 100644
--- a/app/views/helpers/export/articles.phtml
+++ b/app/views/helpers/export/articles.phtml
@@ -1,10 +1,7 @@
<?php
$username = Minz_Session::param('currentUser', '_');
-$options = 0;
-if (version_compare(PHP_VERSION, '5.4.0') >= 0) {
- $options = JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE;
-}
+$options = JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE;
$articles = array(
'id' => 'user/' . str_replace('/', '', $username) . '/state/org.freshrss/' . $this->type,
diff --git a/app/views/update/checkInstall.phtml b/app/views/update/checkInstall.phtml
index 33d78cbe7..e719e53dd 100644
--- a/app/views/update/checkInstall.phtml
+++ b/app/views/update/checkInstall.phtml
@@ -9,7 +9,7 @@
<p class="alert <?php echo $status ? 'alert-success' : 'alert-error'; ?>">
<?php
if ($key === 'php') {
- echo _t('admin.check_install.' . $key . '.' . ($status ? 'ok' : 'nok'), PHP_VERSION, '5.3.8');
+ echo _t('admin.check_install.' . $key . '.' . ($status ? 'ok' : 'nok'), PHP_VERSION, '5.5.0');
} else {
echo _t('admin.check_install.' . $key . '.' . ($status ? 'ok' : 'nok'));
}