Я хотел бы иметь небольшой модуль php. Этот модуль будет иметь методы, которые являются чистыми функциями. Итак, это просто набор функций. Все функции получают несколько аргументов и возвращают результат в зависимости только от входных параметров.
У меня есть несколько предложений:
1. Статический класс
PHP не имеет реального статического класса, поэтому я просто создаю класс со всеми статическими методами:
class Some_Module
{
static public function sum($a, $b, $c)
{
return $a+$b+$c;
}
static public function method2($a, $b)
{
return $a-$b+5;
}
}
Использовать такие модули очень просто:
$x = Some_module::sum(1,2,3);
Но я слышал (есть много тем по SO), что статический - плохая практика.
2. Singleton
Это не так просто в использовании:
// we should not to forget to get instance
$module_instance = new Some_module;
$x = $module_instance->sum(1,2,3);
Неудобство заключается в том, что мы должны сейчас инициализировать этот модуль.
Кроме того, существует огромное количество тем по SO, где объясняется, почему Singleton не полезен в PHP, поэтому это тоже плохая практика.
Какой шаблон использовать для такого модуля?