{"id":53,"date":"2024-12-11T15:06:22","date_gmt":"2024-12-11T14:06:22","guid":{"rendered":"https:\/\/josefnemec.cz\/blog\/?p=53"},"modified":"2024-12-17T18:41:29","modified_gmt":"2024-12-17T17:41:29","slug":"latte-sablonovaci-jazyk-pro-moderni-weby","status":"publish","type":"post","link":"https:\/\/josefnemec.cz\/blog\/php\/latte-sablonovaci-jazyk-pro-moderni-weby\/","title":{"rendered":"Latte \u2013 \u0160ablonovac\u00ed jazyk pro modern\u00ed weby"},"content":{"rendered":"\n<p>Latte je popul\u00e1rn\u00ed \u0161ablonovac\u00ed jazyk vytvo\u0159en\u00fd pro PHP, kter\u00fd klade d\u016fraz na bezpe\u010dnost, p\u0159\u00edv\u011btivost a flexibilitu. Jedn\u00e1 se o n\u00e1stroj ur\u010den\u00fd prim\u00e1rn\u011b pro vytv\u00e1\u0159en\u00ed HTML str\u00e1nek, kter\u00fd zjednodu\u0161uje pr\u00e1ci s prezentac\u00ed dat a odd\u011bluji logiku aplikace od jej\u00edho vzhledu.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">Kl\u00ed\u010dov\u00e9 vlastnosti Latte<\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Bezpe\u010dnost<\/strong>\n<ul class=\"wp-block-list\">\n<li>Latte automaticky escapuje v\u0161echny v\u00fdstupy, aby zabr\u00e1nilo XSS \u00fatok\u016fm.<\/li>\n\n\n\n<li>Nab\u00edz\u00ed jednoduch\u00fd zp\u016fsob, jak pracovat s prom\u011bn\u00fdmi, bez obav z potenci\u00e1ln\u00edch bezpe\u010dnostn\u00edch rizik.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Srozumitelnost<\/strong>\n<ul class=\"wp-block-list\">\n<li>Syntaxe je intuitivn\u00ed a snadno pochopiteln\u00e1 i pro za\u010d\u00e1te\u010dn\u00edky.<\/li>\n\n\n\n<li>Podporuje jednoduch\u00e9 \u010dten\u00ed a udr\u017eov\u00e1n\u00ed \u0161ablon.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Flexibilita<\/strong>\n<ul class=\"wp-block-list\">\n<li>Lze jej snadno roz\u0161\u00ed\u0159it pomoc\u00ed vlastn\u00edch filtr\u016f a funkc\u00ed.<\/li>\n\n\n\n<li>Podporuje slo\u017eit\u011bj\u0161\u00ed konstrukty, jako jsou podm\u00ednky, cykly nebo makra.<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">Latte 3: Impozantn\u00ed skok vp\u0159ed<\/h3>\n\n\n\n<p>Latte 3 p\u0159in\u00e1\u0161\u00ed mnoho vylep\u0161en\u00ed a novinek, kter\u00e9 zvy\u0161uj\u00ed jeho rychlost, flexibilitu a p\u0159izp\u016fsobitelnost.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Hlavn\u00ed novinky v Latte 3<\/h4>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Deklarace typ\u016f<\/strong>\n<ul class=\"wp-block-list\">\n<li>Latte nyn\u00ed podporuje deklaraci typ\u016f prom\u011bn\u00fdch p\u0159\u00edmo v \u0161ablon\u00e1ch: <code>{var string $name} &lt;h1>Ahoj, {$name}!&lt;\/h1><\/code><\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>V\u00fdrazn\u011b rychlej\u0161\u00ed kompilace<\/strong>\n<ul class=\"wp-block-list\">\n<li>Latte 3 bylo optimalizov\u00e1no pro lep\u0161\u00ed v\u00fdkon p\u0159i zpracov\u00e1n\u00ed \u0161ablon.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Podpora pro Twig-like syntax<\/strong>\n<ul class=\"wp-block-list\">\n<li>Nov\u011b lze pou\u017e\u00edvat alternativn\u00ed notaci podobnou Twig: <code>{% if user %} &lt;p>V\u00edt\u00e1m t\u011b, {{ user.name }}!&lt;\/p> {% endif %}<\/code><\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Zjednodu\u0161en\u00e9 makro pro cykly<\/strong>\n<ul class=\"wp-block-list\">\n<li>Mo\u017enost pou\u017e\u00edt elegantn\u00ed iteraci p\u0159es pole: <code>{foreach $items as $item} &lt;li>{$item}&lt;\/li> {\/foreach}<\/code><\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Lep\u0161\u00ed diagnostika<\/strong>\n<ul class=\"wp-block-list\">\n<li>Latte nyn\u00ed poskytuje detailn\u011bj\u0161\u00ed chybov\u00e9 hl\u00e1\u0161ky, kter\u00e9 usnad\u0148uj\u00ed lad\u011bn\u00ed \u0161ablon.<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">Z\u00e1kladn\u00ed p\u0159\u00edklady Latte<\/h3>\n\n\n\n<h4 class=\"wp-block-heading\">1. Podm\u00ednky<\/h4>\n\n\n\n<pre class=\"wp-block-code\"><code>{if $isLoggedIn}\n    &lt;p&gt;V\u00edt\u00e1me t\u011b zp\u011bt!&lt;\/p&gt;\n{else}\n    &lt;p&gt;Pros\u00edm, p\u0159ihla\u0161te se.&lt;\/p&gt;\n{\/if}\n<\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\">2. V\u00fdpis dat<\/h4>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;ul&gt;\n    {foreach $users as $user}\n        &lt;li&gt;{$user-&gt;name}&lt;\/li&gt;\n    {\/foreach}\n&lt;\/ul&gt;\n<\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\">3. Koment\u00e1\u0159e<\/h4>\n\n\n\n<pre class=\"wp-block-code\"><code>{* Toto je koment\u00e1\u0159 v Latte *}\n<\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\">4. Pou\u017eit\u00ed filtr\u016f<\/h4>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;p&gt;{date $article-&gt;createdAt, 'd.m.Y'}&lt;\/p&gt;\n<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">Pro\u010d pou\u017e\u00edvat Latte?<\/h3>\n\n\n\n<p>Latte je ide\u00e1ln\u00ed volbou pro projekty, kde je d\u016fle\u017eit\u00e1 bezpe\u010dnost, rychlost a snadn\u00e1 udr\u017eitelnost k\u00f3du. S verz\u00ed Latte 3 se tento \u0161ablonovac\u00ed jazyk posouv\u00e1 je\u0161t\u011b d\u00e1le a p\u0159in\u00e1\u0161\u00ed n\u00e1stroje pro modern\u00ed webov\u00e9 aplikace.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Propojen\u00ed Latte a Nette<\/h3>\n\n\n\n<p>Latte je \u00fazce propojen\u00e9 s frameworkem Nette, kter\u00fd ho pou\u017e\u00edv\u00e1 jako sv\u016fj nativn\u00ed \u0161ablonovac\u00ed jazyk. Nette poskytuje robustn\u00ed integraci, kter\u00e1 umo\u017e\u0148uje snadnou pr\u00e1ci s daty z presenter\u016f p\u0159\u00edmo v \u0161ablon\u00e1ch. Tato kombinace zaji\u0161\u0165uje hladk\u00fd pr\u016fb\u011bh v\u00fdvoje aplikac\u00ed s jasn\u011b odd\u011blenou logikou a prezentac\u00ed.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Latte je popul\u00e1rn\u00ed \u0161ablonovac\u00ed jazyk vytvo\u0159en\u00fd pro PHP, kter\u00fd klade d\u016fraz na bezpe\u010dnost, p\u0159\u00edv\u011btivost a flexibilitu. Jedn\u00e1 se o n\u00e1stroj ur\u010den\u00fd prim\u00e1rn\u011b pro vytv\u00e1\u0159en\u00ed HTML str\u00e1nek, kter\u00fd zjednodu\u0161uje pr\u00e1ci s prezentac\u00ed dat a odd\u011bluji logiku aplikace od jej\u00edho vzhledu.<\/p>\n","protected":false},"author":1,"featured_media":26,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"advanced_seo_description":"","jetpack_seo_html_title":"","jetpack_seo_noindex":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[28,4,61,6],"tags":[29,62,10,49,48],"class_list":["post-53","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-nette","category-php","category-ui","category-webdesign","tag-latte","tag-nette","tag-php8","tag-programovani","tag-webdesign"],"jetpack_featured_media_url":"https:\/\/i0.wp.com\/josefnemec.cz\/blog\/wp-content\/uploads\/2024\/12\/452715918_922523846554376_6831763801176045897_n.jpg?fit=720%2C677&ssl=1","jetpack_sharing_enabled":true,"jetpack-related-posts":[],"_links":{"self":[{"href":"https:\/\/josefnemec.cz\/blog\/wp-json\/wp\/v2\/posts\/53","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/josefnemec.cz\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/josefnemec.cz\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/josefnemec.cz\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/josefnemec.cz\/blog\/wp-json\/wp\/v2\/comments?post=53"}],"version-history":[{"count":2,"href":"https:\/\/josefnemec.cz\/blog\/wp-json\/wp\/v2\/posts\/53\/revisions"}],"predecessor-version":[{"id":73,"href":"https:\/\/josefnemec.cz\/blog\/wp-json\/wp\/v2\/posts\/53\/revisions\/73"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/josefnemec.cz\/blog\/wp-json\/wp\/v2\/media\/26"}],"wp:attachment":[{"href":"https:\/\/josefnemec.cz\/blog\/wp-json\/wp\/v2\/media?parent=53"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/josefnemec.cz\/blog\/wp-json\/wp\/v2\/categories?post=53"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/josefnemec.cz\/blog\/wp-json\/wp\/v2\/tags?post=53"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}