namespacing: \Shaarli\ApplicationUtils

Signed-off-by: VirtualTam <virtualtam@flibidi.net>
This commit is contained in:
VirtualTam 2018-12-03 23:58:59 +01:00
parent bcf056c9d9
commit 9778a1551c
6 changed files with 67 additions and 62 deletions

View File

@ -1,4 +1,9 @@
<?php <?php
namespace Shaarli;
use Exception;
use Shaarli\Config\ConfigManager;
/** /**
* Shaarli (application) utilities * Shaarli (application) utilities
*/ */
@ -51,7 +56,7 @@ class ApplicationUtils
return false; return false;
} }
} else { } else {
if (! is_file($remote)) { if (!is_file($remote)) {
return false; return false;
} }
$data = file_get_contents($remote); $data = file_get_contents($remote);
@ -97,7 +102,7 @@ class ApplicationUtils
// Do not check versions for visitors // Do not check versions for visitors
// Do not check if the user doesn't want to // Do not check if the user doesn't want to
// Do not check with dev version // Do not check with dev version
if (! $isLoggedIn || empty($enableCheck) || $currentVersion === 'dev') { if (!$isLoggedIn || empty($enableCheck) || $currentVersion === 'dev') {
return false; return false;
} }
@ -111,7 +116,7 @@ class ApplicationUtils
return false; return false;
} }
if (! in_array($branch, self::$GIT_BRANCHES)) { if (!in_array($branch, self::$GIT_BRANCHES)) {
throw new Exception( throw new Exception(
'Invalid branch selected for updates: "' . $branch . '"' 'Invalid branch selected for updates: "' . $branch . '"'
); );
@ -123,7 +128,7 @@ class ApplicationUtils
self::$GIT_URL . '/' . $branch . '/' . self::$VERSION_FILE self::$GIT_URL . '/' . $branch . '/' . self::$VERSION_FILE
); );
if (! $latestVersion) { if (!$latestVersion) {
// Only update the file's modification date // Only update the file's modification date
file_put_contents($updateFile, $currentVersion); file_put_contents($updateFile, $currentVersion);
return false; return false;
@ -152,9 +157,9 @@ class ApplicationUtils
if (version_compare($curVersion, $minVersion) < 0) { if (version_compare($curVersion, $minVersion) < 0) {
$msg = t( $msg = t(
'Your PHP version is obsolete!' 'Your PHP version is obsolete!'
. ' Shaarli requires at least PHP %s, and thus cannot run.' . ' Shaarli requires at least PHP %s, and thus cannot run.'
. ' Your PHP version has known security vulnerabilities and should be' . ' Your PHP version has known security vulnerabilities and should be'
. ' updated as soon as possible.' . ' updated as soon as possible.'
); );
throw new Exception(sprintf($msg, $minVersion)); throw new Exception(sprintf($msg, $minVersion));
} }
@ -174,50 +179,50 @@ class ApplicationUtils
// Check script and template directories are readable // Check script and template directories are readable
foreach (array( foreach (array(
'application', 'application',
'inc', 'inc',
'plugins', 'plugins',
$rainTplDir, $rainTplDir,
$rainTplDir.'/'.$conf->get('resource.theme'), $rainTplDir . '/' . $conf->get('resource.theme'),
) as $path) { ) as $path) {
if (! is_readable(realpath($path))) { if (!is_readable(realpath($path))) {
$errors[] = '"'.$path.'" '. t('directory is not readable'); $errors[] = '"' . $path . '" ' . t('directory is not readable');
} }
} }
// Check cache and data directories are readable and writable // Check cache and data directories are readable and writable
foreach (array( foreach (array(
$conf->get('resource.thumbnails_cache'), $conf->get('resource.thumbnails_cache'),
$conf->get('resource.data_dir'), $conf->get('resource.data_dir'),
$conf->get('resource.page_cache'), $conf->get('resource.page_cache'),
$conf->get('resource.raintpl_tmp'), $conf->get('resource.raintpl_tmp'),
) as $path) { ) as $path) {
if (! is_readable(realpath($path))) { if (!is_readable(realpath($path))) {
$errors[] = '"'.$path.'" '. t('directory is not readable'); $errors[] = '"' . $path . '" ' . t('directory is not readable');
} }
if (! is_writable(realpath($path))) { if (!is_writable(realpath($path))) {
$errors[] = '"'.$path.'" '. t('directory is not writable'); $errors[] = '"' . $path . '" ' . t('directory is not writable');
} }
} }
// Check configuration files are readable and writable // Check configuration files are readable and writable
foreach (array( foreach (array(
$conf->getConfigFileExt(), $conf->getConfigFileExt(),
$conf->get('resource.datastore'), $conf->get('resource.datastore'),
$conf->get('resource.ban_file'), $conf->get('resource.ban_file'),
$conf->get('resource.log'), $conf->get('resource.log'),
$conf->get('resource.update_check'), $conf->get('resource.update_check'),
) as $path) { ) as $path) {
if (! is_file(realpath($path))) { if (!is_file(realpath($path))) {
# the file may not exist yet # the file may not exist yet
continue; continue;
} }
if (! is_readable(realpath($path))) { if (!is_readable(realpath($path))) {
$errors[] = '"'.$path.'" '. t('file is not readable'); $errors[] = '"' . $path . '" ' . t('file is not readable');
} }
if (! is_writable(realpath($path))) { if (!is_writable(realpath($path))) {
$errors[] = '"'.$path.'" '. t('file is not writable'); $errors[] = '"' . $path . '" ' . t('file is not writable');
} }
} }

View File

@ -2,7 +2,7 @@
namespace Shaarli\Render; namespace Shaarli\Render;
use ApplicationUtils; use Shaarli\ApplicationUtils;
use Exception; use Exception;
use Shaarli\Bookmark\LinkDB; use Shaarli\Bookmark\LinkDB;
use RainTPL; use RainTPL;

View File

@ -2,7 +2,7 @@
namespace Shaarli\Updater; namespace Shaarli\Updater;
use ApplicationUtils; use Shaarli\ApplicationUtils;
use Exception; use Exception;
use RainTPL; use RainTPL;
use ReflectionClass; use ReflectionClass;

View File

@ -56,7 +56,6 @@ require_once 'inc/rain.tpl.class.php';
require_once __DIR__ . '/vendor/autoload.php'; require_once __DIR__ . '/vendor/autoload.php';
// Shaarli library // Shaarli library
require_once 'application/ApplicationUtils.php';
require_once 'application/bookmark/LinkUtils.php'; require_once 'application/bookmark/LinkUtils.php';
require_once 'application/config/ConfigPlugin.php'; require_once 'application/config/ConfigPlugin.php';
require_once 'application/feed/Cache.php'; require_once 'application/feed/Cache.php';
@ -71,6 +70,7 @@ require_once 'application/Utils.php';
require_once 'application/PluginManager.php'; require_once 'application/PluginManager.php';
require_once 'application/Router.php'; require_once 'application/Router.php';
use \Shaarli\ApplicationUtils;
use \Shaarli\Bookmark\Exception\LinkNotFoundException; use \Shaarli\Bookmark\Exception\LinkNotFoundException;
use \Shaarli\Bookmark\LinkDB; use \Shaarli\Bookmark\LinkDB;
use \Shaarli\Config\ConfigManager; use \Shaarli\Config\ConfigManager;
@ -83,7 +83,7 @@ use \Shaarli\Render\ThemeUtils;
use \Shaarli\Security\LoginManager; use \Shaarli\Security\LoginManager;
use \Shaarli\Security\SessionManager; use \Shaarli\Security\SessionManager;
use \Shaarli\Thumbnailer; use \Shaarli\Thumbnailer;
use Shaarli\Updater\Updater; use \Shaarli\Updater\Updater;
// Ensure the PHP version is supported // Ensure the PHP version is supported
try { try {

View File

@ -1,33 +1,14 @@
<?php <?php
namespace Shaarli;
use Shaarli\Config\ConfigManager; use Shaarli\Config\ConfigManager;
/** require_once 'tests/utils/FakeApplicationUtils.php';
* ApplicationUtils' tests
*/
require_once 'application/ApplicationUtils.php';
/**
* Fake ApplicationUtils class to avoid HTTP requests
*/
class FakeApplicationUtils extends ApplicationUtils
{
public static $VERSION_CODE = '';
/**
* Toggle HTTP requests, allow overriding the version code
*/
public static function getVersion($url, $timeout = 0)
{
return self::$VERSION_CODE;
}
}
/** /**
* Unitary tests for Shaarli utilities * Unitary tests for Shaarli utilities
*/ */
class ApplicationUtilsTest extends PHPUnit_Framework_TestCase class ApplicationUtilsTest extends \PHPUnit\Framework\TestCase
{ {
protected static $testUpdateFile = 'sandbox/update.txt'; protected static $testUpdateFile = 'sandbox/update.txt';
protected static $testVersion = '0.5.0'; protected static $testVersion = '0.5.0';

View File

@ -0,0 +1,19 @@
<?php
namespace Shaarli;
/**
* Fake ApplicationUtils class to avoid HTTP requests
*/
class FakeApplicationUtils extends ApplicationUtils
{
public static $VERSION_CODE = '';
/**
* Toggle HTTP requests, allow overriding the version code
*/
public static function getVersion($url, $timeout = 0)
{
return self::$VERSION_CODE;
}
}