{"id":12549,"date":"2023-10-30T09:22:57","date_gmt":"2023-10-30T08:22:57","guid":{"rendered":"https:\/\/dhosting.pl\/pomoc\/?post_type=manual_kb&#038;p=12549"},"modified":"2024-02-02T09:57:57","modified_gmt":"2024-02-02T08:57:57","slug":"czym-jest-twig","status":"publish","type":"manual_kb","link":"https:\/\/dhosting.pl\/pomoc\/baza-wiedzy\/czym-jest-twig\/","title":{"rendered":"Czym jest Twig?"},"content":{"rendered":"<p>W dzisiejszych czasach tworzenie dynamicznych stron internetowych sta\u0142o si\u0119 nieodzownym elementem rozwoju internetu. Aby dostarczy\u0107 u\u017cytkownikom bogate i atrakcyjne tre\u015bci, cz\u0119sto u\u017cywamy szablon\u00f3w, kt\u00f3re pomagaj\u0105 w renderowaniu stron w spos\u00f3b efektywny i zrozumia\u0142y. Jednym z popularnych narz\u0119dzi do tego celu jest Twig &#8211; silnik szablonowy napisany w j\u0119zyku PHP. W tym artykule om\u00f3wimy, czym jest Twig i poka\u017cemy przyk\u0142ady kodu, aby lepiej zrozumie\u0107, jak go u\u017cywa\u0107.<\/p>\n<div class=\"custom-text-button-wrapper\"><img decoding=\"async\" src=\"https:\/\/dhosting.pl\/pomoc\/wp-content\/uploads\/2024\/02\/6-dhosting-symbol-inverted.png\" class=\"custom-icon\" alt=\"\" title=\"\"><div class=\"custom-text\" style=\"color: white;\">Poznaj hosting, kt\u00f3ry automatycznie dostosowuje si\u0119 do potrzeb<\/div><a href=\"https:\/\/dhosting.pl\/elastyczny-hosting.html\" class=\"custom-button\">Dowiedz si\u0119 wi\u0119cej<\/a><\/div>\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_82_2 ez-toc-wrap-left counter-flat ez-toc-counter ez-toc-custom ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Spis tre\u015bci<\/p>\n<span class=\"ez-toc-title-toggle\"><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/dhosting.pl\/pomoc\/baza-wiedzy\/czym-jest-twig\/#Czym_jest_Twig\" >Czym jest Twig?<\/a><\/li><li class='ez-toc-page-1'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/dhosting.pl\/pomoc\/baza-wiedzy\/czym-jest-twig\/#Instalacja_Twig\" >Instalacja Twig<\/a><\/li><li class='ez-toc-page-1'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/dhosting.pl\/pomoc\/baza-wiedzy\/czym-jest-twig\/#Przyklady_uzycia_Twig\" >Przyk\u0142ady u\u017cycia Twig<\/a><\/li><li class='ez-toc-page-1'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/dhosting.pl\/pomoc\/baza-wiedzy\/czym-jest-twig\/#Podsumowanie\" >Podsumowanie<\/a><\/li><\/ul><\/nav><\/div>\n<h2><span class=\"ez-toc-section\" id=\"Czym_jest_Twig\"><\/span>Czym jest Twig?<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Twig to silnik szablonowy stworzony przez Fabiena Potencier, tw\u00f3rc\u0119 frameworka Symfony. Jest to narz\u0119dzie s\u0142u\u017c\u0105ce do separacji logiki biznesowej od warstwy prezentacji w aplikacjach webowych. Dzia\u0142a na zasadzie wstawiania zmiennych i blok\u00f3w kodu w szablonach, kt\u00f3re nast\u0119pnie s\u0105 renderowane w dynamiczne strony HTML. Twig pomaga programistom tworzy\u0107 czytelne i utrzymane szablony, co jest szczeg\u00f3lnie przydatne w wi\u0119kszych projektach.<\/p>\n<div id=\"dhost-4055260777\" class=\"dhost-inpost dhost-entity-placement\"><a href=\"https:\/\/dhosting.pl\/opieka-stron.html?utm_source=pomoc&utm_medium=artykul&utm_campaign=pomoc\" target=\"_blank\">\r\n\t<img decoding=\"async\" src=\"https:\/\/dhosting.pl\/pomoc\/wp-content\/uploads\/2025\/01\/baner-opieka.png\" alt=\"opieka stron www\">\r\n<\/a>\r\n<br \/>\r\n<br \/><\/div><h2><span class=\"ez-toc-section\" id=\"Instalacja_Twig\"><\/span>Instalacja Twig<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Aby zacz\u0105\u0107 korzysta\u0107 z Twig, nale\u017cy najpierw go zainstalowa\u0107. Mo\u017cemy to zrobi\u0107 za pomoc\u0105 narz\u0119dzia Composer, kt\u00f3re jest popularnym mened\u017cerem zale\u017cno\u015bci w \u015brodowisku PHP. Oto jak zainstalowa\u0107 Twig:<\/p>\n<ol>\n<li>Utw\u00f3rz nowy projekt lub przejd\u017a do istniej\u0105cego.<\/li>\n<li>Otw\u00f3rz terminal i przejd\u017a do katalogu projektu.<\/li>\n<li>Uruchom poni\u017csz\u0105 komend\u0119, aby zainstalowa\u0107 Twig przy u\u017cyciu Composera:<\/li>\n<\/ol>\n<pre class=\"line-numbers\"><code class=\"language-php\" data-line=\"\">composer require twig\/twig<\/code><\/pre>\n<p>Po zainstalowaniu Twig, mo\u017cesz zacz\u0105\u0107 korzysta\u0107 z jego funkcji w swoim projekcie.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Przyklady_uzycia_Twig\"><\/span>Przyk\u0142ady u\u017cycia Twig<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<h3>Podstawowe zastosowanie<\/h3>\n<p>Oto prosty przyk\u0142ad u\u017cycia Twig do wy\u015bwietlenia zmiennej w szablonie:<\/p>\n<pre class=\"line-numbers\"><code class=\"language-php\" data-line=\"\">require &#039;vendor\/autoload.php&#039;;\n\n\/\/ Inicjalizacja Twig\n$loader = new \\Twig\\Loader\\FilesystemLoader(&#039;\u015bcie\u017cka\/do\/szablon\u00f3w&#039;);\n$twig = new \\Twig\\Environment($loader);\n\n\/\/ Przyk\u0142adowa zmienna\n$zmienna = &#039;Witaj, \u015bwiecie!&#039;;\n\n\/\/ Renderowanie szablonu\necho $twig-&gt;render(&#039;szablon.twig&#039;, [&#039;zmienna&#039; =&gt; $zmienna]);<\/code><\/pre>\n<p>Szablon (<code class=\"\" data-line=\"\">szablon.twig<\/code>):<\/p>\n<pre class=\"line-numbers\"><code class=\"language-php\" data-line=\"\">\n\n\n    <\/code><\/pre>\n<h1>{{ zmienna }}<\/h1>\n<pre class=\"line-numbers\"><code class=\"language-php\" data-line=\"\"><\/code><\/pre>\n<p>&nbsp;<\/p>\n<pre class=\"line-numbers\"><code class=\"language-php\" data-line=\"\">\n<\/code><\/pre>\n<p>W wyniku tego kodu na stronie wy\u015bwietli si\u0119 napis &#8220;Witaj, \u015bwiecie!&#8221;.<\/p>\n<h3>P\u0119tle i warunki<\/h3>\n<p>Twig umo\u017cliwia r\u00f3wnie\u017c korzystanie z p\u0119tli i instrukcji warunkowych w szablonach. Oto przyk\u0142ad, kt\u00f3ry wy\u015bwietli list\u0119 produkt\u00f3w tylko je\u015bli istniej\u0105:<\/p>\n<pre class=\"line-numbers\"><code class=\"language-php\" data-line=\"\">{% if produkty %}<\/code><\/pre>\n<ul>\n<li style=\"list-style-type: none;\">\n<ul>{% for produkt in produkty %}<\/p>\n<li>{{ produkt.nazwa }}<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>{% endfor %}<\/p>\n<pre class=\"line-numbers\"><code class=\"language-php\" data-line=\"\"><\/code><\/pre>\n<p>{% else %}<\/p>\n<pre class=\"line-numbers\"><code class=\"language-php\" data-line=\"\"><\/code><\/pre>\n<p>Brak produkt\u00f3w do wy\u015bwietlenia.<\/p>\n<pre class=\"line-numbers\"><code class=\"language-php\" data-line=\"\"><\/code><\/pre>\n<p>{% endif %}<\/p>\n<pre class=\"line-numbers\"><code class=\"language-php\" data-line=\"\"><\/code><\/pre>\n<h3>Dziedziczenie i bloki<\/h3>\n<p>Twig pozwala na dziedziczenie szablon\u00f3w i tworzenie blok\u00f3w, co jest przydatne w przypadku projekt\u00f3w o wi\u0119kszej strukturze. Oto przyk\u0142ad:<\/p>\n<p>Bazowy szablon (<code class=\"\" data-line=\"\">base.twig<\/code>):<\/p>\n<pre class=\"line-numbers\"><code class=\"language-php\" data-line=\"\">\n\n\n    <\/code><\/pre>\n<div id=\"content\">\n        {% block content %}{% endblock %}<\/div>\n<pre class=\"line-numbers\"><code class=\"language-php\" data-line=\"\"><\/code><\/pre>\n<p>&nbsp;<\/p>\n<pre class=\"line-numbers\"><code class=\"language-php\" data-line=\"\">\n<\/code><\/pre>\n<p>Dziedzicz\u0105cy szablon (<code class=\"\" data-line=\"\">page.twig<\/code>):<\/p>\n<pre class=\"line-numbers\"><code class=\"language-php\" data-line=\"\">{% extends &#039;base.twig&#039; %}\n\n{% block title %}Strona G\u0142\u00f3wna{% endblock %}\n\n{% block content %}<\/code><\/pre>\n<h1>Witaj na stronie g\u0142\u00f3wnej!<\/h1>\n<pre class=\"line-numbers\"><code class=\"language-php\" data-line=\"\"><\/code><\/pre>\n<p>&nbsp;<\/p>\n<pre class=\"line-numbers\"><code class=\"language-php\" data-line=\"\"><\/code><\/pre>\n<p>To jest zawarto\u015b\u0107 strony g\u0142\u00f3wnej.<\/p>\n<pre class=\"line-numbers\"><code class=\"language-php\" data-line=\"\"><\/code><\/pre>\n<p>{% endblock %}<\/p>\n<pre class=\"line-numbers\"><code class=\"language-php\" data-line=\"\"><\/code><\/pre>\n<p>W wyniku tego kodu strona wy\u015bwietli &#8220;Strona G\u0142\u00f3wna&#8221; jako tytu\u0142 i tre\u015b\u0107 strony w bloku content.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Podsumowanie\"><\/span>Podsumowanie<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Twig to pot\u0119\u017cny i elastyczny silnik szablonowy, kt\u00f3ry znacz\u0105co u\u0142atwia tworzenie dynamicznych stron internetowych. Dzi\u0119ki jego prostemu i czytelnemu sk\u0142adni oraz mo\u017cliwo\u015bciom takim jak p\u0119tle, warunki, dziedziczenie i bloki, programi\u015bci mog\u0105 tworzy\u0107 atrakcyjne szablony bez zb\u0119dnego skomplikowania kodu. Jest to niezwykle przydatne narz\u0119dzie w ekosystemie PHP i Symfony, kt\u00f3re przyspiesza proces tworzenia stron internetowych i poprawia czytelno\u015b\u0107 kodu.<\/p>\n<p>Je\u015bli dopiero zaczynasz prac\u0119 z Twig, warto zacz\u0105\u0107 od oficjalnej dokumentacji, aby zg\u0142\u0119bi\u0107 wszystkie mo\u017cliwo\u015bci tego silnika szablonowego i sta\u0107 si\u0119 bardziej efektywnym programist\u0105 webowym.<\/p>\n","protected":false},"author":6,"featured_media":10957,"parent":0,"menu_order":0,"template":"","format":"standard","manualknowledgebasecat":[121,118],"manual_kb_tag":[4021,2969,655,3517,4014,4020,3516],"class_list":["post-12549","manual_kb","type-manual_kb","status-publish","format-standard","has-post-thumbnail","hentry","manualknowledgebasecat-inne","manualknowledgebasecat-pozostale","manual_kb_tag-co-to-jest-twig","manual_kb_tag-frameworki","manual_kb_tag-hosting","manual_kb_tag-polski-hosting","manual_kb_tag-symfony","manual_kb_tag-twig","manual_kb_tag-web-hosting"],"_links":{"self":[{"href":"https:\/\/dhosting.pl\/pomoc\/wp-json\/wp\/v2\/manual_kb\/12549","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/dhosting.pl\/pomoc\/wp-json\/wp\/v2\/manual_kb"}],"about":[{"href":"https:\/\/dhosting.pl\/pomoc\/wp-json\/wp\/v2\/types\/manual_kb"}],"author":[{"embeddable":true,"href":"https:\/\/dhosting.pl\/pomoc\/wp-json\/wp\/v2\/users\/6"}],"version-history":[{"count":0,"href":"https:\/\/dhosting.pl\/pomoc\/wp-json\/wp\/v2\/manual_kb\/12549\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/dhosting.pl\/pomoc\/wp-json\/wp\/v2\/media\/10957"}],"wp:attachment":[{"href":"https:\/\/dhosting.pl\/pomoc\/wp-json\/wp\/v2\/media?parent=12549"}],"wp:term":[{"taxonomy":"manualknowledgebasecat","embeddable":true,"href":"https:\/\/dhosting.pl\/pomoc\/wp-json\/wp\/v2\/manualknowledgebasecat?post=12549"},{"taxonomy":"manual_kb_tag","embeddable":true,"href":"https:\/\/dhosting.pl\/pomoc\/wp-json\/wp\/v2\/manual_kb_tag?post=12549"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}