Преглед изворни кода

[MANUAL] Brazilian Portuguese:

- sync to r20799


git-svn-id: http://framework.zend.com/svn/framework/standard/trunk@21073 44c647ce-9c0f-0410-b52a-842ac1e357ba
mauriciofauth пре 16 година
родитељ
комит
c1724e5960
1 измењених фајлова са 81 додато и 40 уклоњено
  1. 81 40
      documentation/manual/pt-br/module_specs/Zend_View-Controllers.xml

+ 81 - 40
documentation/manual/pt-br/module_specs/Zend_View-Controllers.xml

@@ -1,38 +1,46 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- EN-Revision: 20799 -->
+<!-- Reviewed: no -->
 <sect1 id="zend.view.controllers">
     <title>Scripts Controladores</title>
 
     <para>
-        O controlador é onde você instancia e configura o Zend_View. Você atribui variáveis ao visualizador, instruindo-o a renderizar a saída usando um script particular.
+        O controlador é onde você instancia e configura o <classname>Zend_View</classname>. Você
+        atribui variáveis ao visualizador, instruindo-o a renderizar a saída usando um script
+        particular.
     </para>
 
     <sect2 id="zend.view.controllers.assign">
-
         <title>Atribuindo Variáveis</title>
 
         <para>
-            Seu script controlador deverá atribuir as variáveis necessárias ao visualizador antes de passar o controle para ele. Normalmente, você pode fazer isso atribuindo valores aos nomes de propriedades da instância do visualizador:
+            Seu script controlador deverá atribuir as variáveis necessárias ao visualizador antes de
+            passar o controle para ele. Normalmente, você pode fazer isso atribuindo valores aos
+            nomes de propriedades da instância do visualizador:
         </para>
 
-        <programlisting role="php"><![CDATA[<?php
+        <programlisting language="php"><![CDATA[
 $view = new Zend_View();
 $view->a = "Hay";
 $view->b = "Bee";
 $view->c = "Sea";
-?>]]>
-        </programlisting>
+]]></programlisting>
 
         <para>
-            Porém, isto pode ser tedioso quando você coletar os valores a serem atribuídos a partir de um array ou objeto.
+            Porém, isto pode ser tedioso quando você coletar os valores a serem atribuídos a partir
+            de uma matriz ou objeto.
         </para>
 
         <para>
-            O método assign() permite a atribuições a partir de um array ou objeto "a granel."  O exemplo seguinte tem o mesmo efeito que o exemplo de atribuição de propriedades uma a uma.
+            O método assign() permite a atribuições a partir de uma matriz ou objeto "a granel". O
+            exemplo seguinte tem o mesmo efeito que o exemplo de atribuição de propriedades uma a
+            uma.
         </para>
 
-        <programlisting role="php"><![CDATA[<?php
+        <programlisting language="php"><![CDATA[
 $view = new Zend_View();
 
-// Atribua um array associativo onde a chave é nome da variável
+// atribui uma matriz associativa onde a chave é nome da variável
 // e o valor é proprio valor atribuído.
 $array = array(
     'a' => "Hay",
@@ -41,76 +49,85 @@ $array = array(
 );
 $view->assign($array);
 
-// faça o mesmo com as propriedades públicas do objeto;
-// note a forma a conversão ao tipo array na atribuição.
+// faz o mesmo com as propriedades públicas do objeto;
+// note a forma a conversão ao tipo matriz na atribuição.
 $obj = new StdClass;
 $obj->a = "Hay";
 $obj->b = "Bee";
 $obj->c = "Sea";
 $view->assign((array) $obj);
-?>]]>
-        </programlisting>
+]]></programlisting>
 
         <para>
-            Alternativamente, você pode usar o método assign para fazer atribuições uma-a-uma passando a string contendo o nome da variável, e logo em seguida o valor a ser atribuído.
+            Alternativamente, você pode usar o método assign para fazer atribuições uma a uma
+            passando a string contendo o nome da variável, e logo em seguida o valor a ser
+            atribuído.
         </para>
 
-        <programlisting role="php"><![CDATA[<?php
+        <programlisting language="php"><![CDATA[
 $view = new Zend_View();
 $view->assign('a', "Hay");
 $view->assign('b', "Bee");
 $view->assign('c', "Sea");
-?>]]>
-        </programlisting>
-
+]]></programlisting>
     </sect2>
 
     <sect2 id="zend.view.controllers.render">
-
         <title>Renderizando um Script de Visualização</title>
 
         <para>
-            Uma vez que tenhamos atribuído todas as variáveis necessárias, o controlador irá instruir o Zend_View a renderizar um script de visualização particular. Ele fará isso chamando o método render().  Note que o método irá retornar a visualização renderizada, mas não irá imprimí-la, ficando ao seu encargo fazê-lo (echo() ou print()) no momento apropriado.
+            Uma vez que tenhamos atribuído todas as variáveis necessárias, o controlador irá
+            instruir o <classname>Zend_View</classname> a renderizar um script de visualização
+            particular. Ele fará isso chamando o método render(). Note que o método irá retornar a
+            visualização renderizada, mas não irá imprimí-la, ficando ao seu encargo fazê-lo
+            (echo() ou print()) no momento apropriado.
         </para>
 
-        <programlisting role="php"><![CDATA[<?php
+        <programlisting language="php"><![CDATA[
 $view = new Zend_View();
 $view->a = "Hay";
 $view->b = "Bee";
 $view->c = "Sea";
 echo $view->render('someView.php');
-?>]]>
-        </programlisting>
-
+]]></programlisting>
     </sect2>
 
     <sect2 id="zend.view.controllers.script-paths">
-
-        <title>View Script Paths</title>
+        <title>Caminhos do Script de Visualização</title>
 
         <para>
-            Por padrão, Zend_View espera encontrar os scripts de visualização localizados no mesmo diretório onde reside o script controlador.  Por exemplo, se o seu script controlador estiver em "/path/to/app/controllers" e chamar $view->render('someView.php'), Zend_View irá procurar por ele em "/path/to/app/controllers/someView.php".
+            Por padrão, <classname>Zend_View</classname> espera encontrar os scripts de visualização
+            localizados no mesmo diretório onde reside o script controlador.  Por exemplo, se o seu
+            script controlador estiver em "/path/to/app/controllers" e chamar
+            $view->render('someView.php'), <classname>Zend_View</classname> irá procurar por ele em
+            "/path/to/app/controllers/someView.php".
         </para>
 
         <para>
-            Obviamente, os seus scripts de visualização estarão provavelmente situados em outro lugar.  Para informar ao Zend_View  onde procurar pelos referidos scripts, use o método setScriptPath().
+            Obviamente, os seus scripts de visualização estarão provavelmente situados em outro
+            lugar. Para informar ao <classname>Zend_View</classname> onde procurar pelos referidos
+            scripts, use o método setScriptPath().
         </para>
 
-        <programlisting role="php"><![CDATA[<?php
+        <programlisting language="php"><![CDATA[
 $view = new Zend_View();
 $view->setScriptPath('/path/to/app/views');
-?>]]>
-        </programlisting>
+]]></programlisting>
 
         <para>
-            Agora quando você chamar $view->render('someView.php'), ele irá procurar em "/path/to/app/views/someView.php".
+            Agora quando você chamar $view->render('someView.php'), ele irá procurar em
+            "/path/to/app/views/someView.php".
         </para>
 
         <para>
-            De fato, você pode "empilhar" caminhos usando o método addScriptPath(). A medida que você acrescenta caminhos à pilha, Zend_View irá procurar pela visão no caminho mais recentemente adicionado à pilha.  Isto permite sobrepor visões padronizadas por visões customizadas, permitindo a criação de temas e peles para algumas visões, deixando outras intocadas.
+            De fato, você pode "empilhar" caminhos usando o método addScriptPath(). A medida que
+            você acrescenta caminhos à pilha, <classname>Zend_View</classname> irá procurar pela
+            visão no caminho mais recentemente adicionado à pilha.  Isto permite sobrepor visões
+            padronizadas por visões customizadas, permitindo a criação de "temas" e "peles" para
+            algumas visões, deixando outras intocadas.
         </para>
 
-        <programlisting role="php"><![CDATA[<?php
+        <programlisting language="php"><![CDATA[
 $view = new Zend_View();
 $view->addScriptPath('/path/to/app/views');
 $view->addScriptPath('/path/to/custom/');
@@ -119,12 +136,36 @@ $view->addScriptPath('/path/to/custom/');
 // Zend_View procurará primeiro em "/path/to/custom/booklist.php",
 // depois em "/path/to/app/views/booklist.php", e finalmente no
 // diretório corrente, por "booklist.php".
-?>]]>
-        </programlisting>
-
+]]></programlisting>
+
+        <note>
+            <title>Nunca utilize uma entrada do usuário para definir caminhos de script</title>
+
+            <para>
+                <classname>Zend_View</classname> utiliza caminhos de script para pesquisar e
+                renderizar os scripts de visualização. Como tal, estes diretórios devem ser
+                conhecidos de antemão, e estarem sob seu controle. <emphasis>Nunca</emphasis> defina
+                caminhos de script de visualização com base em entradas do usuário, pois você pode
+                se abrir potencialmente para a vulnerabilidade de Inclusão Local de Arquivo se o
+                caminho especificado incluir percursos ao diretório pai. Por exemplo, a seguinte
+                entrada pode desencadear o problema:
+            </para>
+
+            <programlisting language="php"><![CDATA[
+// $_GET['foo'] == '../../../etc'
+$view->addScriptPath($_GET['foo']);
+$view->render('passwd');
+]]></programlisting>
+
+            <para>
+                Embora este exemplo seja artificial, ele mostra claramente o problema em potencial.
+                Se você <emphasis>deve</emphasis> contar com a entrada do usuário para definir o
+                caminho do script, filtre a entrada de forma apropriada e certifique-se de que os
+                caminhos sejam controlados por sua aplicação.
+            </para>
+        </note>
     </sect2>
-
 </sect1>
 <!--
 vim:se ts=4 sw=4 et:
--->
+-->