[#] [Перевод] Когда использовать статические методы
habrabot(difrex,1) — All
2016-03-23 15:30:02


_ Использовать ли статические методы? Да, когда они не зависят от внутреннего состояния объекта._ В обсуждениях к [посту][1] ([перевод][2]) о именованных конструкторах прозвучало мнение, что статические методы плохи и их вообще не стоит использовать. На мой взгляд, это слишком большое обобщение. Статические методы по сути своей просто способ организации глобальных функций в пространства имен. Использование пространств имен, я думаю, вы согласитесь — хороший тон. Что касается глобальных функций — мы используем их всегда, встроенные функции PHP составляют основу нашего кода. Основная проблема здесь — отсутствие совместно используемого глобального состояния. Вот пример из прошлого поста:

<?php
$time = Time::from("11:45");


В данном примере возвращаемый результат свободен от побочных эффектов и вполне предсказуем, т.к. зависит только от аргументов, подаваемых на вход. Каждый раз при вызове метода вам будет возвращен идентичный результат (объект Time со значением 11:45), вне зависимости от состояния системы, контекста или чего-либо еще. [Читать дальше →][3]

[1]: http://verraes.net/2014/06/named-constructors-in-php/
[2]: https://habrahabr.ru/post/279919/
[3]: https://habrahabr.ru/post/279921/#habracut