Nette Documentation Preview

syntax
Migrarea de la Twig la Latte
****************************

.[perex]
Convertiți un proiect scris în Twig la Latte, mai modern? Avem pentru dvs. un instrument care vă va facilita migrarea. [Încercați online |https://twig2latte.nette.org].

Instrumentul îl puteți descărca de pe [GitHub |https://github.com/nette/latte-tools] sau instala folosind Composer:

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

Convertorul nu utilizează înlocuiri simple folosind expresii regulate, ci, dimpotrivă, utilizează direct parserul Twig, astfel încât poate gestiona orice sintaxă, oricât de complexă.

Pentru conversia de la Twig la Latte servește scriptul `twig-to-latte.php`:

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


Conversie
---------

Conversia presupune ajustarea manuală a rezultatului, deoarece conversia nu poate fi efectuată univoc. Twig utilizează sintaxa cu punct, unde `{{ a.b }}` poate însemna `$a->b`, `$a['b']` sau `$a->getB()`, ceea ce nu poate fi distins la compilare. Convertorul, prin urmare, convertește totul la `$a->b`.

Unele funcții, filtre sau tag-uri nu au echivalent în Latte sau se pot comporta ușor diferit.


Exemplu
-------

Fișierul de intrare poate arăta, de exemplu, astfel:

```twig
{% use "blocks.twig" %}
<!DOCTYPE html>
<html>
	<head>
		<title>{{ block("title") }}</title>
	</head>
	<body>
		<h1>{% block title %}My Web{% endblock %}</h1>
		<ul id="navigation">
		{% for item in navigation %}
			{% if not item.active %}
				<li>{{ item.caption }}</li>
			{% else %}
				<li><a href="{{ item.href }}">{{ item.caption }}</a></li>
			{% endif %}
		{% endfor %}
		</ul>
	</body>
</html>
```

După conversia la Latte, obținem acest șablon:

```latte
{import 'blocks.latte'}
<!DOCTYPE html>
<html>
	<head>
		<title>{include title}</title>
	</head>
	<body>
		<h1>{block title}My Web{/block}</h1>
		<ul id="navigation">
		{foreach $navigation as $item}
			{if !$item->active}
				<li>{$item->caption}</li>
			{else}
				<li><a href="{$item->href}">{$item->caption}</a></li>
			{/if}
		{/foreach}
		</ul>
	</body>
</html>
```

{{leftbar: /@left-menu}}

Migrarea de la Twig la Latte

Convertiți un proiect scris în Twig la Latte, mai modern? Avem pentru dvs. un instrument care vă va facilita migrarea. Încercați online.

Instrumentul îl puteți descărca de pe GitHub sau instala folosind Composer:

composer create-project latte/tools

Convertorul nu utilizează înlocuiri simple folosind expresii regulate, ci, dimpotrivă, utilizează direct parserul Twig, astfel încât poate gestiona orice sintaxă, oricât de complexă.

Pentru conversia de la Twig la Latte servește scriptul twig-to-latte.php:

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

Conversie

Conversia presupune ajustarea manuală a rezultatului, deoarece conversia nu poate fi efectuată univoc. Twig utilizează sintaxa cu punct, unde {{ a.b }} poate însemna $a->b, $a['b'] sau $a->getB(), ceea ce nu poate fi distins la compilare. Convertorul, prin urmare, convertește totul la $a->b.

Unele funcții, filtre sau tag-uri nu au echivalent în Latte sau se pot comporta ușor diferit.

Exemplu

Fișierul de intrare poate arăta, de exemplu, astfel:

{% use "blocks.twig" %}
<!DOCTYPE html>
<html>
	<head>
		<title>{{ block("title") }}</title>
	</head>
	<body>
		<h1>{% block title %}My Web{% endblock %}</h1>
		<ul id="navigation">
		{% for item in navigation %}
			{% if not item.active %}
				<li>{{ item.caption }}</li>
			{% else %}
				<li><a href="{{ item.href }}">{{ item.caption }}</a></li>
			{% endif %}
		{% endfor %}
		</ul>
	</body>
</html>

După conversia la Latte, obținem acest șablon:

{import 'blocks.latte'}
<!DOCTYPE html>
<html>
	<head>
		<title>{include title}</title>
	</head>
	<body>
		<h1>{block title}My Web{/block}</h1>
		<ul id="navigation">
		{foreach $navigation as $item}
			{if !$item->active}
				<li>{$item->caption}</li>
			{else}
				<li><a href="{$item->href}">{$item->caption}</a></li>
			{/if}
		{/foreach}
		</ul>
	</body>
</html>