## Problem Templates often use heredoc: ```php $html = <<<HTML <div>{$name}</motion> HTML; ``` Unclear if php-cfg + compiler lower this today; needs audit and PHPT. ## Goal Heredoc/nowdoc with interpolation (heredoc) and without (nowdoc) compile to string concat / literal on VM and JIT. ## Implementation plan 1. Add compliance PHPT with simple heredoc + variable interpolation. 2. If parser fails, fix nikic/php-parser / php-cfg path (**#113**). 3. Compiler: ensure `Op\Expr\Const_` or dedicated node lowers to string ops. 4. JIT: string concat path (**#82** / existing concat JIT). ## Acceptance criteria - [ ] Heredoc/nowdoc PHPT pass VM + JIT (when **#98** runs) - [ ] **#67** templates can use heredoc for HTML blocks
Problem
Templates often use heredoc:
Unclear if php-cfg + compiler lower this today; needs audit and PHPT.
Goal
Heredoc/nowdoc with interpolation (heredoc) and without (nowdoc) compile to string concat / literal on VM and JIT.
Implementation plan
Op\Expr\Const_or dedicated node lowers to string ops.Acceptance criteria