TL;DR Just use plain variable placeholder on the views.
No arithmetic expressions, string concatenations, function calls, etc.
// profile.php
?>
<p>
<?= htmlspecialchars($user->firstName . ' ' . $user->lastName) ?>
</p>// profile_view.php
?>
<p><?= $fullName ?></p>// profile.php
$fullName = $user->firstName . ' ' . $user->lastName;
$fullName = htmlspecialchars($fullName);
include './profile_view.php';No if-elses, switch-cases and conditionals.
// product_form.php
?>
<h1><?= $product->id ? 'Edit' : 'Add' ?> Product</h1>// product_form_view.php
?>
<h1><?= $title ?></h1>// product_form.php
$title = ($product->id ? 'Edit' : 'Add') . ' Product';
include './product_form_view.php';No for, foreach, do, while, array_map, array_filter, etc.
// user_list.php
?>
<ul>
<?php foreach ($users as $user): ?>
<li><?= htmlspecialchars($user->name) ?></li>
<?php endforeach ?>
</ul>// user_list_item.php
?>
<li><?= $name ?></li>// user_list_view.php
?>
<ul><?php $user_items ?></ul>// user_list.php
ob_start();
foreach ($users as $user) {
$name = $user->name;
include './user_list_item.php';
}
$user_items = ob_get_clean();
include './user_list.php';