<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>PHP Archives - PoliCast - Conhecimento Útil</title>
	<atom:link href="https://policast.studio/pages/php/feed/" rel="self" type="application/rss+xml" />
	<link>https://policast.studio/pages/php/</link>
	<description>Dê um upgrade na sua vida profissional com conhecimento</description>
	<lastBuildDate>Tue, 14 Jul 2020 12:42:00 +0000</lastBuildDate>
	<language>pt-BR</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>

<image>
	<url>https://policast.studio/wp-content/uploads/2020/06/logo-lilaz.ico</url>
	<title>PHP Archives - PoliCast - Conhecimento Útil</title>
	<link>https://policast.studio/pages/php/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Aula 09 – Symfony 5 – Twig</title>
		<link>https://policast.studio/aula-09-symfony-5-twig/</link>
		
		<dc:creator><![CDATA[Jonas Poli]]></dc:creator>
		<pubDate>Thu, 16 Jul 2020 01:26:10 +0000</pubDate>
				<category><![CDATA[Curso]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Symfony]]></category>
		<category><![CDATA[Tutorial]]></category>
		<guid isPermaLink="false">https://policast.studio/?p=116534</guid>

					<description><![CDATA[<p>The post <a rel="nofollow" href="https://policast.studio/aula-09-symfony-5-twig/">Aula 09 – Symfony 5 – Twig</a> appeared first on <a rel="nofollow" href="https://policast.studio">PoliCast - Conhecimento Útil</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><div class="et_pb_section et_pb_section_0 et_section_regular" >
				
				
				
				
				
				
				<div class="et_pb_row et_pb_row_0">
				<div class="et_pb_column et_pb_column_4_4 et_pb_column_0  et_pb_css_mix_blend_mode_passthrough et-last-child">
				
				
				
				
				<div class="et_pb_module  et_pb_text et_pb_text_0  et_pb_text_align_left et_pb_bg_layout_light">
				
				
				
				
				<div class="et_pb_text_inner"><h2>O que é o Twig?</h2></div>
			</div><div class="et_pb_module  et_pb_text et_pb_text_1  et_pb_text_align_left et_pb_bg_layout_light">
				
				
				
				
				<div class="et_pb_text_inner"><p>Twig é um mecanismo de template moderno para PHP. <span>Twig é uma ferramenta mantida pela </span>Sensiolabs<span>, empresa por de traz de nada menos que o </span><a href="https://symfony.com/">Symfony.</a><span> o nosso framework, o mais fantásticos para PHP.</span></p></div>
			</div>
			</div>
				
				
				
				
			</div><div class="et_pb_row et_pb_row_1">
				<div class="et_pb_column et_pb_column_1_2 et_pb_column_1  et_pb_css_mix_blend_mode_passthrough">
				
				
				
				
				<div class="et_pb_module  et_pb_image et_pb_image_0">
				
				
				
				
				<span class="et_pb_image_wrap "><img fetchpriority="high" decoding="async" width="1010" height="360" src="https://policast.studio/wp-content/uploads/2020/07/Screen-Shot-2020-07-09-at-17.08.41.png" alt="Twig" title="Twig" srcset="https://policast.studio/wp-content/uploads/2020/07/Screen-Shot-2020-07-09-at-17.08.41.png 1010w, https://policast.studio/wp-content/uploads/2020/07/Screen-Shot-2020-07-09-at-17.08.41-980x349.png 980w, https://policast.studio/wp-content/uploads/2020/07/Screen-Shot-2020-07-09-at-17.08.41-480x171.png 480w" sizes="(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) 1010px, 100vw" class="wp-image-116552" /></span>
			</div>
			</div><div class="et_pb_column et_pb_column_1_2 et_pb_column_2  et_pb_css_mix_blend_mode_passthrough et-last-child">
				
				
				
				
				<div class="et_pb_module  et_pb_text et_pb_text_2  et_pb_text_align_left et_pb_bg_layout_light">
				
				
				
				
				<div class="et_pb_text_inner"><ul>
<li><strong><span>Rápido</span></strong><span><span> </span>: o Twig<span> </span></span><em><span>compila</span></em><span><span> </span>templates de código PHP otimizado.<span> O Custo em memória e em processamento</span> em comparação com o código PHP normal fica muito reduzido.</span></li>
<li><strong><span>Seguro</span></strong><span><span> </span>: o Twig possui um<span> </span>modo<span> </span></span><em><span>sandbox</span></em><span><span> </span>para avaliar o código do template não confiável.<span> </span>Isso permite que o Twig seja usado como uma linguagem de modelagem para aplicativos em que os usuários podem modificar o design do template.</span></li>
<li><strong><span>Flexível</span></strong><span><span> </span>: Twig é alimentado por<span> <em>lexer</em> and <em>parser</em></span></span><span>.<span> </span>Isso permite que o desenvolvedor defina suas próprias tags e filtros personalizados e crie seu próprio DSL.</span></li>
</ul>
<div class="terminal-wrapper">
<pre class="notranslate"><code class="language-bash hljs"></code></pre>
</div></div>
			</div><div class="et_pb_button_module_wrapper et_pb_button_0_wrapper  et_pb_module ">
				<a class="et_pb_button et_pb_button_0 et_animated et_pb_bg_layout_light" href="https://twig.symfony.com/" target="_blank">Veja a documentação</a>
			</div>
			</div>
				
				
				
				
			</div><div class="et_pb_row et_pb_row_2">
				<div class="et_pb_column et_pb_column_4_4 et_pb_column_3  et_pb_css_mix_blend_mode_passthrough et-last-child">
				
				
				
				
				<div class="et_pb_module  et_pb_text et_pb_text_3  et_pb_text_align_left et_pb_bg_layout_light">
				
				
				
				
				<div class="et_pb_text_inner"><h2>As sintaxes do Twig</h2></div>
			</div><div class="et_pb_module  et_pb_text et_pb_text_4  et_pb_text_align_left et_pb_bg_layout_light">
				
				
				
				
				<div class="et_pb_text_inner"><p>O Twig possui 3 sintaxes:</div>
			</div><div class="et_pb_module  et_pb_code et_pb_code_0">
				
				
				
				
				<div class="et_pb_code_inner"><pre class="brush: php; title: ; notranslate">&lt;!-- [et_pb_line_break_holder] --&gt;&lt;!-- [et_pb_line_break_holder] --&gt;&lt;!-- [et_pb_line_break_holder] --&gt;{{ Exiba algo }}&lt;!-- [et_pb_line_break_holder] --&gt;&lt;!-- [et_pb_line_break_holder] --&gt;</pre></div>
			</div><div class="et_pb_module  et_pb_text et_pb_text_5  et_pb_text_align_left et_pb_bg_layout_light">
				
				
				
				
				<div class="et_pb_text_inner"><p>Tudo que você quiser exibir, você deve colocar entre {{ }}<br /> Por exemplo, este código PHP exibe o conteúdo de &#8220;var&#8221;</p>
<p><span style="font-family: monospace, serif; font-size: 1em; white-space: pre-wrap;">&lt;?php </span><span class="k" style="font-family: monospace, serif; font-size: 1em; white-space: pre-wrap;">echo</span><span style="font-family: monospace, serif; font-size: 1em; white-space: pre-wrap;"> </span><span class="nv" style="font-family: monospace, serif; font-size: 1em; white-space: pre-wrap;">$var</span><span style="font-family: monospace, serif; font-size: 1em; white-space: pre-wrap;"> </span><span class="cp" style="font-family: monospace, serif; font-size: 1em; white-space: pre-wrap;">?&gt;</span></p>
<p>E este código em Twig exibe o conteúdo de &#8220;var&#8221;</p>
<p> <span style="font-family: monospace, serif; font-size: 1em; white-space: pre-wrap;">{{ var }}</span></p>
<p>&nbsp;</p></div>
			</div><div class="et_pb_module  et_pb_code et_pb_code_1">
				
				
				
				
				<div class="et_pb_code_inner"><pre class="brush: php; title: ; notranslate">&lt;!-- [et_pb_line_break_holder] --&gt;&lt;!-- [et_pb_line_break_holder] --&gt;&lt;!-- [et_pb_line_break_holder] --&gt;{% Faça algo %}&lt;!-- [et_pb_line_break_holder] --&gt;&lt;!-- [et_pb_line_break_holder] --&gt;</pre></div>
			</div><div class="et_pb_module  et_pb_text et_pb_text_6  et_pb_text_align_left et_pb_bg_layout_light">
				
				
				
				
				<div class="et_pb_text_inner"><p>Tudo que você quiser que seja executado (um &#8220;for&#8221; ou um &#8220;if&#8221;), você deve colocar entre {%   %}<br /> Por exemplo, este código PHP </p>
<pre><strong>&lt;?php</strong> <br />if ($var &gt; 2){<br />    echo 'Maior';<br />}<br /><strong> <span class="cp">?&gt;</span></strong> </pre>
<p>E este código em Twig :</p>
<p> <span style="font-family: monospace, serif; font-size: 1em; white-space: pre-wrap;">{% if var &gt; 2 %}</span></p>
<p>Maior</p>
<p>{% endfor %}</p>
<p>&nbsp;</p>
<pre></pre></div>
			</div><div class="et_pb_module  et_pb_code et_pb_code_2">
				
				
				
				
				<div class="et_pb_code_inner"><pre class="brush: php; title: ; notranslate">&lt;!-- [et_pb_line_break_holder] --&gt;&lt;!-- [et_pb_line_break_holder] --&gt;&lt;!-- [et_pb_line_break_holder] --&gt;{# Comente Algo #}  ] </pre></div>
			</div><div class="et_pb_module  et_pb_text et_pb_text_7  et_pb_text_align_left et_pb_bg_layout_light">
				
				
				
				
				<div class="et_pb_text_inner"><p>Tudo que você quiser que seja comentado você deve colocar entre {#   #}<br /> <strong>Por exemplo, este código PHP</strong></p>
<p><strong style="font-family: monospace, serif; font-size: 1em; white-space: pre-wrap;">&lt;?php</strong><span style="font-family: monospace, serif; font-size: 1em; white-space: pre-wrap;"> </span></p>
<p>// Isso é um comentário</p>
<p>/* este também */<br /> <strong> <span class="cp">?&gt;</span></strong></p>
<p><strong>E este código em Twig :</strong></p>
<p><span style="font-family: monospace, serif; font-size: 1em; white-space: pre-wrap;">{# Este é um comentário #}</span></p>
<p>&nbsp;</p>
<pre></pre></div>
			</div>
			</div>
				
				
				
				
			</div>
				
				
			</div><div class="et_pb_section et_pb_section_1 et_section_regular" >
				
				
				
				
				
				
				<div class="et_pb_row et_pb_row_3">
				<div class="et_pb_column et_pb_column_4_4 et_pb_column_4  et_pb_css_mix_blend_mode_passthrough et-last-child">
				
				
				
				
				<div class="et_pb_module  et_pb_text et_pb_text_8  et_pb_text_align_left et_pb_bg_layout_light">
				
				
				
				
				<div class="et_pb_text_inner"><h2>Vídeo Aula</h2></div>
			</div><div class="et_pb_module  et_pb_video et_pb_video_0">
				
				
				
				
				<div class="et_pb_video_box"><iframe title="Aula 09 – Symfony 5 – Twig - Curso gratuito de Symfony PHP 7" width="1080" height="608" src="https://www.youtube.com/embed/HvoF6dw4qEM?feature=oembed"  allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe></div>
				
			</div>
			</div>
				
				
				
				
			</div><div class="et_pb_row et_pb_row_4">
				<div class="et_pb_column et_pb_column_1_2 et_pb_column_5  et_pb_css_mix_blend_mode_passthrough">
				
				
				
				
				<div class="et_pb_button_module_wrapper et_pb_button_1_wrapper et_pb_button_alignment_left et_pb_module ">
				<a class="et_pb_button et_pb_button_1 et_animated et_pb_bg_layout_light" href="https://policast.studio/aula-08-symfony-5-twig-recipe/" data-icon="&amp;#x34;">Aula Anterior</a>
			</div>
			</div><div class="et_pb_column et_pb_column_1_2 et_pb_column_6  et_pb_css_mix_blend_mode_passthrough et-last-child">
				
				
				
				
				<div class="et_pb_button_module_wrapper et_pb_button_2_wrapper et_pb_button_alignment_right et_pb_module ">
				<a class="et_pb_button et_pb_button_2 et_animated et_pb_bg_layout_light" href="https://policast.studio/?p=116568">Próxima Aula</a>
			</div>
			</div>
				
				
				
				
			</div>
				
				
			</div></p>
<p>The post <a rel="nofollow" href="https://policast.studio/aula-09-symfony-5-twig/">Aula 09 – Symfony 5 – Twig</a> appeared first on <a rel="nofollow" href="https://policast.studio">PoliCast - Conhecimento Útil</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Aula 08 – Symfony 5 – Twig Recipe</title>
		<link>https://policast.studio/aula-08-symfony-5-twig-recipe/</link>
		
		<dc:creator><![CDATA[Jonas Poli]]></dc:creator>
		<pubDate>Wed, 15 Jul 2020 01:05:16 +0000</pubDate>
				<category><![CDATA[Curso]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Symfony]]></category>
		<category><![CDATA[Tutorial]]></category>
		<guid isPermaLink="false">https://policast.studio/?p=116547</guid>

					<description><![CDATA[<p>The post <a rel="nofollow" href="https://policast.studio/aula-08-symfony-5-twig-recipe/">Aula 08 – Symfony 5 – Twig Recipe</a> appeared first on <a rel="nofollow" href="https://policast.studio">PoliCast - Conhecimento Útil</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><div class="et_pb_section et_pb_section_2 et_section_regular" >
				
				
				
				
				
				
				<div class="et_pb_row et_pb_row_5">
				<div class="et_pb_column et_pb_column_4_4 et_pb_column_7  et_pb_css_mix_blend_mode_passthrough et-last-child">
				
				
				
				
				<div class="et_pb_module  et_pb_text et_pb_text_9  et_pb_text_align_left et_pb_bg_layout_light">
				
				
				
				
				<div class="et_pb_text_inner"><h2>O que é o Twig Recipe?</h2></div>
			</div><div class="et_pb_module  et_pb_text et_pb_text_10  et_pb_text_align_left et_pb_bg_layout_light">
				
				
				
				
				<div class="et_pb_text_inner"><p>Recipes são scripts de instalação de plugins no seu projeto. O Recipe Twig é o responsável por instalar o TWIG no seu projeto.</p></div>
			</div>
			</div>
				
				
				
				
			</div><div class="et_pb_row et_pb_row_6">
				<div class="et_pb_column et_pb_column_1_2 et_pb_column_8  et_pb_css_mix_blend_mode_passthrough">
				
				
				
				
				<div class="et_pb_module  et_pb_image et_pb_image_1">
				
				
				
				
				<span class="et_pb_image_wrap "><img loading="lazy" decoding="async" width="716" height="437" src="https://policast.studio/wp-content/uploads/2020/07/47-twig-logo.jpg" alt="Twig Recipe" title="Twig Recipe" srcset="https://policast.studio/wp-content/uploads/2020/07/47-twig-logo.jpg 716w, https://policast.studio/wp-content/uploads/2020/07/47-twig-logo-480x293.jpg 480w" sizes="auto, (min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) 716px, 100vw" class="wp-image-116541" /></span>
			</div>
			</div><div class="et_pb_column et_pb_column_1_2 et_pb_column_9  et_pb_css_mix_blend_mode_passthrough et-last-child">
				
				
				
				
				<div class="et_pb_module  et_pb_text et_pb_text_11  et_pb_text_align_left et_pb_bg_layout_light">
				
				
				
				
				<div class="et_pb_text_inner"><p><span class="subs-paragraph" data-start-time="35.356">No site<span> </span><a href="https://flex.symfony.com/">https://flex.symfony.com</a><span> </span>você pode procurar por &#8220;template&#8221;.<span> O Symfony recomenda, como templete, o twig-pack.</span></span></p>
<p><span class="subs-paragraph" data-start-time="35.356"><span>O Twig pode ser instalado no seu projeto com o comando:</span></span></p>
<p><span class="subs-paragraph" data-start-time="35.356"><span></span></span></p>
<div class="highlight-terminal notranslate">
<table class="highlighttable">
<tbody>
<tr>
<td class="code" style="width: 374px;">
<div class="highlight">
<div class="highlight">
<pre><span></span><span class="gp" data-content="$"></span> composer require twig</pre>
</div>
</div>
</td>
</tr>
</tbody>
</table>
<p>Ou pode usar um de seus alias:</p>
<ul>
<li>template</li>
<li>templates</li>
<li>twig</li>
<li>twig-pack</li>
</ul>
</div>
<div class="terminal-wrapper">
<pre class="notranslate"><code class="language-bash hljs"></code></pre>
</div></div>
			</div><div class="et_pb_button_module_wrapper et_pb_button_3_wrapper  et_pb_module ">
				<a class="et_pb_button et_pb_button_3 et_pb_bg_layout_light" href="https://twig.symfony.com/doc/2.x/recipes.html" target="_blank">Veja a documentação</a>
			</div>
			</div>
				
				
				
				
			</div><div class="et_pb_row et_pb_row_7">
				<div class="et_pb_column et_pb_column_1_2 et_pb_column_10  et_pb_css_mix_blend_mode_passthrough">
				
				
				
				
				<div class="et_pb_module  et_pb_text et_pb_text_12  et_pb_text_align_left et_pb_bg_layout_light">
				
				
				
				
				<div class="et_pb_text_inner"><h2>Diretório Template</h2></div>
			</div><div class="et_pb_module  et_pb_text et_pb_text_13  et_pb_text_align_left et_pb_bg_layout_light">
				
				
				
				
				<div class="et_pb_text_inner"><p>Por padrão, os arquivos que o sistema entenderá como sendo &#8220;Templates&#8221; ficam no diretório Template.</p>
<p>Isso se deve ao fato de que o recipe do twig assim o configira!</p>
<p>Para que o Twig funcione corretamente, você precisa adicionar o Bundle do Twig no Symfony.</p>
<p>&nbsp;</p></div>
			</div><div class="et_pb_module  et_pb_text et_pb_text_14  et_pb_text_align_left et_pb_bg_layout_light">
				
				
				
				
				<div class="et_pb_text_inner"><h2>O que é um Bundle?</h2></div>
			</div><div class="et_pb_module  et_pb_text et_pb_text_15  et_pb_text_align_left et_pb_bg_layout_light">
				
				
				
				
				<div class="et_pb_text_inner"><p>Um bundle é semelhante a um plug-in em outro software, mas ainda melhor. A principal diferença é que tudo é um bundle no Symfony, incluindo tanto as funcionalidades do núcleo do framework quanto o código escrito para a sua aplicação. Bundles são cidadãos de primeira classe no Symfony. Isso lhe fornece a flexibilidade para usar os recursos pré-construídos em `bundles de terceiros`_ ou para distribuir os seus próprios bundles. Isso torna mais fácil escolher quais recursos devem ser habilitados em seu aplicativo e otimizá-los da forma que quiser.</p></div>
			</div>
			</div><div class="et_pb_column et_pb_column_1_2 et_pb_column_11  et_pb_css_mix_blend_mode_passthrough et-last-child">
				
				
				
				
				<div class="et_pb_module  et_pb_image et_pb_image_2">
				
				
				
				
				<span class="et_pb_image_wrap "><img loading="lazy" decoding="async" width="1900" height="1420" src="https://policast.studio/wp-content/uploads/2020/07/pngwave.png" alt="Bundle Symfony" title="Bundle Symfony" srcset="https://policast.studio/wp-content/uploads/2020/07/pngwave.png 1900w, https://policast.studio/wp-content/uploads/2020/07/pngwave-1280x957.png 1280w, https://policast.studio/wp-content/uploads/2020/07/pngwave-980x732.png 980w, https://policast.studio/wp-content/uploads/2020/07/pngwave-480x359.png 480w" sizes="auto, (min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) and (max-width: 1280px) 1280px, (min-width: 1281px) 1900px, 100vw" class="wp-image-116543" /></span>
			</div>
			</div>
				
				
				
				
			</div>
				
				
			</div><div class="et_pb_section et_pb_section_3 et_section_regular" >
				
				
				
				
				
				
				<div class="et_pb_row et_pb_row_8">
				<div class="et_pb_column et_pb_column_4_4 et_pb_column_12  et_pb_css_mix_blend_mode_passthrough et-last-child">
				
				
				
				
				<div class="et_pb_module  et_pb_text et_pb_text_16  et_pb_text_align_left et_pb_bg_layout_light">
				
				
				
				
				<div class="et_pb_text_inner"><h2>Vídeo Aula</h2></div>
			</div><div class="et_pb_module  et_pb_video et_pb_video_1">
				
				
				
				
				<div class="et_pb_video_box"><iframe loading="lazy" title="Aula 08 – Symfony 5 – Twig Recipe — Scheduled, Divi - Curso gratuito de Symfony PHP 7" width="1080" height="608" src="https://www.youtube.com/embed/2PDVBqWiTqY?feature=oembed"  allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe></div>
				
			</div>
			</div>
				
				
				
				
			</div><div class="et_pb_row et_pb_row_9">
				<div class="et_pb_column et_pb_column_1_2 et_pb_column_13  et_pb_css_mix_blend_mode_passthrough">
				
				
				
				
				<div class="et_pb_button_module_wrapper et_pb_button_4_wrapper et_pb_button_alignment_left et_pb_module ">
				<a class="et_pb_button et_pb_button_4 et_pb_bg_layout_light" href="https://policast.studio/aula-07-como-os-recipes-funcionam/" data-icon="&amp;#x34;">Aula Anterior</a>
			</div>
			</div><div class="et_pb_column et_pb_column_1_2 et_pb_column_14  et_pb_css_mix_blend_mode_passthrough et-last-child">
				
				
				
				
				<div class="et_pb_button_module_wrapper et_pb_button_5_wrapper et_pb_button_alignment_right et_pb_module ">
				<a class="et_pb_button et_pb_button_5 et_pb_bg_layout_light" href="https://policast.studio/?p=116534">Próxima Aula</a>
			</div>
			</div>
				
				
				
				
			</div>
				
				
			</div></p>
<p>The post <a rel="nofollow" href="https://policast.studio/aula-08-symfony-5-twig-recipe/">Aula 08 – Symfony 5 – Twig Recipe</a> appeared first on <a rel="nofollow" href="https://policast.studio">PoliCast - Conhecimento Útil</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Aula 07 &#8211; Symfony 5 &#8211; Como os Recipes Funcionam</title>
		<link>https://policast.studio/aula-07-como-os-recipes-funcionam/</link>
		
		<dc:creator><![CDATA[Jonas Poli]]></dc:creator>
		<pubDate>Tue, 14 Jul 2020 01:56:48 +0000</pubDate>
				<category><![CDATA[Curso]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Symfony]]></category>
		<category><![CDATA[Tutorial]]></category>
		<guid isPermaLink="false">https://policast.studio/?p=116523</guid>

					<description><![CDATA[<p>The post <a rel="nofollow" href="https://policast.studio/aula-07-como-os-recipes-funcionam/">Aula 07 &#8211; Symfony 5 &#8211; Como os Recipes Funcionam</a> appeared first on <a rel="nofollow" href="https://policast.studio">PoliCast - Conhecimento Útil</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><div class="et_pb_section et_pb_section_4 et_section_regular" >
				
				
				
				
				
				
				<div class="et_pb_row et_pb_row_10">
				<div class="et_pb_column et_pb_column_4_4 et_pb_column_15  et_pb_css_mix_blend_mode_passthrough et-last-child">
				
				
				
				
				<div class="et_pb_module  et_pb_text et_pb_text_17  et_pb_text_align_left et_pb_bg_layout_light">
				
				
				
				
				<div class="et_pb_text_inner"><h2>Como os recipes funcionam?</h2></div>
			</div><div class="et_pb_module  et_pb_text et_pb_text_18  et_pb_text_align_left et_pb_bg_layout_light">
				
				
				
				
				<div class="et_pb_text_inner"><p>Recipe (receita) é o nome dado ao conjunto de arquivos responsável pela automatização do processo de instalação de uma dependência específica. As instruções são definidas dentro de um arquivo chamado manifest.json que fica dentro do repositório do Flex, veja um exemplo abaixo.</p>
<p>Essa receita é um script que executa ações automaticamente.</p></div>
			</div>
			</div>
				
				
				
				
			</div><div class="et_pb_row et_pb_row_11">
				<div class="et_pb_column et_pb_column_1_2 et_pb_column_16  et_pb_css_mix_blend_mode_passthrough">
				
				
				
				
				<div class="et_pb_module  et_pb_image et_pb_image_3">
				
				
				
				
				<span class="et_pb_image_wrap "><img loading="lazy" decoding="async" width="1548" height="494" src="https://policast.studio/wp-content/uploads/2020/07/Screen-Shot-2020-07-09-at-14.04.17.png" alt="Manifest.Json" title="Manifest.Json" srcset="https://policast.studio/wp-content/uploads/2020/07/Screen-Shot-2020-07-09-at-14.04.17.png 1548w, https://policast.studio/wp-content/uploads/2020/07/Screen-Shot-2020-07-09-at-14.04.17-1280x408.png 1280w, https://policast.studio/wp-content/uploads/2020/07/Screen-Shot-2020-07-09-at-14.04.17-980x313.png 980w, https://policast.studio/wp-content/uploads/2020/07/Screen-Shot-2020-07-09-at-14.04.17-480x153.png 480w" sizes="auto, (min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) and (max-width: 1280px) 1280px, (min-width: 1281px) 1548px, 100vw" class="wp-image-116530" /></span>
			</div>
			</div><div class="et_pb_column et_pb_column_1_2 et_pb_column_17  et_pb_css_mix_blend_mode_passthrough et-last-child">
				
				
				
				
				<div class="et_pb_module  et_pb_text et_pb_text_19  et_pb_text_align_left et_pb_bg_layout_light">
				
				
				
				
				<div class="et_pb_text_inner"><p>Neste aquivo estão as configurações de quais ações serão realizadas quando ele for instalado e quais apelidos possui.</p></div>
			</div><div class="et_pb_button_module_wrapper et_pb_button_6_wrapper  et_pb_module ">
				<a class="et_pb_button et_pb_button_6 et_pb_bg_layout_light" href="https://github.com/symfony/recipes/blob/master/sensiolabs/security-checker/4.0/manifest.json" target="_blank">Veja o Arquivo</a>
			</div>
			</div>
				
				
				
				
			</div><div class="et_pb_row et_pb_row_12">
				<div class="et_pb_column et_pb_column_1_2 et_pb_column_18  et_pb_css_mix_blend_mode_passthrough">
				
				
				
				
				<div class="et_pb_module  et_pb_text et_pb_text_20  et_pb_text_align_left et_pb_bg_layout_light">
				
				
				
				
				<div class="et_pb_text_inner"><h2>O que um Recipe pode fazer?</h2></div>
			</div><div class="et_pb_module  et_pb_text et_pb_text_21  et_pb_text_align_left et_pb_bg_layout_light">
				
				
				
				
				<div class="et_pb_text_inner"><p>Abaixo, segue uma lista das ações que um recipe pode executar quando adicionado ao projeto:</p>
<ul>
<li><strong>bundles configurator</strong><span> </span>– configura entradas no arquivo de bundles da aplicação</li>
<li><strong>container configurator</strong><span> </span>– configura entradas no container da aplicação</li>
<li><strong>copy-from-package configurator</strong><span> </span>– copia pastas e arquivos do repositório para a aplicação</li>
<li><strong>copy-from-recipe configurator</strong><span> </span>– copia pastas e arquivos do recipe para a aplicação</li>
<li><strong>env configurator</strong><span> </span>– Adiciona entradas no arquivo de configuração de ambiente .env</li>
<li><strong>composer-scripts configurator</strong><span> </span>– registra scripts no arquivo composer.json</li>
<li><strong>gitignore configurator</strong><span> </span>– Adiciona entradas no arquivo de configuração .gitignore</li>
<li><strong>post-install-output configurator</strong><span> </span>– Permite definir informações que serão exibidas no console ao final do processo de configuração do Flex</li>
</ul>
<p>Essas ações são definidas dentro de um arquivo JSON que será lido pelo Flex.</p></div>
			</div>
			</div><div class="et_pb_column et_pb_column_1_2 et_pb_column_19  et_pb_css_mix_blend_mode_passthrough et-last-child">
				
				
				
				
				<div class="et_pb_module  et_pb_image et_pb_image_4">
				
				
				
				
				<span class="et_pb_image_wrap "><img loading="lazy" decoding="async" width="300" height="300" src="https://policast.studio/wp-content/uploads/2020/07/livro-de-receitas-symfony-300x300.png" alt="Livro de Receitas Symfony" title="livro-de-receitas-symfony" class="wp-image-116531" /></span>
			</div>
			</div>
				
				
				
				
			</div>
				
				
			</div><div class="et_pb_section et_pb_section_5 et_section_regular" >
				
				
				
				
				
				
				<div class="et_pb_row et_pb_row_13">
				<div class="et_pb_column et_pb_column_4_4 et_pb_column_20  et_pb_css_mix_blend_mode_passthrough et-last-child">
				
				
				
				
				<div class="et_pb_module  et_pb_text et_pb_text_22  et_pb_text_align_left et_pb_bg_layout_light">
				
				
				
				
				<div class="et_pb_text_inner"><h2>Vídeo Aula</h2></div>
			</div><div class="et_pb_module  et_pb_video et_pb_video_2">
				
				
				
				
				<div class="et_pb_video_box"><iframe loading="lazy" title="Aula 07 - Symfony 5 - Como os Recipes Funcionam - Curso gratuito de Symfony PHP 7" width="1080" height="608" src="https://www.youtube.com/embed/Id8UoxOpxZA?feature=oembed"  allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe></div>
				
			</div>
			</div>
				
				
				
				
			</div><div class="et_pb_row et_pb_row_14">
				<div class="et_pb_column et_pb_column_1_2 et_pb_column_21  et_pb_css_mix_blend_mode_passthrough">
				
				
				
				
				<div class="et_pb_button_module_wrapper et_pb_button_7_wrapper et_pb_button_alignment_left et_pb_module ">
				<a class="et_pb_button et_pb_button_7 et_pb_bg_layout_light" href="https://policast.studio/aula-06-symfony-5-flex-recipes-e-alias/" data-icon="&amp;#x34;">Aula Anterior</a>
			</div>
			</div><div class="et_pb_column et_pb_column_1_2 et_pb_column_22  et_pb_css_mix_blend_mode_passthrough et-last-child">
				
				
				
				
				<div class="et_pb_button_module_wrapper et_pb_button_8_wrapper et_pb_button_alignment_right et_pb_module ">
				<a class="et_pb_button et_pb_button_8 et_pb_bg_layout_light" href="https://policast.studio/aula-08-symfony-5-twig-recipe/">Próxima Aula</a>
			</div>
			</div>
				
				
				
				
			</div>
				
				
			</div></p>
<p>The post <a rel="nofollow" href="https://policast.studio/aula-07-como-os-recipes-funcionam/">Aula 07 &#8211; Symfony 5 &#8211; Como os Recipes Funcionam</a> appeared first on <a rel="nofollow" href="https://policast.studio">PoliCast - Conhecimento Útil</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Aula 06 – Symfony 5 – Flex, Recipes e Alias</title>
		<link>https://policast.studio/aula-06-symfony-5-flex-recipes-e-alias/</link>
		
		<dc:creator><![CDATA[Jonas Poli]]></dc:creator>
		<pubDate>Mon, 13 Jul 2020 01:13:55 +0000</pubDate>
				<category><![CDATA[Curso]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Symfony]]></category>
		<category><![CDATA[Tutorial]]></category>
		<guid isPermaLink="false">https://policast.studio/?p=116503</guid>

					<description><![CDATA[<p>The post <a rel="nofollow" href="https://policast.studio/aula-06-symfony-5-flex-recipes-e-alias/">Aula 06 – Symfony 5 – Flex, Recipes e Alias</a> appeared first on <a rel="nofollow" href="https://policast.studio">PoliCast - Conhecimento Útil</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><div class="et_pb_section et_pb_section_6 et_section_regular" >
				
				
				
				
				
				
				<div class="et_pb_row et_pb_row_15">
				<div class="et_pb_column et_pb_column_4_4 et_pb_column_23  et_pb_css_mix_blend_mode_passthrough et-last-child">
				
				
				
				
				<div class="et_pb_module  et_pb_text et_pb_text_23  et_pb_text_align_left et_pb_bg_layout_light">
				
				
				
				
				<div class="et_pb_text_inner"><h2>O que é Symfony Flex?</h2></div>
			</div><div class="et_pb_module  et_pb_text et_pb_text_24  et_pb_text_align_left et_pb_bg_layout_light">
				
				
				
				
				<div class="et_pb_text_inner"><p>O Symfony Flex é um plugin para composer especifico para o Symfony. Ele automatiza os principais processos no momento da criação do projeto e quando houver instalação das dependências. Ele pode ser usado a partir da versão 3.4 do Symfony e passou a ser usado por padrão a partir da versão 4. Agora, na versão 5 é usado como padrão.</p></div>
			</div>
			</div>
				
				
				
				
			</div><div class="et_pb_row et_pb_row_16">
				<div class="et_pb_column et_pb_column_1_2 et_pb_column_24  et_pb_css_mix_blend_mode_passthrough">
				
				
				
				
				<div class="et_pb_module  et_pb_image et_pb_image_5">
				
				
				
				
				<span class="et_pb_image_wrap "><img loading="lazy" decoding="async" width="1260" height="560" src="https://policast.studio/wp-content/uploads/2020/07/04tAQXFmZtUKsZagliNBLa6SV6wzJdvU8VyiiDOt.jpeg" alt="Flex Symfony" title="Flex Symfony" srcset="https://policast.studio/wp-content/uploads/2020/07/04tAQXFmZtUKsZagliNBLa6SV6wzJdvU8VyiiDOt.jpeg 1260w, https://policast.studio/wp-content/uploads/2020/07/04tAQXFmZtUKsZagliNBLa6SV6wzJdvU8VyiiDOt-980x436.jpeg 980w, https://policast.studio/wp-content/uploads/2020/07/04tAQXFmZtUKsZagliNBLa6SV6wzJdvU8VyiiDOt-480x213.jpeg 480w" sizes="auto, (min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) 1260px, 100vw" class="wp-image-116513" /></span>
			</div>
			</div><div class="et_pb_column et_pb_column_1_2 et_pb_column_25  et_pb_css_mix_blend_mode_passthrough et-last-child">
				
				
				
				
				<div class="et_pb_module  et_pb_text et_pb_text_25  et_pb_text_align_left et_pb_bg_layout_light">
				
				
				
				
				<div class="et_pb_text_inner"><p>O Flex altera o comportamento padrão de alguns dos comandos do Composer para permitir a automatização das tarefas de gerenciamento do projeto.</p>
<p>Quando realizamos a instalação de um novo pacote do composer, o Symfony Flex verifica dentro de um repositório próprio se existe alguma automatização correspondente a essa dependência, se existir ele executa as ações definidas.<br />Ele pode executar, por exemplo, verificações de segurança ou limpeza de cache imediatamente após executar o composer.</p></div>
			</div><div class="et_pb_button_module_wrapper et_pb_button_9_wrapper  et_pb_module ">
				<a class="et_pb_button et_pb_button_9 et_pb_bg_layout_light" href="https://flex.symfony.com/" target="_blank">Veja o site ofcial</a>
			</div>
			</div>
				
				
				
				
			</div><div class="et_pb_row et_pb_row_17">
				<div class="et_pb_column et_pb_column_1_2 et_pb_column_26  et_pb_css_mix_blend_mode_passthrough">
				
				
				
				
				<div class="et_pb_module  et_pb_text et_pb_text_26  et_pb_text_align_left et_pb_bg_layout_light">
				
				
				
				
				<div class="et_pb_text_inner"><h2>bin/console security:check</h2></div>
			</div><div class="et_pb_module  et_pb_text et_pb_text_27  et_pb_text_align_left et_pb_bg_layout_light">
				
				
				
				
				<div class="et_pb_text_inner"><p>Ao usar muitas dependências em seus projetos Symfony, algumas delas podem conter vulnerabilidades de segurança. É por isso que o Symfony fornece um comando chamadosecurity:check que verifica seu composer em busca de qualquer vulnerabilidade de segurança conhecida nas dependências instaladas.</p>
<p>Para verificar se há vulnerabilidades de segurança conhecidas em suas dependências usadas no seu projeto, você pode utilizar o security-checker.</p>
<p>Primeiro, você precisa instalar o security-checker no seu projeto:</p>
<div class="highlight-terminal notranslate">
<table class="highlighttable">
<tbody>
<tr>
<td class="code">
<div class="highlight">
<pre><span></span><span class="gp" data-content="$"></span> composer require sensiolabs/security-checker
</pre>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<p>Depois, execute este comando:</p>
<div class="highlight-terminal notranslate">
<table class="highlighttable">
<tbody>
<tr>
<td class="code">
<div class="highlight">
<pre><span></span><span class="gp" data-content="$"></span> php bin/console security:check
</pre>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<p>Uma boa prática de segurança é executar esse comando regularmente para poder atualizar ou substituir dependências comprometidas o mais rápido possível.</p></div>
			</div>
			</div><div class="et_pb_column et_pb_column_1_2 et_pb_column_27  et_pb_css_mix_blend_mode_passthrough et-last-child">
				
				
				
				
				<div class="et_pb_module  et_pb_image et_pb_image_6">
				
				
				
				
				<span class="et_pb_image_wrap "><img loading="lazy" decoding="async" width="334" height="311" src="https://policast.studio/wp-content/uploads/2020/07/symfony-security-padlock.png" alt="" title="symfony-security-padlock" srcset="https://policast.studio/wp-content/uploads/2020/07/symfony-security-padlock.png 334w, https://policast.studio/wp-content/uploads/2020/07/symfony-security-padlock-300x279.png 300w" sizes="auto, (max-width: 334px) 100vw, 334px" class="wp-image-116516" /></span>
			</div>
			</div>
				
				
				
				
			</div>
				
				
			</div><div class="et_pb_section et_pb_section_7 et_section_regular" >
				
				
				
				
				
				
				<div class="et_pb_row et_pb_row_18">
				<div class="et_pb_column et_pb_column_4_4 et_pb_column_28  et_pb_css_mix_blend_mode_passthrough et-last-child">
				
				
				
				
				<div class="et_pb_module  et_pb_text et_pb_text_28  et_pb_text_align_left et_pb_bg_layout_light">
				
				
				
				
				<div class="et_pb_text_inner"><h2>Vídeo Aula</h2></div>
			</div><div class="et_pb_module  et_pb_video et_pb_video_3">
				
				
				
				
				<div class="et_pb_video_box"><iframe loading="lazy" title="Aula 06 - Symfony 5 - Flex, Recipes e Alias - Curso gratuito de Symfony PHP 7" width="1080" height="608" src="https://www.youtube.com/embed/uYjiZa8BzIc?feature=oembed"  allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe></div>
				
			</div>
			</div>
				
				
				
				
			</div><div class="et_pb_row et_pb_row_19">
				<div class="et_pb_column et_pb_column_1_2 et_pb_column_29  et_pb_css_mix_blend_mode_passthrough">
				
				
				
				
				<div class="et_pb_button_module_wrapper et_pb_button_10_wrapper et_pb_button_alignment_left et_pb_module ">
				<a class="et_pb_button et_pb_button_10 et_pb_bg_layout_light" href="https://policast.studio/aula-05-symfony-5-git-bin-console/" data-icon="&amp;#x34;">Aula Anterior</a>
			</div>
			</div><div class="et_pb_column et_pb_column_1_2 et_pb_column_30  et_pb_css_mix_blend_mode_passthrough et-last-child">
				
				
				
				
				<div class="et_pb_button_module_wrapper et_pb_button_11_wrapper et_pb_button_alignment_right et_pb_module ">
				<a class="et_pb_button et_pb_button_11 et_pb_bg_layout_light" href="https://policast.studio/aula-07-como-os-recipes-funcionam/">Próxima Aula</a>
			</div>
			</div>
				
				
				
				
			</div>
				
				
			</div></p>
<p>The post <a rel="nofollow" href="https://policast.studio/aula-06-symfony-5-flex-recipes-e-alias/">Aula 06 – Symfony 5 – Flex, Recipes e Alias</a> appeared first on <a rel="nofollow" href="https://policast.studio">PoliCast - Conhecimento Útil</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Aula 05 – Symfony 5 – Git e bin/console</title>
		<link>https://policast.studio/aula-05-symfony-5-git-bin-console/</link>
		
		<dc:creator><![CDATA[Jonas Poli]]></dc:creator>
		<pubDate>Fri, 10 Jul 2020 01:42:51 +0000</pubDate>
				<category><![CDATA[Curso]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Symfony]]></category>
		<category><![CDATA[Tutorial]]></category>
		<guid isPermaLink="false">https://policast.studio/?p=116481</guid>

					<description><![CDATA[<p>The post <a rel="nofollow" href="https://policast.studio/aula-05-symfony-5-git-bin-console/">Aula 05 – Symfony 5 – Git e bin/console</a> appeared first on <a rel="nofollow" href="https://policast.studio">PoliCast - Conhecimento Útil</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><div class="et_pb_section et_pb_section_8 et_section_regular" >
				
				
				
				
				
				
				<div class="et_pb_row et_pb_row_20">
				<div class="et_pb_column et_pb_column_4_4 et_pb_column_31  et_pb_css_mix_blend_mode_passthrough et-last-child">
				
				
				
				
				<div class="et_pb_module  et_pb_text et_pb_text_29  et_pb_text_align_left et_pb_bg_layout_light">
				
				
				
				
				<div class="et_pb_text_inner"><h2>O que é Git?</h2></div>
			</div><div class="et_pb_module  et_pb_text et_pb_text_30  et_pb_text_align_left et_pb_bg_layout_light">
				
				
				
				
				<div class="et_pb_text_inner">Git é um sistema de controle de versões, usado principalmente no desenvolvimento de software, mas pode ser usado para registrar o histórico de edições de qualquer tipo de arquivo. O Git foi inicialmente projetado e desenvolvido por Linus Torvalds para o desenvolvimento do kernel Linux, mas foi adotado por muitos outros projetos.</div>
			</div>
			</div>
				
				
				
				
			</div><div class="et_pb_row et_pb_row_21">
				<div class="et_pb_column et_pb_column_1_2 et_pb_column_32  et_pb_css_mix_blend_mode_passthrough">
				
				
				
				
				<div class="et_pb_module  et_pb_image et_pb_image_7">
				
				
				
				
				<span class="et_pb_image_wrap "><img loading="lazy" decoding="async" width="1280" height="720" src="https://policast.studio/wp-content/uploads/2020/07/maxresdefault.jpg" alt="Git Status" title="Git Status" srcset="https://policast.studio/wp-content/uploads/2020/07/maxresdefault.jpg 1280w, https://policast.studio/wp-content/uploads/2020/07/maxresdefault-980x551.jpg 980w, https://policast.studio/wp-content/uploads/2020/07/maxresdefault-480x270.jpg 480w" sizes="auto, (min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) 1280px, 100vw" class="wp-image-116487" /></span>
			</div>
			</div><div class="et_pb_column et_pb_column_1_2 et_pb_column_33  et_pb_css_mix_blend_mode_passthrough et-last-child">
				
				
				
				
				<div class="et_pb_module  et_pb_text et_pb_text_31  et_pb_text_align_left et_pb_bg_layout_light">
				
				
				
				
				<div class="et_pb_text_inner">O Comando Git Status verifica quais os estados que os arquivos estão. Se existe algum arquivo modificado, adiciona ou removido. Além disso, caso esteja rastreado com uma branch no servidor, verifica se a versão está a frente ou atrás da versão do servidor.</div>
			</div><div class="et_pb_button_module_wrapper et_pb_button_12_wrapper  et_pb_module ">
				<a class="et_pb_button et_pb_button_12 et_pb_bg_layout_light" href="https://git-scm.com/" target="_blank">Conheça o projeto</a>
			</div>
			</div>
				
				
				
				
			</div><div class="et_pb_row et_pb_row_22">
				<div class="et_pb_column et_pb_column_1_2 et_pb_column_34  et_pb_css_mix_blend_mode_passthrough">
				
				
				
				
				<div class="et_pb_module  et_pb_text et_pb_text_32  et_pb_text_align_left et_pb_bg_layout_light">
				
				
				
				
				<div class="et_pb_text_inner"><h2>Console Log</h2></div>
			</div><div class="et_pb_module  et_pb_text et_pb_text_33  et_pb_text_align_left et_pb_bg_layout_light">
				
				
				
				
				<div class="et_pb_text_inner">A estrutura do Symfony fornece muitos comandos através do bin/console. Esses comandos são criados com o componente Console . Você também pode usá-lo para criar seus próprios comandos.</p>
<p>Um exemplo de comando a ser usado é o  bin/console cache:clear, que limpa a cache do projeto.</p>
<p>Outro exemplo é o comando bin/console bin/console debug:route, que lista as rotas do sistema.</div>
			</div>
			</div><div class="et_pb_column et_pb_column_1_2 et_pb_column_35  et_pb_css_mix_blend_mode_passthrough et-last-child">
				
				
				
				
				<div class="et_pb_module  et_pb_image et_pb_image_8">
				
				
				
				
				<span class="et_pb_image_wrap "><img loading="lazy" decoding="async" width="1230" height="410" src="https://policast.studio/wp-content/uploads/2020/07/Screen-Shot-2020-07-07-at-21.01.33.png" alt="bin/console debug:route" title="bin/console debug:route" srcset="https://policast.studio/wp-content/uploads/2020/07/Screen-Shot-2020-07-07-at-21.01.33.png 1230w, https://policast.studio/wp-content/uploads/2020/07/Screen-Shot-2020-07-07-at-21.01.33-980x327.png 980w, https://policast.studio/wp-content/uploads/2020/07/Screen-Shot-2020-07-07-at-21.01.33-480x160.png 480w" sizes="auto, (min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) 1230px, 100vw" class="wp-image-116488" /></span>
			</div>
			</div>
				
				
				
				
			</div>
				
				
			</div><div class="et_pb_section et_pb_section_9 et_section_regular" >
				
				
				
				
				
				
				<div class="et_pb_row et_pb_row_23">
				<div class="et_pb_column et_pb_column_4_4 et_pb_column_36  et_pb_css_mix_blend_mode_passthrough et-last-child">
				
				
				
				
				<div class="et_pb_module  et_pb_text et_pb_text_34  et_pb_text_align_left et_pb_bg_layout_light">
				
				
				
				
				<div class="et_pb_text_inner"><h2>Vídeo Aula</h2></div>
			</div><div class="et_pb_module  et_pb_video et_pb_video_4">
				
				
				
				
				<div class="et_pb_video_box"><iframe loading="lazy" title="Aula 05 - Symfony 5 - Git e Console - Curso gratuito de Symfony PHP 7" width="1080" height="608" src="https://www.youtube.com/embed/lAVUYq08Zm0?feature=oembed"  allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe></div>
				
			</div>
			</div>
				
				
				
				
			</div><div class="et_pb_row et_pb_row_24">
				<div class="et_pb_column et_pb_column_1_2 et_pb_column_37  et_pb_css_mix_blend_mode_passthrough">
				
				
				
				
				<div class="et_pb_button_module_wrapper et_pb_button_13_wrapper et_pb_button_alignment_left et_pb_module ">
				<a class="et_pb_button et_pb_button_13 et_pb_bg_layout_light" href="https://policast.studio/aula-04-symfony-5-rotas-com-annotation/" data-icon="&amp;#x34;">Aula Anterior</a>
			</div>
			</div><div class="et_pb_column et_pb_column_1_2 et_pb_column_38  et_pb_css_mix_blend_mode_passthrough et-last-child">
				
				
				
				
				<div class="et_pb_button_module_wrapper et_pb_button_14_wrapper et_pb_button_alignment_right et_pb_module ">
				<a class="et_pb_button et_pb_button_14 et_pb_bg_layout_light" href="https://policast.studio/aula-06-symfony-5-flex-recipes-e-alias/">Próxima Aula</a>
			</div>
			</div>
				
				
				
				
			</div>
				
				
			</div></p>
<p>The post <a rel="nofollow" href="https://policast.studio/aula-05-symfony-5-git-bin-console/">Aula 05 – Symfony 5 – Git e bin/console</a> appeared first on <a rel="nofollow" href="https://policast.studio">PoliCast - Conhecimento Útil</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Aula 04 – Symfony 5 – Rotas com Annotation</title>
		<link>https://policast.studio/aula-04-symfony-5-rotas-com-annotation/</link>
		
		<dc:creator><![CDATA[Jonas Poli]]></dc:creator>
		<pubDate>Tue, 30 Jun 2020 02:21:18 +0000</pubDate>
				<category><![CDATA[Curso]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Symfony]]></category>
		<category><![CDATA[Tutorial]]></category>
		<guid isPermaLink="false">https://policast.studio/?p=116467</guid>

					<description><![CDATA[<p>The post <a rel="nofollow" href="https://policast.studio/aula-04-symfony-5-rotas-com-annotation/">Aula 04 – Symfony 5 – Rotas com Annotation</a> appeared first on <a rel="nofollow" href="https://policast.studio">PoliCast - Conhecimento Útil</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><div class="et_pb_section et_pb_section_10 et_section_regular" >
				
				
				
				
				
				
				<div class="et_pb_row et_pb_row_25">
				<div class="et_pb_column et_pb_column_4_4 et_pb_column_39  et_pb_css_mix_blend_mode_passthrough et-last-child">
				
				
				
				
				<div class="et_pb_module  et_pb_text et_pb_text_35  et_pb_text_align_left et_pb_bg_layout_light">
				
				
				
				
				<div class="et_pb_text_inner"><h2>O que é Annotation?</h2></div>
			</div><div class="et_pb_module  et_pb_text et_pb_text_36  et_pb_text_align_left et_pb_bg_layout_light">
				
				
				
				
				<div class="et_pb_text_inner"><p>O uso de anotações para roteamento simplifica a configuração. Você não precisa procurar vários arquivos criados com diferentes formatos (YAML, XML, PHP): toda a configuração é exatamente onde você precisa e ela usa apenas um formato.</p>
<p>&nbsp;</p></div>
			</div>
			</div>
				
				
				
				
			</div><div class="et_pb_row et_pb_row_26">
				<div class="et_pb_column et_pb_column_1_2 et_pb_column_40  et_pb_css_mix_blend_mode_passthrough">
				
				
				
				
				<div class="et_pb_module  et_pb_image et_pb_image_9">
				
				
				
				
				<span class="et_pb_image_wrap "><img loading="lazy" decoding="async" width="842" height="578" src="https://policast.studio/wp-content/uploads/2020/06/fxY6F.png" alt="Comparação de pesquisa" title="Annotation" srcset="https://policast.studio/wp-content/uploads/2020/06/fxY6F.png 842w, https://policast.studio/wp-content/uploads/2020/06/fxY6F-480x330.png 480w" sizes="auto, (min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) 842px, 100vw" class="wp-image-116474" /></span>
			</div>
			</div><div class="et_pb_column et_pb_column_1_2 et_pb_column_41  et_pb_css_mix_blend_mode_passthrough et-last-child">
				
				
				
				
				<div class="et_pb_module  et_pb_text et_pb_text_37  et_pb_text_align_left et_pb_bg_layout_light">
				
				
				
				
				<div class="et_pb_text_inner"><p>Annotation é a forma mais eficiente de se configurar suas rotas. Isso se deve ao fato de você conseguir deixar tanto a rota (route)  como a ação (action) no mesmo arquivo, de forma que fica muito mais fácil identificar qual rota chama qual ação.</p></div>
			</div>
			</div>
				
				
				
				
			</div><div class="et_pb_row et_pb_row_27">
				<div class="et_pb_column et_pb_column_1_2 et_pb_column_42  et_pb_css_mix_blend_mode_passthrough">
				
				
				
				
				<div class="et_pb_module  et_pb_text et_pb_text_38  et_pb_text_align_left et_pb_bg_layout_light">
				
				
				
				
				<div class="et_pb_text_inner"><h2>O que é uma rota curinga?</h2></div>
			</div><div class="et_pb_module  et_pb_text et_pb_text_39  et_pb_text_align_left et_pb_bg_layout_light">
				
				
				
				
				<div class="et_pb_text_inner"><div class="tlid-input input">
<div class="source-wrap">
<div class="input-full-height-wrapper tlid-input-full-height-wrapper">
<div class="source-input">
<div class="source-footer-wrap source-or-target-footer">
<div class="character-count tlid-character-count">As rotas curinga permitem que uma rota responda aos parâmetros dinâmicos de um URL. Se uma rota tiver segmentos URI dinâmicos, eles serão transmitidos ao controlador como uma variável.</div>
</div>
</div>
</div>
</div>
</div></div>
			</div>
			</div><div class="et_pb_column et_pb_column_1_2 et_pb_column_43  et_pb_css_mix_blend_mode_passthrough et-last-child">
				
				
				
				
				<div class="et_pb_module  et_pb_image et_pb_image_10">
				
				
				
				
				<span class="et_pb_image_wrap "><img loading="lazy" decoding="async" width="600" height="506" src="https://policast.studio/wp-content/uploads/2020/06/curinga.png" alt="Controller" title="curinga" srcset="https://policast.studio/wp-content/uploads/2020/06/curinga.png 600w, https://policast.studio/wp-content/uploads/2020/06/curinga-480x405.png 480w" sizes="auto, (min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) 600px, 100vw" class="wp-image-116475" /></span>
			</div>
			</div>
				
				
				
				
			</div>
				
				
			</div><div class="et_pb_section et_pb_section_11 et_section_regular" >
				
				
				
				
				
				
				<div class="et_pb_row et_pb_row_28">
				<div class="et_pb_column et_pb_column_4_4 et_pb_column_44  et_pb_css_mix_blend_mode_passthrough et-last-child">
				
				
				
				
				<div class="et_pb_module  et_pb_text et_pb_text_40  et_pb_text_align_left et_pb_bg_layout_light">
				
				
				
				
				<div class="et_pb_text_inner"><h2>Vídeo Aula</h2></div>
			</div><div class="et_pb_module  et_pb_video et_pb_video_5">
				
				
				
				
				<div class="et_pb_video_box"><iframe loading="lazy" title="Aula 04 - Symfony 5 - Rotas com Annotation - Curso gratuito de Symfony PHP 7" width="1080" height="608" src="https://www.youtube.com/embed/WRFXvoUMDJo?feature=oembed"  allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe></div>
				
			</div>
			</div>
				
				
				
				
			</div><div class="et_pb_row et_pb_row_29">
				<div class="et_pb_column et_pb_column_1_2 et_pb_column_45  et_pb_css_mix_blend_mode_passthrough">
				
				
				
				
				<div class="et_pb_button_module_wrapper et_pb_button_15_wrapper et_pb_button_alignment_left et_pb_module ">
				<a class="et_pb_button et_pb_button_15 et_pb_bg_layout_light" href="https://policast.studio/aula-03-symfony-5-routes-controllers-e-responses/" data-icon="&amp;#x34;">Aula Anterior</a>
			</div>
			</div><div class="et_pb_column et_pb_column_1_2 et_pb_column_46  et_pb_css_mix_blend_mode_passthrough et-last-child">
				
				
				
				
				<div class="et_pb_button_module_wrapper et_pb_button_16_wrapper et_pb_button_alignment_right et_pb_module ">
				<a class="et_pb_button et_pb_button_16 et_pb_bg_layout_light" href="https://policast.studio/aula-05-symfony-5-git-bin-console/">Próxima Aula</a>
			</div>
			</div>
				
				
				
				
			</div>
				
				
			</div></p>
<p>The post <a rel="nofollow" href="https://policast.studio/aula-04-symfony-5-rotas-com-annotation/">Aula 04 – Symfony 5 – Rotas com Annotation</a> appeared first on <a rel="nofollow" href="https://policast.studio">PoliCast - Conhecimento Útil</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Aula 03 &#8211; Symfony 5 &#8211; Routes, Controllers e Responses</title>
		<link>https://policast.studio/aula-03-symfony-5-routes-controllers-e-responses/</link>
		
		<dc:creator><![CDATA[Jonas Poli]]></dc:creator>
		<pubDate>Sun, 28 Jun 2020 02:48:55 +0000</pubDate>
				<category><![CDATA[Curso]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Symfony]]></category>
		<category><![CDATA[Tutorial]]></category>
		<guid isPermaLink="false">https://policast.studio/?p=116447</guid>

					<description><![CDATA[<p>The post <a rel="nofollow" href="https://policast.studio/aula-03-symfony-5-routes-controllers-e-responses/">Aula 03 &#8211; Symfony 5 &#8211; Routes, Controllers e Responses</a> appeared first on <a rel="nofollow" href="https://policast.studio">PoliCast - Conhecimento Útil</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><div class="et_pb_section et_pb_section_12 et_section_regular" >
				
				
				
				
				
				
				<div class="et_pb_row et_pb_row_30">
				<div class="et_pb_column et_pb_column_4_4 et_pb_column_47  et_pb_css_mix_blend_mode_passthrough et-last-child">
				
				
				
				
				<div class="et_pb_module  et_pb_text et_pb_text_41  et_pb_text_align_left et_pb_bg_layout_light">
				
				
				
				
				<div class="et_pb_text_inner"><h2>O que é uma Rota?</h2></div>
			</div><div class="et_pb_module  et_pb_text et_pb_text_42  et_pb_text_align_left et_pb_bg_layout_light">
				
				
				
				
				<div class="et_pb_text_inner"><p>Em sua essência, o framework de roteamento é um mapa que liga cada URL a uma localização específica dentro de um projeto symfony e vice-versa. Ele pode facilmente criar belas URLs mesmo permanecendo completamente independente da lógica de aplicação. Com melhorias realizadas em versões recentes do symfony, o framework de roteamento agora vai muito além.</p>
<p>&nbsp;</p></div>
			</div>
			</div>
				
				
				
				
			</div><div class="et_pb_row et_pb_row_31">
				<div class="et_pb_column et_pb_column_1_2 et_pb_column_48  et_pb_css_mix_blend_mode_passthrough">
				
				
				
				
				<div class="et_pb_module  et_pb_image et_pb_image_11">
				
				
				
				
				<span class="et_pb_image_wrap "><img loading="lazy" decoding="async" width="1586" height="486" src="https://policast.studio/wp-content/uploads/2020/06/Screen-Shot-2020-06-28-at-00.19.47.png" alt="Comparação de pesquisa" title="Screen Shot 2020-06-28 at 00.19.47" srcset="https://policast.studio/wp-content/uploads/2020/06/Screen-Shot-2020-06-28-at-00.19.47.png 1586w, https://policast.studio/wp-content/uploads/2020/06/Screen-Shot-2020-06-28-at-00.19.47-1280x392.png 1280w, https://policast.studio/wp-content/uploads/2020/06/Screen-Shot-2020-06-28-at-00.19.47-980x300.png 980w, https://policast.studio/wp-content/uploads/2020/06/Screen-Shot-2020-06-28-at-00.19.47-480x147.png 480w" sizes="auto, (min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) and (max-width: 1280px) 1280px, (min-width: 1281px) 1586px, 100vw" class="wp-image-116460" /></span>
			</div>
			</div><div class="et_pb_column et_pb_column_1_2 et_pb_column_49  et_pb_css_mix_blend_mode_passthrough et-last-child">
				
				
				
				
				<div class="et_pb_module  et_pb_text et_pb_text_43  et_pb_text_align_left et_pb_bg_layout_light">
				
				
				
				
				<div class="et_pb_text_inner"><p>Apesar do fato de a maioria das rotas serem definidas em um arquivo YAML, cada entrada neste arquivo é transformada em um objeto real no momento da requisição através de um tipo especial de classe chamada de manipulador de configuração de cache. O resultado final é um código PHP que representa cada rota na aplicação. Embora as especificidades deste processo estão fora do escopo deste capítulo, vamos dar uma olhada na versão final, compilada da rota page_show. O arquivo compilado está localizado em cache/nomedoseuapp/nomeambiente/config/config_routing.yml.php para o ambiente e aplicação específicos.</p></div>
			</div>
			</div>
				
				
				
				
			</div><div class="et_pb_row et_pb_row_32">
				<div class="et_pb_column et_pb_column_1_2 et_pb_column_50  et_pb_css_mix_blend_mode_passthrough">
				
				
				
				
				<div class="et_pb_module  et_pb_text et_pb_text_44  et_pb_text_align_left et_pb_bg_layout_light">
				
				
				
				
				<div class="et_pb_text_inner"><h2>O que é um Controller e um Response?</h2></div>
			</div><div class="et_pb_module  et_pb_text et_pb_text_45  et_pb_text_align_left et_pb_bg_layout_light">
				
				
				
				
				<div class="et_pb_text_inner"><div class="tlid-input input">
<div class="source-wrap">
<div class="input-full-height-wrapper tlid-input-full-height-wrapper">
<div class="source-input">
<div class="source-footer-wrap source-or-target-footer">
<div class="character-count tlid-character-count"></div>
<div class="source-footer">
<div class="speech-wrap source-or-target-footer-button left-positioned">
<div id="gt-speech" class="speech-button goog-toolbar-button" aria-label="Ativar entrada de texto por voz" data-tooltip-align="t,c" aria-pressed="false" role="button" aria-disabled="false" data-tooltip="Ativar entrada de texto por voz" tabindex="0"><span title="">Um <strong>Controller</strong> é uma função PHP que você cria que lê informações do objeto <strong>Request</strong> e cria e retorna um objeto <strong>Response</strong>.</span></div>
<div class="speech-button goog-toolbar-button" aria-label="Ativar entrada de texto por voz" data-tooltip-align="t,c" aria-pressed="false" role="button" aria-disabled="false" data-tooltip="Ativar entrada de texto por voz" tabindex="0"><span title=""></span></div>
<div class="speech-button goog-toolbar-button" aria-label="Ativar entrada de texto por voz" data-tooltip-align="t,c" aria-pressed="false" role="button" aria-disabled="false" data-tooltip="Ativar entrada de texto por voz" tabindex="0"><span title="">Uma Request é o que vem pela Rota</span></div>
<div class="speech-button goog-toolbar-button" aria-label="Ativar entrada de texto por voz" data-tooltip-align="t,c" aria-pressed="false" role="button" aria-disabled="false" data-tooltip="Ativar entrada de texto por voz" tabindex="0"><span title=""></span></div>
<div class="speech-button goog-toolbar-button" aria-label="Ativar entrada de texto por voz" data-tooltip-align="t,c" aria-pressed="false" role="button" aria-disabled="false" data-tooltip="Ativar entrada de texto por voz" tabindex="0"><span title="" class="">A resposta, ou a <strong>Response</strong>, pode ser uma página HTML, JSON, XML, um download de arquivo, um redirecionamento, um erro 404 ou qualquer outra coisa.</span></div>
<div class="speech-button goog-toolbar-button" aria-label="Ativar entrada de texto por voz" data-tooltip-align="t,c" aria-pressed="false" role="button" aria-disabled="false" data-tooltip="Ativar entrada de texto por voz" tabindex="0"><span title="" class=""></span></div>
<div class="speech-button goog-toolbar-button" aria-label="Ativar entrada de texto por voz" data-tooltip-align="t,c" aria-pressed="false" role="button" aria-disabled="false" data-tooltip="Ativar entrada de texto por voz" tabindex="0"><span title="" class="">O controlador executa qualquer lógica arbitrária que seu aplicativo precise para renderizar o conteúdo de uma página.</span></div>
</div>
</div>
</div>
</div>
</div>
</div>
</div></div>
			</div>
			</div><div class="et_pb_column et_pb_column_1_2 et_pb_column_51  et_pb_css_mix_blend_mode_passthrough et-last-child">
				
				
				
				
				<div class="et_pb_module  et_pb_image et_pb_image_12">
				
				
				
				
				<span class="et_pb_image_wrap "><img loading="lazy" decoding="async" width="1000" height="1000" src="https://policast.studio/wp-content/uploads/2020/06/Controller-SNES-2_1024x.png" alt="Controller" title="Controller" srcset="https://policast.studio/wp-content/uploads/2020/06/Controller-SNES-2_1024x.png 1000w, https://policast.studio/wp-content/uploads/2020/06/Controller-SNES-2_1024x-980x980.png 980w, https://policast.studio/wp-content/uploads/2020/06/Controller-SNES-2_1024x-480x480.png 480w" sizes="auto, (min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) 1000px, 100vw" class="wp-image-116461" /></span>
			</div>
			</div>
				
				
				
				
			</div>
				
				
			</div><div class="et_pb_section et_pb_section_13 et_section_regular" >
				
				
				
				
				
				
				<div class="et_pb_row et_pb_row_33">
				<div class="et_pb_column et_pb_column_4_4 et_pb_column_52  et_pb_css_mix_blend_mode_passthrough et-last-child">
				
				
				
				
				<div class="et_pb_module  et_pb_text et_pb_text_46  et_pb_text_align_left et_pb_bg_layout_light">
				
				
				
				
				<div class="et_pb_text_inner"><h2>Vídeo Aula</h2></div>
			</div><div class="et_pb_module  et_pb_video et_pb_video_6">
				
				
				
				
				<div class="et_pb_video_box"><iframe loading="lazy" title="Aula 03 - Symfony 5 - Routes, Controllers e Responses - Curso gratuito de Symfony PHP 7" width="1080" height="608" src="https://www.youtube.com/embed/7rHfPECHmq8?feature=oembed"  allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe></div>
				
			</div>
			</div>
				
				
				
				
			</div><div class="et_pb_row et_pb_row_34">
				<div class="et_pb_column et_pb_column_1_2 et_pb_column_53  et_pb_css_mix_blend_mode_passthrough">
				
				
				
				
				<div class="et_pb_button_module_wrapper et_pb_button_17_wrapper et_pb_button_alignment_left et_pb_module ">
				<a class="et_pb_button et_pb_button_17 et_pb_bg_layout_light" href="https://policast.studio/auto-draft/" data-icon="&amp;#x34;">Aula Anterior</a>
			</div>
			</div><div class="et_pb_column et_pb_column_1_2 et_pb_column_54  et_pb_css_mix_blend_mode_passthrough et-last-child">
				
				
				
				
				<div class="et_pb_button_module_wrapper et_pb_button_18_wrapper et_pb_button_alignment_right et_pb_module ">
				<a class="et_pb_button et_pb_button_18 et_pb_bg_layout_light" href="https://policast.studio/aula-04-symfony-5-rotas-com-annotation/">Próxima Aula</a>
			</div>
			</div>
				
				
				
				
			</div>
				
				
			</div></p>
<p>The post <a rel="nofollow" href="https://policast.studio/aula-03-symfony-5-routes-controllers-e-responses/">Aula 03 &#8211; Symfony 5 &#8211; Routes, Controllers e Responses</a> appeared first on <a rel="nofollow" href="https://policast.studio">PoliCast - Conhecimento Útil</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Aula 02 &#8211; Symfony 5 &#8211; Configuração Mínima</title>
		<link>https://policast.studio/auto-draft/</link>
		
		<dc:creator><![CDATA[Jonas Poli]]></dc:creator>
		<pubDate>Sun, 28 Jun 2020 02:46:09 +0000</pubDate>
				<category><![CDATA[Curso]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Symfony]]></category>
		<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[symfony]]></category>
		<guid isPermaLink="false">https://policast.studio/?p=116442</guid>

					<description><![CDATA[<p>The post <a rel="nofollow" href="https://policast.studio/auto-draft/">Aula 02 &#8211; Symfony 5 &#8211; Configuração Mínima</a> appeared first on <a rel="nofollow" href="https://policast.studio">PoliCast - Conhecimento Útil</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><div class="et_pb_section et_pb_section_14 et_section_regular" >
				
				
				
				
				
				
				<div class="et_pb_row et_pb_row_35">
				<div class="et_pb_column et_pb_column_4_4 et_pb_column_55  et_pb_css_mix_blend_mode_passthrough et-last-child">
				
				
				
				
				<div class="et_pb_module  et_pb_text et_pb_text_47  et_pb_text_align_left et_pb_bg_layout_light">
				
				
				
				
				<div class="et_pb_text_inner"><h2>Como configurar o Symfony?</h2></div>
			</div><div class="et_pb_module  et_pb_text et_pb_text_48  et_pb_text_align_left et_pb_bg_layout_light">
				
				
				
				
				<div class="et_pb_text_inner"><p>Existem apenas três diretórios nos quais você precisa pensar. Primeiro, public/é a raiz do documento: portanto, ele conterá todos os arquivos que precisam ser acessíveis por um navegador.</p></div>
			</div>
			</div>
				
				
				
				
			</div><div class="et_pb_row et_pb_row_36">
				<div class="et_pb_column et_pb_column_1_2 et_pb_column_56  et_pb_css_mix_blend_mode_passthrough">
				
				
				
				
				<div class="et_pb_module  et_pb_image et_pb_image_13">
				
				
				
				
				<span class="et_pb_image_wrap "><img loading="lazy" decoding="async" width="464" height="654" src="https://policast.studio/wp-content/uploads/2020/06/Screen-Shot-2020-06-28-at-00.05.04.png" alt="Public" title="Public" srcset="https://policast.studio/wp-content/uploads/2020/06/Screen-Shot-2020-06-28-at-00.05.04.png 464w, https://policast.studio/wp-content/uploads/2020/06/Screen-Shot-2020-06-28-at-00.05.04-213x300.png 213w" sizes="auto, (max-width: 464px) 100vw, 464px" class="wp-image-116457" /></span>
			</div>
			</div><div class="et_pb_column et_pb_column_1_2 et_pb_column_57  et_pb_css_mix_blend_mode_passthrough et-last-child">
				
				
				
				
				<div class="et_pb_module  et_pb_text et_pb_text_49  et_pb_text_align_left et_pb_bg_layout_light">
				
				
				
				
				<div class="et_pb_text_inner"><h2>O diretório público</h2>
<p>Este diretório é chamado de <strong>&#8220;front controller&#8221;</strong> apenas uma palavra sofisticada que usamos para expressar que esse é o arquivo que é executado pelo seu servidor da web.</p>
<p>Basicamente o Front Controller trata todas as chamadas vindas de um site web e é organizado em duas partes: através de um <strong>Manipulador Web</strong> e uma <strong>hierarquia de Comandos</strong>. O Manipulador Web é o objeto que efetivamente recebe as solicitações HTTP do tipo POST ou GET do servidor web. Ele extrai as informações necessárias da URL e das solicitações e então decide que tipo de ação iniciar e por fim delega a um objeto Comando para executar a ação. Vale salientar que tanto o Manipulador Web quanto o objeto Comando são partes do Front Controller. Dessa forma, o Comando escolhe qual Visão (ou página) usar para a resposta. O Manipulador Web tem como única responsabilidade escolher qual Comando executar.</p></div>
			</div>
			</div>
				
				
				
				
			</div><div class="et_pb_row et_pb_row_37">
				<div class="et_pb_column et_pb_column_1_2 et_pb_column_58  et_pb_css_mix_blend_mode_passthrough">
				
				
				
				
				<div class="et_pb_module  et_pb_text et_pb_text_50  et_pb_text_align_left et_pb_bg_layout_light">
				
				
				
				
				<div class="et_pb_text_inner"><h2>Diretório src e config </h2></div>
			</div><div class="et_pb_module  et_pb_text et_pb_text_51  et_pb_text_align_left et_pb_bg_layout_light">
				
				
				
				
				<div class="et_pb_text_inner"><p>O Diretório <strong>config</strong> contém os arquivos de configuração e <strong>src (Source) </strong>é o local onde vai todo o seu código PHP.</p></div>
			</div>
			</div><div class="et_pb_column et_pb_column_1_2 et_pb_column_59  et_pb_css_mix_blend_mode_passthrough et-last-child">
				
				
				
				
				<div class="et_pb_module  et_pb_image et_pb_image_14">
				
				
				
				
				<span class="et_pb_image_wrap "><img loading="lazy" decoding="async" width="458" height="618" src="https://policast.studio/wp-content/uploads/2020/06/Screen-Shot-2020-06-28-at-00.09.49.png" alt="Diretório Config" title="Diretório Config" srcset="https://policast.studio/wp-content/uploads/2020/06/Screen-Shot-2020-06-28-at-00.09.49.png 458w, https://policast.studio/wp-content/uploads/2020/06/Screen-Shot-2020-06-28-at-00.09.49-222x300.png 222w" sizes="auto, (max-width: 458px) 100vw, 458px" class="wp-image-116458" /></span>
			</div>
			</div>
				
				
				
				
			</div>
				
				
			</div><div class="et_pb_section et_pb_section_15 et_section_regular" >
				
				
				
				
				
				
				<div class="et_pb_row et_pb_row_38">
				<div class="et_pb_column et_pb_column_4_4 et_pb_column_60  et_pb_css_mix_blend_mode_passthrough et-last-child">
				
				
				
				
				<div class="et_pb_module  et_pb_text et_pb_text_52  et_pb_text_align_left et_pb_bg_layout_light">
				
				
				
				
				<div class="et_pb_text_inner"><h2>Vídeo Aula</h2></div>
			</div><div class="et_pb_module  et_pb_video et_pb_video_7">
				
				
				
				
				<div class="et_pb_video_box"><iframe loading="lazy" title="Aula 02 - Symfony 5 - Configuração Mínima - Curso gratuito de Symfony PHP 7" width="1080" height="608" src="https://www.youtube.com/embed/zFYoN4hr1Ro?feature=oembed"  allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe></div>
				
			</div>
			</div>
				
				
				
				
			</div><div class="et_pb_row et_pb_row_39">
				<div class="et_pb_column et_pb_column_1_2 et_pb_column_61  et_pb_css_mix_blend_mode_passthrough">
				
				
				
				
				<div class="et_pb_button_module_wrapper et_pb_button_19_wrapper et_pb_button_alignment_left et_pb_module ">
				<a class="et_pb_button et_pb_button_19 et_pb_bg_layout_light" href="https://policast.studio/aula-01-symfony-5-criando-seu-primeiro-projeto/" data-icon="&amp;#x34;">Aula Anterior</a>
			</div>
			</div><div class="et_pb_column et_pb_column_1_2 et_pb_column_62  et_pb_css_mix_blend_mode_passthrough et-last-child">
				
				
				
				
				<div class="et_pb_button_module_wrapper et_pb_button_20_wrapper et_pb_button_alignment_right et_pb_module ">
				<a class="et_pb_button et_pb_button_20 et_pb_bg_layout_light" href="https://policast.studio/aula-03-symfony-5-routes-controllers-e-responses/">Próxima Aula</a>
			</div>
			</div>
				
				
				
				
			</div>
				
				
			</div></p>
<p>The post <a rel="nofollow" href="https://policast.studio/auto-draft/">Aula 02 &#8211; Symfony 5 &#8211; Configuração Mínima</a> appeared first on <a rel="nofollow" href="https://policast.studio">PoliCast - Conhecimento Útil</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Aula 01 &#8211; Symfony 5 &#8211; Criando seu primeiro projeto</title>
		<link>https://policast.studio/aula-01-symfony-5-criando-seu-primeiro-projeto/</link>
		
		<dc:creator><![CDATA[Jonas Poli]]></dc:creator>
		<pubDate>Fri, 26 Jun 2020 18:01:56 +0000</pubDate>
				<category><![CDATA[Curso]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Symfony]]></category>
		<category><![CDATA[Tutorial]]></category>
		<guid isPermaLink="false">https://policast.studio/?p=116413</guid>

					<description><![CDATA[<p>The post <a rel="nofollow" href="https://policast.studio/aula-01-symfony-5-criando-seu-primeiro-projeto/">Aula 01 &#8211; Symfony 5 &#8211; Criando seu primeiro projeto</a> appeared first on <a rel="nofollow" href="https://policast.studio">PoliCast - Conhecimento Útil</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><div class="et_pb_section et_pb_section_16 et_section_regular" >
				
				
				
				
				
				
				<div class="et_pb_row et_pb_row_40">
				<div class="et_pb_column et_pb_column_4_4 et_pb_column_63  et_pb_css_mix_blend_mode_passthrough et-last-child">
				
				
				
				
				<div class="et_pb_module  et_pb_text et_pb_text_53  et_pb_text_align_left et_pb_bg_layout_light">
				
				
				
				
				<div class="et_pb_text_inner"><h2>O que é Symfony?</h2></div>
			</div><div class="et_pb_module  et_pb_text et_pb_text_54  et_pb_text_align_left et_pb_bg_layout_light">
				
				
				
				
				<div class="et_pb_text_inner"><p>O framework symfony é um projeto Open-Source que há anos tornou-se um dos mais populares frameworks PHP graças as suas poderosas características e a sua excelente documentação.</p></div>
			</div>
			</div>
				
				
				
				
			</div><div class="et_pb_row et_pb_row_41">
				<div class="et_pb_column et_pb_column_1_2 et_pb_column_64  et_pb_css_mix_blend_mode_passthrough">
				
				
				
				
				<div class="et_pb_module  et_pb_image et_pb_image_15">
				
				
				
				
				<span class="et_pb_image_wrap "><img loading="lazy" decoding="async" width="2340" height="822" src="https://policast.studio/wp-content/uploads/2020/06/Screen-Shot-2020-06-26-at-14.50.10.png" alt="Comparação de pesquisa" title="Comparação de pesquisa" srcset="https://policast.studio/wp-content/uploads/2020/06/Screen-Shot-2020-06-26-at-14.50.10.png 2340w, https://policast.studio/wp-content/uploads/2020/06/Screen-Shot-2020-06-26-at-14.50.10-1280x450.png 1280w, https://policast.studio/wp-content/uploads/2020/06/Screen-Shot-2020-06-26-at-14.50.10-980x344.png 980w, https://policast.studio/wp-content/uploads/2020/06/Screen-Shot-2020-06-26-at-14.50.10-480x169.png 480w" sizes="auto, (min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) and (max-width: 1280px) 1280px, (min-width: 1281px) 2340px, 100vw" class="wp-image-116414" /></span>
			</div>
			</div><div class="et_pb_column et_pb_column_1_2 et_pb_column_65  et_pb_css_mix_blend_mode_passthrough et-last-child">
				
				
				
				
				<div class="et_pb_module  et_pb_text et_pb_text_55  et_pb_text_align_left et_pb_bg_layout_light">
				
				
				
				
				<div class="et_pb_text_inner"><p>Há algum tempo, o framework mais usado no desenvolvimento em PHP era o Zend. Agora, o Symfony vem se despontando muito mais procurado.</p></div>
			</div><div class="et_pb_button_module_wrapper et_pb_button_21_wrapper  et_pb_module ">
				<a class="et_pb_button et_pb_button_21 et_pb_bg_layout_light" href="https://trends.google.com.br/trends/explore?date=today%205-y&#038;q=symfony,zend" target="_blank">Veja o Gráfico</a>
			</div>
			</div>
				
				
				
				
			</div><div class="et_pb_row et_pb_row_42">
				<div class="et_pb_column et_pb_column_1_2 et_pb_column_66  et_pb_css_mix_blend_mode_passthrough">
				
				
				
				
				<div class="et_pb_module  et_pb_text et_pb_text_56  et_pb_text_align_left et_pb_bg_layout_light">
				
				
				
				
				<div class="et_pb_text_inner"><h2>Symfony é Open Source</h2></div>
			</div><div class="et_pb_module  et_pb_text et_pb_text_57  et_pb_text_align_left et_pb_bg_layout_light">
				
				
				
				
				<div class="et_pb_text_inner"><ul>
<li style="font-weight: 400;"><span style="font-weight: 400;">A liberdade de executar o programa como você desejar, para qualquer propósito (liberdade 0).</span></li>
<li style="font-weight: 400;"><span style="font-weight: 400;">A liberdade de estudar como o programa funciona, e adaptá-lo às suas necessidades (liberdade 1). Para tanto, acesso ao código-fonte é um pré-requisito.</span></li>
<li style="font-weight: 400;"><span style="font-weight: 400;">A liberdade de redistribuir cópias de modo que você possa ajudar outros (liberdade 2).</span></li>
<li style="font-weight: 400;"><span style="font-weight: 400;">A liberdade de distribuir cópias de suas versões modificadas a outros (liberdade 3). Desta forma, você pode dar a toda comunidade a chance de beneficiar de suas mudanças. Para tanto, acesso ao código-fonte é um pré-requisito.</span></li>
</ul></div>
			</div>
			</div><div class="et_pb_column et_pb_column_1_2 et_pb_column_67  et_pb_css_mix_blend_mode_passthrough et-last-child">
				
				
				
				
				<div class="et_pb_module  et_pb_image et_pb_image_16">
				
				
				
				
				<span class="et_pb_image_wrap "><img loading="lazy" decoding="async" width="512" height="442" src="https://policast.studio/wp-content/uploads/2020/06/opensouce.png" alt="" title="opensouce" srcset="https://policast.studio/wp-content/uploads/2020/06/opensouce.png 512w, https://policast.studio/wp-content/uploads/2020/06/opensouce-480x414.png 480w" sizes="auto, (min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) 512px, 100vw" class="wp-image-116419" /></span>
			</div>
			</div>
				
				
				
				
			</div>
				
				
			</div><div class="et_pb_section et_pb_section_17 et_section_regular" >
				
				
				
				
				
				
				<div class="et_pb_row et_pb_row_43">
				<div class="et_pb_column et_pb_column_4_4 et_pb_column_68  et_pb_css_mix_blend_mode_passthrough et-last-child">
				
				
				
				
				<div class="et_pb_module  et_pb_text et_pb_text_58  et_pb_text_align_left et_pb_bg_layout_light">
				
				
				
				
				<div class="et_pb_text_inner"><h2>Vídeo Aula</h2></div>
			</div><div class="et_pb_module  et_pb_video et_pb_video_8">
				
				
				
				
				<div class="et_pb_video_box"><iframe loading="lazy" title="Aula 01 - Symfony 5 - Criando seu primeiro projeto - Curso gratuito de Symfony PHP 7" width="1080" height="608" src="https://www.youtube.com/embed/glWw77txato?feature=oembed"  allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe></div>
				
			</div>
			</div>
				
				
				
				
			</div><div class="et_pb_row et_pb_row_44">
				<div class="et_pb_column et_pb_column_1_2 et_pb_column_69  et_pb_css_mix_blend_mode_passthrough et_pb_column_empty">
				
				
				
				
				
			</div><div class="et_pb_column et_pb_column_1_2 et_pb_column_70  et_pb_css_mix_blend_mode_passthrough et-last-child">
				
				
				
				
				<div class="et_pb_button_module_wrapper et_pb_button_22_wrapper  et_pb_module ">
				<a class="et_pb_button et_pb_button_22 et_pb_bg_layout_light" href="https://policast.studio/auto-draft/">Próxima Aula </a>
			</div>
			</div>
				
				
				
				
			</div>
				
				
			</div></p>
<p>The post <a rel="nofollow" href="https://policast.studio/aula-01-symfony-5-criando-seu-primeiro-projeto/">Aula 01 &#8211; Symfony 5 &#8211; Criando seu primeiro projeto</a> appeared first on <a rel="nofollow" href="https://policast.studio">PoliCast - Conhecimento Útil</a>.</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
