Migrace z PHP do Latte
Převádíte starší projekt napsaný v čistém PHP na Latte? Máme pro vás nástroj, který tento proces výrazně zjednoduší. Vyzkoušejte jej online.
Tento užitečný nástroj můžete získat dvěma způsoby:
- Stáhnout z GitHubu
- Nainstalovat pomocí Composeru:
composer create-project latte/tools
Na rozdíl od jednoduchých nástrojů využívajících regulární výrazy, tento převodník používá sofistikovaný PHP parser. Díky tomu si poradí i s komplexní PHP syntaxí.
Pro převod z PHP do Latte použijte skript php-to-latte.php
:
php-to-latte.php input.php [output.latte]
Příklad použití
Podívejme se na konkrétní příklad. Níže je ukázka vstupního PHP souboru (část kódu fóra PunBB):
<h1><span><?= $lang_common['User list'] ?></span></h1>
<div class="blockform">
<form id="userlist" method="get" action="userlist.php">
<div class="infldset">
<?php
foreach ($result as $cur_group) {
if ($cur_group['g_id'] == $show_group) {
echo "\n\t\t" . '<option value="' . $cur_group['g_id'] . '" selected="selected">'
. htmlspecialchars($cur_group['g_title']) . '</option>';
} else {
echo "\n\t\t" . '<option value="' . $cur_group['g_id'] . '">'
. htmlspecialchars($cur_group['g_title']) . '</option>';
}
}
?>
</select>
<p class="clearb"><?= $lang_ul['User search info'] ?></p>
</div>
</form>
</div>
Po zpracování nástrojem získáme následující Latte šablonu:
<h1><span>{$lang_common['User list']}</span></h1>
<div class="blockform">
<form id="userlist" method="get" action="userlist.php">
<div class="infldset">
{foreach $result as $cur_group}
{if $cur_group[g_id] == $show_group}
<option value="{$cur_group[g_id]}" selected="selected">{$cur_group[g_title]}</option>
{else}
<option value="{$cur_group[g_id]}">{$cur_group[g_title]}</option>
{/if}
{/foreach} </select>
<p class="clearb">{$lang_ul['User search info']}</p>
</div>
</form>
</div>
Hlavní výhody tohoto převodu:
- Čistší syntaxe: Latte šablona je čitelnější a snáze udržovatelná.
- Automatické escapování: Latte automaticky escapuje výstup, čímž zvyšuje bezpečnost (např.
htmlspecialchars()
již není potřeba). - Lepší struktura: Latte tagy (
{foreach}
,{if}
) jasně oddělují logiku od prezentace. - Zjednodušení: Odstraňuje nutnost explicitního výpisu pomocí
echo
.
Tento nástroj významně urychluje a zjednodušuje proces migrace z PHP na Latte, což vám umožní rychleji modernizovat vaše projekty a využít všech výhod, které Latte nabízí.