Lightning
Трудоголик
Статические вызовы
Иногда статические вызовы помогают мне сделать код компактнее и проще. Вот, например, если фильтры и валидаторы данных являются объектами - это очень удобно в случаях, когда нужно динамически построить цепочку фильтров/валидаторов или когда решение о выборе фильтров/валидаторов принимаются в другом методе/классе, но в простейших случаях, когда необходимо просто применить один заранее известный фильтр к данным, это только усложняет код, поэтому мне кажется что
выглядит предпочтительней чем
Кроме того, я использую статический вызов для доступа к синглтону, который является контейнером "звездных объектов", таких как БД, сессия и т.д., чтобы не передавать этот контейнер во все методы. Как-то так:
Но статические вызовы порой затрудняют блочное тестирование и имеют еще ряд недостатков.
Вопросы:
1. В каких случаях Вы используете статические вызовы?
2. Если Вы не используете статические вызовы, то как Вы реализуете описанные выше примеры?
3. Если Вы используете статические вызовы, то как Вы решаете проблемы с блочным тестированием?
Иногда статические вызовы помогают мне сделать код компактнее и проще. Вот, например, если фильтры и валидаторы данных являются объектами - это очень удобно в случаях, когда нужно динамически построить цепочку фильтров/валидаторов или когда решение о выборе фильтров/валидаторов принимаются в другом методе/классе, но в простейших случаях, когда необходимо просто применить один заранее известный фильтр к данным, это только усложняет код, поэтому мне кажется что
PHP:
if(MyValidator :: is_valid($var)) {
PHP:
$my_validator = new MyValidator();
if($my_validator->is_valid($var)) {
PHP:
$db = myframework_Context :: get_instance() -> get_db();
Вопросы:
1. В каких случаях Вы используете статические вызовы?
2. Если Вы не используете статические вызовы, то как Вы реализуете описанные выше примеры?
3. Если Вы используете статические вызовы, то как Вы решаете проблемы с блочным тестированием?
я делаю с точностью до наоборот.