Ответ 1
Статическое состояние вездесущее и полностью разрушает тестируемость, поскольку вы не можете просто reset состояние. Кроме того, все может повлиять на состояние таким образом, что другие аспекты кода не могут предсказать, что приводит к потенциально непредсказуемому поведению.
Laravel 4 предотвращает это, используя статические "фасады". Эти фасады являются "синтаксическими кратковременными для разрешения IoC". Они обеспечивают как синтаксический сахар, так и предотвращают плотно связанный код.
Классы, разрешенные фасадами, могут быть изменены и позволяют вводить макетные системы или что угодно.
Конечно, на самом деле это не решает другой аспект статического доступа. Это то, что вы не можете просто вводить разные функции. Но, с приложениями Laravel, вы, как правило, не используете фасад в своем домене. Это больше для слоя веб-транспорта, где это очень полезно, поскольку уровень веб-транспорта уже тесно связан с вашей каркасной платформой, это просто хорошо использует этот факт, создавая что-то вроде DSL для этого уровня вашего приложения.
Повторяю, пожалуйста, подумайте над тем, чтобы не использовать фасады в глубине вашего домена.