
Sergey
19.03.2017
12:50:41
ну то есть смотря какую идею ты имеешь ввиду

Artem
19.03.2017
12:51:04
конкретно про блоки кода не более одной строки (в if, например)

Sergey
19.03.2017
12:51:09
ну и опять же то что будет хорошо работать для одного конкретного проекта не факт что будет работать для тебя

?
19.03.2017
12:51:22

Google

Artem
19.03.2017
12:51:30
ну вот поэтому я хочу хотя бы один пример, где это бы работало :)
хотя бы один

Sergey
19.03.2017
12:51:35

?
19.03.2017
12:51:57
там нету if'ов?

Sergey
19.03.2017
12:51:57
это работает)

Artem
19.03.2017
12:52:14

?
19.03.2017
12:52:28
Я пропустил, а чем плохи if и почему от них стоит отказываться?

Sergey
19.03.2017
12:52:28

Artem
19.03.2017
12:52:42
да я читал его, это не говорит ничего о практике

Sergey
19.03.2017
12:52:44
как по мне вполне себе "пример"

Artem
19.03.2017
12:52:50
александреску тоже многие читали

Sergey
19.03.2017
12:53:15

Google

Vadim
19.03.2017
12:53:15
мы ж вроде вчера узнали, что в иф без скобок xdebug не заходит?)

Sergey
19.03.2017
12:53:55
1. оборачивать надо всегда потому что можно проиграть когда добавляешь еще одно выражение, и мы делаем допущение что наша команда не в состоянии чуть что вынести несколько выражений как приватный метод.
2. оборачивать ненадо никогда что бы заставлять выносить несколько выражений как приватный метод

Artem
19.03.2017
12:53:58
в ту же степь дрочь на цикломатическую сложность отдельных методов. Типа давайте мы метод со сложностью 20 разобьём на 5 мелких методов и это типа нам 100% даст более лучший код
может даст, а может и не даст, потому что один метод ты можешь сразу отсмотреть одним взглядом, а 5 будут размазаны

Sergey
19.03.2017
12:54:50
качество кода проявляется только тогда когда его читает не автор
если что
а "вынесение в приватный метод" это еще один уровень абстракции

Artem
19.03.2017
12:55:55
я не за то, чтобы делать длинные методы, я за то, чтобы думать как сделать так, чтобы код был проще для понимания. Тупое следование правилам тут не всегда работает
в общем случае да - мелкие методы улучшают понимание кода, но не всё можно разбить так, чтобы получилось проще

Sergey
19.03.2017
12:57:04

Artem
19.03.2017
12:57:48
тогда о чём мы спорим

Василий
19.03.2017
12:57:51

Sergey
19.03.2017
12:58:15
тогда о чём мы спорим
я понятия не имею, я предложил еще один вариант "как можно делать" а ты захотел каких-то невнятных пруфов
тупо следовать правилам - плохая идея

Artem
19.03.2017
12:59:51

Sergey
19.03.2017
13:17:57

Google

Sergey
19.03.2017
13:18:02
как минимум)
потому и говорю)

Artem
19.03.2017
13:20:41
да я тоже стараюсь, благо early return и мелкие методы тут решают. Я подумал, что ты предлагаешь это использовать всегда без исключений

Alexander
19.03.2017
13:50:01

Roman ?
19.03.2017
13:53:18

Sergey
19.03.2017
13:54:11
тем самым можно много информационного мусора прятать
Для какой версии?
подозреваю что речь идет о подобных штуках:
```
if ($someCondition) someAction();
```
вот с такими штуками бывают проблемы

Roman ?
19.03.2017
13:55:39
ну ты не видишь куда он ушел если не зайдешь в метод

Sergey
19.03.2017
13:55:51

Roman ?
19.03.2017
13:58:18
заход в { ... } считается отдельным шагом

Alexander
19.03.2017
13:58:46

Roman ?
19.03.2017
13:59:18

Alexander
19.03.2017
14:00:27
Ага, но более точно версию не скажу, проекта нет на компе

Sergey
19.03.2017
14:16:47
ну мол я плохо знаю как работает xdebug
но что-то мне подсказывает что он подсасывается к опкодам
а с точки зрения php запись `if ($cond) action()` и `if ($cond) {action();}`

Google

Roman ?
19.03.2017
14:20:22
ну может идеа так интерпретирует
а так да, конечно, я зашел сюда чтобы наврать

Sergey
19.03.2017
14:20:25
разворачивается в одни и те же опкоды
у тебя есть опкод
5 1 > JMPZ !0, ->3
2 > ECHO 'Short'

Roman ?
19.03.2017
14:20:57

Sergey
19.03.2017
14:21:14

Roman ?
19.03.2017
14:21:20
я понимаю

Sergey
19.03.2017
14:21:23
и у тебя есть информация о бряках

Admin
ERROR: S client not available

Sergey
19.03.2017
14:21:48
у тебя переход от одного опкода до другого считается
от jmpz до echo например
и они могут быть на разных строчках
когда у тебя php выполняется информация о фигурных скобочках и любом синтаксисе теряется
потому например "тернаный оператор" через xdebug неудобно отлаживать)
https://www.youtube.com/watch?v=WzLca1nrvXE

Aleh
19.03.2017
14:26:52
ну, мол если бы бул в пыхе был чем-то аля
interface Boolean
{
public function when(callable $ifTrue, callable $ifFalse);
}
или не when, а then или тот же if

Google

Sergey
19.03.2017
14:51:32
и приняли бы arrow-functions
то всеравно ты был бы ограничен одним выражением на ветку условий
```
when($condition)->then(
() => action(),
() => alternative()
);
```

Aleh
19.03.2017
15:32:05
так типа норм

/
19.03.2017
19:54:08
напомните как можно к массиву обращатсья как к классу?
0 =>
array (size=2)
'type' => string
$obj->type

Артур
19.03.2017
19:54:55
зачем так делать?

Sergey
19.03.2017
20:32:35
(object) $arr;

/
19.03.2017
20:33:29
я понял, да так идет, когда массив не многомерный
foreach ($attachments as $k => $attachment) {
// $attachment = new \ArrayObject($attachment,\ArrayObject::ARRAY_AS_PROPS); //time fix
$attachment = (object)$attachment;
var_dump($attachment->type);
а как мне пропихнуть $attachments так
https://habrahabr.ru/post/127711/

Sergey
19.03.2017
21:43:44
ты к слову так и не ответил зачем тебе это

(;¬_¬)
19.03.2017
21:44:58

Sergey
19.03.2017
22:17:44
кошмар какой
того глядишь еще один препроцессор напишут
как это было с CWithClasses

Viktor
20.03.2017
01:02:52
PHP Warning: array_replace_recursive(): recursion detected
эмн... а как такое вообще может быть?

da horsie
20.03.2017
02:28:45
какой-то элемент массива ссылается на сам массив