Chatgpt vytrvale rika, ze pro reusable components se to dela v PHP takto:
// components/Button.php
function Button($text, $href) {
return "<a href=\"" . htmlspecialchars($href) . "\">$text</a>";
}
A potom:
$html = Button('OK', '/submit');
echo $html;
A to je takový piece of crap, že bych raději udělal:
<?php $text = 'Ahoj světe'; $href = 'page2.php'; include 'nav-button.php' ?>
Ačkoliv lepší je si udělat funkci a zavolat jen:
<?php render('nav-button', text = 'Ahoj světe', href = 'page2.php') ?>
Fakt, že Chatgpt v jednom kuse říká takové věci k otázkám k PHP, a výše uvedené nedá nikdy dohromady, v kombinaci s tím, že se dívám do zdrojáků Dokuwiki a vidím:
protected function showMenuItem($item)
{
global $ID;
if (blank($item['prompt'])) return;
echo '<li><div class="li">';
echo '<a href="' . wl($ID, 'do=admin&page=' . $item['plugin']) . '">';
echo '<span class="icon">';
echo inlineSVG($item['icon']);
echo '</span>';
echo '<span class="prompt">';
echo $item['prompt'];
echo '</span>';
echo '</a>';
echo '</div></li>';
}
Mi indikuje, že v PHP se psaly zjevně strašné crappy. Je jen pár základních konstrukcí, co má umět template:
1. If else
2. Foreach
3. A jak se pracuje s fragmenty (reusable components)
Jsou to jen tyhle výše uvedené 3 základy, a pro tu poslední nemá PHP řešení. No, dá se udělat ta funkce viz výše, ale zjevně to historicky v praxi nikdo nedělal. A z Chatgpt to taky nejde vymáčknout.