Просмотр поста

.
Delphinum

AlkatraZ, вообще, если подумать, можно как то реализовать в функции template механизм определяющий место вызова этой функции, и если это шаблон, то не использовать ob_start, а если php скрипт, то использовать.

Как то так:

function template($path, array $assign = []){                                   
  static $bufferOff;                                                                
                                                                                
  extract($assign);                                                             
         
  // Если первый вызов, то используется ob_start                                                                       
  if(is_null($bufferOff)){                                                          
    $bufferOff = true;                                                             
    ob_start();                                                                 
    include($path);                                                             
    return ob_get_clean();                                                      
  }                                                                             
  // Для последующих вызовов буферизация не используется
  else{                                                                         
    include($path);                                                                                                                                    
  }                                                                             
}