- added some documentation
- added type-hints
pull/11660/head
Roland Häder 6 months ago
parent 97904ea7dd
commit 14bf72e4fe
Signed by untrusted user: roland
GPG Key ID: C82EDE5DDFA0BA77
  1. 2
      mod/fbrowser.php
  2. 9
      src/Console/Addon.php
  3. 14
      src/Core/Addon.php
  4. 30
      src/Core/Hook.php
  5. 26
      src/Core/L10n.php
  6. 37
      src/Core/Theme.php

@ -47,7 +47,7 @@ function fbrowser_content(App $a)
}
// Needed to match the correct template in a module that uses a different theme than the user/site/default
$theme = Strings::sanitizeFilePathItem($_GET['theme'] ?? null);
$theme = Strings::sanitizeFilePathItem($_GET['theme'] ?? '');
if ($theme && is_file("view/theme/$theme/config.php")) {
$a->setCurrentTheme($theme);
}

@ -116,8 +116,7 @@ HELP;
/**
* Lists plugins
*
* @return int Return code of this command
*
* @return int|bool Return code of this command, false on error (?)
* @throws \Exception
*/
private function list()
@ -165,10 +164,9 @@ HELP;
* Enables an addon
*
* @return int Return code of this command
*
* @throws \Exception
*/
private function enable()
private function enable(): int
{
$addonname = $this->getArgument(1);
@ -190,10 +188,9 @@ HELP;
* Disables an addon
*
* @return int Return code of this command
*
* @throws \Exception
*/
private function disable()
private function disable(): int
{
$addonname = $this->getArgument(1);

@ -124,7 +124,7 @@ class Addon
* @return void
* @throws \Exception
*/
public static function uninstall($addon)
public static function uninstall(string $addon)
{
$addon = Strings::sanitizeFilePathItem($addon);
@ -149,7 +149,7 @@ class Addon
* @return bool
* @throws \Exception
*/
public static function install($addon)
public static function install(string $addon): bool
{
$addon = Strings::sanitizeFilePathItem($addon);
@ -185,6 +185,8 @@ class Addon
/**
* reload all updated addons
*
* @return void
*/
public static function reload()
{
@ -222,7 +224,7 @@ class Addon
* @return array with the addon information
* @throws \Exception
*/
public static function getInfo($addon)
public static function getInfo(string $addon): array
{
$addon = Strings::sanitizeFilePathItem($addon);
@ -287,7 +289,7 @@ class Addon
* @param string $addon
* @return boolean
*/
public static function isEnabled($addon)
public static function isEnabled(string $addon): bool
{
return in_array($addon, self::$addons);
}
@ -297,7 +299,7 @@ class Addon
*
* @return array
*/
public static function getEnabledList()
public static function getEnabledList(): array
{
return self::$addons;
}
@ -308,7 +310,7 @@ class Addon
* @return array
* @throws \Exception
*/
public static function getVisibleList()
public static function getVisibleList(): array
{
$visible_addons = [];
$stmt = DBA::select('addon', ['name'], ['hidden' => false, 'installed' => true]);

@ -49,6 +49,8 @@ class Hook
/**
* Load hooks
*
* @return void
*/
public static function loadHooks()
{
@ -69,8 +71,9 @@ class Hook
* @param string $hook
* @param string $file
* @param string $function
* @return void
*/
public static function add($hook, $file, $function)
public static function add(string $hook, string $file, string $function)
{
if (!array_key_exists($hook, self::$hooks)) {
self::$hooks[$hook] = [];
@ -90,7 +93,7 @@ class Hook
* @return mixed|bool
* @throws \Friendica\Network\HTTPException\InternalServerErrorException
*/
public static function register($hook, $file, $function, $priority = 0)
public static function register(string $hook, string $file, string $function, int $priority = 0)
{
$file = str_replace(DI::app()->getBasePath() . DIRECTORY_SEPARATOR, '', $file);
@ -111,7 +114,7 @@ class Hook
* @return boolean
* @throws \Friendica\Network\HTTPException\InternalServerErrorException
*/
public static function unregister($hook, $file, $function)
public static function unregister(string $hook, string $file, string $function): bool
{
$relative_file = str_replace(DI::app()->getBasePath() . DIRECTORY_SEPARATOR, '', $file);
@ -120,8 +123,8 @@ class Hook
self::delete($condition);
$condition = ['hook' => $hook, 'file' => $relative_file, 'function' => $function];
$result = self::delete($condition);
return $result;
return self::delete($condition);
}
/**
@ -130,7 +133,7 @@ class Hook
* @param string $name Name of the hook
* @return array
*/
public static function getByName($name)
public static function getByName(string $name): array
{
$return = [];
@ -149,9 +152,10 @@ class Hook
* @param integer $priority of the hook
* @param string $name of the hook to call
* @param mixed $data to transmit to the callback handler
* @return void
* @throws \Friendica\Network\HTTPException\InternalServerErrorException
*/
public static function fork($priority, $name, $data = null)
public static function fork(int $priority, string $name, $data = null)
{
if (array_key_exists($name, self::$hooks)) {
foreach (self::$hooks[$name] as $hook) {
@ -184,9 +188,10 @@ class Hook
*
* @param string $name of the hook to call
* @param string|array &$data to transmit to the callback handler
* @return void
* @throws \Friendica\Network\HTTPException\InternalServerErrorException
*/
public static function callAll($name, &$data = null)
public static function callAll(string $name, &$data = null)
{
if (array_key_exists($name, self::$hooks)) {
foreach (self::$hooks[$name] as $hook) {
@ -202,9 +207,10 @@ class Hook
* @param string $name of the hook to call
* @param array $hook Hook data
* @param string|array &$data to transmit to the callback handler
* @return void
* @throws \Friendica\Network\HTTPException\InternalServerErrorException
*/
public static function callSingle(App $a, $name, $hook, &$data = null)
public static function callSingle(App $a, string $name, array $hook, &$data = null)
{
// Don't run a theme's hook if the user isn't using the theme
if (strpos($hook[0], 'view/theme/') !== false && strpos($hook[0], 'view/theme/' . $a->getCurrentTheme()) === false) {
@ -229,7 +235,7 @@ class Hook
* @param string $name Name of the addon
* @return boolean
*/
public static function isAddonApp($name)
public static function isAddonApp(string $name): bool
{
$name = Strings::sanitizeFilePathItem($name);
@ -253,7 +259,7 @@ class Hook
* @return bool
* @throws \Exception
*/
public static function delete(array $condition)
public static function delete(array $condition): bool
{
$result = DBA::delete('hook', $condition);
@ -273,7 +279,7 @@ class Hook
* @return bool
* @throws \Exception
*/
private static function insert(array $condition)
private static function insert(array $condition): bool
{
$result = DBA::insert('hook', $condition);

@ -128,7 +128,7 @@ class L10n
private function setLangFromSession(IHandleSessions $session)
{
if ($session->get('language') !== $this->lang) {
$this->loadTranslationTable($session->get('language'));
$this->loadTranslationTable($session->get('language') ?? $this->lang);
}
}
@ -140,10 +140,10 @@ class L10n
* Uses an App object shim since all the strings files refer to $a->strings
*
* @param string $lang language code to load
*
* @return void
* @throws \Exception
*/
private function loadTranslationTable($lang)
private function loadTranslationTable(string $lang)
{
$lang = Strings::sanitizeFilePathItem($lang);
@ -183,7 +183,7 @@ class L10n
*
* @return string The two-letter language code
*/
public static function detectLanguage(array $server, array $get, string $sysLang = self::DEFAULT)
public static function detectLanguage(array $server, array $get, string $sysLang = self::DEFAULT): string
{
$lang_variable = $server['HTTP_ACCEPT_LANGUAGE'] ?? null;
@ -269,7 +269,7 @@ class L10n
*
* @return string
*/
public function t($s, ...$vars)
public function t(array $s, ...$vars): string
{
if (empty($s)) {
return '';
@ -307,7 +307,7 @@ class L10n
* @return string
* @throws \Exception
*/
public function tt(string $singular, string $plural, int $count)
public function tt(string $singular, string $plural, int $count): string
{
$s = null;
@ -352,7 +352,7 @@ class L10n
*
* @return bool
*/
private function stringPluralSelectDefault($n)
private function stringPluralSelectDefault(int $n): bool
{
return $n != 1;
}
@ -369,7 +369,7 @@ class L10n
*
* @return array
*/
public static function getAvailableLanguages()
public static function getAvailableLanguages(): array
{
$langs = [];
$strings_file_paths = glob('view/lang/*/strings.php');
@ -391,10 +391,9 @@ class L10n
* Translate days and months names.
*
* @param string $s String with day or month name.
*
* @return string Translated string.
*/
public function getDay($s)
public function getDay(string $s): string
{
$ret = str_replace(['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday'],
[$this->t('Monday'), $this->t('Tuesday'), $this->t('Wednesday'), $this->t('Thursday'), $this->t('Friday'), $this->t('Saturday'), $this->t('Sunday')],
@ -411,10 +410,9 @@ class L10n
* Translate short days and months names.
*
* @param string $s String with short day or month name.
*
* @return string Translated string.
*/
public function getDayShort($s)
public function getDayShort(string $s): string
{
$ret = str_replace(['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'],
[$this->t('Mon'), $this->t('Tue'), $this->t('Wed'), $this->t('Thu'), $this->t('Fri'), $this->t('Sat'), $this->t('Sun')],
@ -435,7 +433,7 @@ class L10n
* @throws \Friendica\Network\HTTPException\InternalServerErrorException
* @hook poke_verbs pokes array
*/
public function getPokeVerbs()
public function getPokeVerbs(): array
{
// index is present tense verb
// value is array containing past tense verb, translation of present, translation of past
@ -461,7 +459,7 @@ class L10n
* @return static A new L10n instance
* @throws \Exception
*/
public function withLang(string $lang)
public function withLang(string $lang): L10n
{
// Don't create a new instance for same language
if ($lang === $this->lang) {

@ -32,7 +32,7 @@ require_once 'boot.php';
*/
class Theme
{
public static function getAllowedList()
public static function getAllowedList(): array
{
$allowed_themes_str = DI::config()->get('system', 'allowed_themes');
$allowed_themes_raw = explode(',', str_replace(' ', '', $allowed_themes_str));
@ -69,7 +69,7 @@ class Theme
* @param string $theme the name of the theme
* @return array
*/
public static function getInfo($theme)
public static function getInfo(string $theme): array
{
$theme = Strings::sanitizeFilePathItem($theme);
@ -133,7 +133,7 @@ class Theme
* @return string
* @throws \Friendica\Network\HTTPException\InternalServerErrorException
*/
public static function getScreenshot($theme)
public static function getScreenshot(string $theme): string
{
$theme = Strings::sanitizeFilePathItem($theme);
@ -146,7 +146,13 @@ class Theme
return DI::baseUrl() . '/images/blank.png';
}
public static function uninstall($theme)
/**
* Uninstalls given theme name
*
* @param string $theme Name of theme
* @return bool true on success
*/
public static function uninstall(string $theme)
{
$theme = Strings::sanitizeFilePathItem($theme);
@ -167,10 +173,18 @@ class Theme
if ($key !== false) {
unset($allowed_themes[$key]);
Theme::setAllowedList($allowed_themes);
return true;
}
return false;
}
public static function install($theme)
/**
* Installs given theme name
*
* @param string $theme Name of theme
* @return bool true on success
*/
public static function install(string $theme): bool
{
$theme = Strings::sanitizeFilePathItem($theme);
@ -208,7 +222,7 @@ class Theme
* @return string Path to the file or empty string if the file isn't found
* @throws \Exception
*/
public static function getPathForFile($file)
public static function getPathForFile(string $file): string
{
$a = DI::app();
@ -237,10 +251,9 @@ class Theme
* Provide a sane default if nothing is chosen or the specified theme does not exist.
*
* @param string $theme Theme name
*
* @return string
*/
public static function getStylesheetPath($theme)
public static function getStylesheetPath(string $theme): string
{
$theme = Strings::sanitizeFilePathItem($theme);
@ -263,10 +276,10 @@ class Theme
/**
* Returns the path of the provided theme
*
* @param $theme
* @param string $theme Theme name
* @return string|null
*/
public static function getConfigFile($theme)
public static function getConfigFile(string $theme)
{
$theme = Strings::sanitizeFilePathItem($theme);
@ -285,11 +298,11 @@ class Theme
/**
* Returns the background color of the provided theme if available.
*
* @param string $theme
* @param string $theme Theme name
* @param int|null $uid Current logged-in user id
* @return string|null
*/
public static function getBackgroundColor(string $theme, $uid = null)
public static function getBackgroundColor(string $theme, int $uid = null)
{
$theme = Strings::sanitizeFilePathItem($theme);

Loading…
Cancel
Save