HEREDOC, вмешивающийся в добавление отступа кода

Мне нравится синтаксис HEREDOC, например, для пограничных случаев сгенерированного HTML, которые не стоит помещать в шаблон.

Единственная вещь, которая раздражает меня об этом, тем не менее, состоит в том, что содержание и заключительный маркер строки heredoc придерживаются первого столбца. Это завинчивает вложенные размещения кода:

class myclass 
 { 

    function __construct()
      { 
       $a = some_code();
       $b = some_more_code();
       $x = <<<EOT

line1
line2
line3
line4

EOT;    

        $c = even_more_code();
        $b = still_more_code();
        ...
        ...
        ...

Вы видите то, что я имею в виду.

Теперь это - вероятно, не разрешимый использующий нормальный HEREDOC. Кто-либо работал вокруг этого? Моя мечта состояла бы в том, чтобы иметь синтаксис HEREDOC с автоматическим добавлением отступа. Но я предполагаю, что это не возможно, не пишущий некоторый предварительный компилятор для исходных файлов.

Я корректен?

16
задан Lightness Races with Monica 10 July 2011 в 00:46
поделиться

1 ответ

Это проблема, с которой я тоже часто сталкиваюсь: код не имеет хорошего отступа, когда я использую heredoc, а мне очень нравится heredoc :-(

Более серьезная проблема - когда вы выделяете целый блок кода, нажимаете "tab" (или любой эквивалент в вашей IDE), чтобы сделать больший отступ, потому что вы добавили условие вокруг него или что-нибудь еще... И это ломает heredoc-строки: вам приходится разворачивать их вручную :-(

К сожалению, я никогда не видел инструмента, подобного тому, который вы описываете...


Решением, я полагаю, было бы поместить строку heredoc в другой файл и включить его -- включение, как и отступы, может быть обычным; но это также означало бы загрузку еще одного файла, что сделало бы код менее понятным.

11
ответ дан 30 November 2019 в 21:36
поделиться
Другие вопросы по тегам:

Похожие вопросы: