Nette Documentation Preview

syntax
Migración de PHP a Latte
************************

.[perex]
¿Está convirtiendo a Latte un proyecto antiguo escrito en PHP puro? Tenemos una herramienta que le facilitará la migración. [Pruébela en línea |https://fiddle.nette.org/php2latte/].

Puede descargar la herramienta desde [GitHub|https://github.com/nette/latte-tools] o instalarla con Composer:

```shell
composer create-project latte/tools
```

El conversor no se basa en simples sustituciones con expresiones regulares, sino que usa el analizador real de PHP, lo que le permite manejar una sintaxis arbitrariamente compleja.

Para convertir de PHP a Latte se usa el script `php-to-latte.php`:

```shell
php php-to-latte.php input.php [output.latte]
```


Ejemplo
-------

Un archivo de entrada podría tener este aspecto (es parte del código del foro PunBB):

```php
<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>
```

Genera esta plantilla:

```latte
<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>
```

Migración de PHP a Latte

¿Está convirtiendo a Latte un proyecto antiguo escrito en PHP puro? Tenemos una herramienta que le facilitará la migración. Pruébela en línea.

Puede descargar la herramienta desde GitHub o instalarla con Composer:

composer create-project latte/tools

El conversor no se basa en simples sustituciones con expresiones regulares, sino que usa el analizador real de PHP, lo que le permite manejar una sintaxis arbitrariamente compleja.

Para convertir de PHP a Latte se usa el script php-to-latte.php:

php php-to-latte.php input.php [output.latte]

Ejemplo

Un archivo de entrada podría tener este aspecto (es parte del código del foro 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>

Genera esta plantilla:

<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>