Пример использования Singleton
Порой на проектах приходится заводить отдельные классы, содержащие в себе различные вспомогательные методы нужные для различных целей. Вместо того, чтобы создавать каждый раз экземпляр такого класса, можно воспользовать паттерном Singleton
Пример кода класса:
namespace Classes\Service;
class CustomService
{
private static $instance;
/**
* @return CustomService
*/
public static function getInstance()
{
return self::$instance === null ? self::$instance = new self() : self::$instance;
}
/**
* @desc какая-то кастомная статическая функция, возвращающая строку, например
* @param array $array1
* @param array $array2
* @return string
*/
public static function customFunc()
{
return 'Custom content';
}
}
Таким образом в сервис можно добавлять неограниченное количество каких-то вспомогательных функций, которыми потом пользоваться.
Пример вызова:
use Classes\Service\CustomService; $result = CustomService::getInstance()->customFunc();