Ну вообще, то, что вы описываете, похоже на partial шаблонизатора
С php знаком слабо. В Rails все понятно.
В php простейшие "партиалы" у меня получались так:
class View{
public function render($template, $locals=array()){
ob_start();
extract($locals);
$View = new View();
include("/path/to/partials/${template}.php");
return ob_get_clean();
}
}
fullAction:
echo $View->render('news', array('action'=>'edit));
Можно рендерить партиал в партиале.
Только замечу, что решение ужасное, т.к. не особо в теме. Но вот в Rails эти вещи решают хелперы form builder и шаблонизаторы. Думаю, в любом php фреймворке есть что-то аналогичное