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

Тэги:

Тэг в списке: