Пример использования 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();