<?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>magento Archives - Dicas de PHP</title>
	<atom:link href="https://dicasdephp.com.br/tags/magento-2/feed/" rel="self" type="application/rss+xml" />
	<link>https://dicasdephp.com.br/tags/magento-2/</link>
	<description>PHP de um jeito muito fácil!</description>
	<lastBuildDate>Sun, 27 Mar 2022 01:57:19 +0000</lastBuildDate>
	<language>pt-BR</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.7.1</generator>
	<item>
		<title>MySQL error: Table storage engine for &#8216;catalog_product_relation&#8217; doesn’t have this option</title>
		<link>https://dicasdephp.com.br/mysql-error-table-storage-engine-for-catalog_product_relation-doesnt-have-this-option/</link>
		
		<dc:creator><![CDATA[dicasdephp]]></dc:creator>
		<pubDate>Tue, 20 Dec 2016 01:20:40 +0000</pubDate>
				<category><![CDATA[Magento]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[dump]]></category>
		<category><![CDATA[magento]]></category>
		<category><![CDATA[mysql error]]></category>
		<guid isPermaLink="false">http://dicasdephp.com.br/?p=751</guid>

					<description><![CDATA[<p>Está com esse problema para executar um script SQL no MySQL? O que está ocorrendo é que de definição da tabela não é compatível com sua instalação do MySQL. Esse problema ocorre principalmente ao realizar mysqldump na versão 5.5.x de um banco de dados do Magento, e ao importar em 5.7.x, não ter a opção ... <a title="MySQL error: Table storage engine for &#8216;catalog_product_relation&#8217; doesn’t have this option" class="read-more" href="https://dicasdephp.com.br/mysql-error-table-storage-engine-for-catalog_product_relation-doesnt-have-this-option/" aria-label="More on MySQL error: Table storage engine for &#8216;catalog_product_relation&#8217; doesn’t have this option">Ler mais</a></p>
<p>The post <a href="https://dicasdephp.com.br/mysql-error-table-storage-engine-for-catalog_product_relation-doesnt-have-this-option/">MySQL error: Table storage engine for &#8216;catalog_product_relation&#8217; doesn’t have this option</a> appeared first on <a href="https://dicasdephp.com.br">Dicas de PHP</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Está com esse problema para executar um script SQL no MySQL? O que está ocorrendo é que de definição da tabela não é compatível com sua instalação do MySQL.</p>
<p>Esse problema ocorre principalmente ao realizar mysqldump na versão 5.5.x de um banco de dados do Magento, e ao importar em 5.7.x, não ter a opção para criação da tabela.</p>
<p>O seguinte erro ocorre ao executar o script SQL:</p>
<blockquote><p>ERROR 1031 (HY000) at line 3002: Table storage engine for ‘catalog_product_relation’ doesn’t have this option</p></blockquote>
<h2>O problema</h2>
<p>Isso provavelmente se deve à opção de tabela que você tem em seu CREATE TABLE DDL:</p>
<pre>ROW_FORMAT = FIXED</pre>
<p>Para verificar onde está o problema no scritp, pode executar no terminal o seguinte comando:</p>
<pre>cat magento.sql | grep '=FIXED'</pre>
<p>Somente as linhas que contém a palavra FIXED irão retornar. Para corrigir o problema, podemos realizar uma substituição através de REGEX, como nos exemplos abaixo.</p>
<h2>Solução 1</h2>
<p>Essa solução pode funcionar em SO linux, mas no Mac OSX apresentam erros.</p>
<pre>sed -i 's/ROW_FORMAT=FIXED//g' magento.sql</pre>
<h2>Solução 2</h2>
<p>Para funcionar no terminal do Mac OSX, utilize o comando abaixo:</p>
<pre>LC_ALL=C sed -i '' 's/ROW_FORMAT=FIXED//g' magento.sql</pre>
<p>Depois, é só realizar a importação do dump sem problemas!</p>
<p>The post <a href="https://dicasdephp.com.br/mysql-error-table-storage-engine-for-catalog_product_relation-doesnt-have-this-option/">MySQL error: Table storage engine for &#8216;catalog_product_relation&#8217; doesn’t have this option</a> appeared first on <a href="https://dicasdephp.com.br">Dicas de PHP</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Call to a member function getOptions() &#8211; Magento Bug</title>
		<link>https://dicasdephp.com.br/call-to-a-member-function-getoptions-magento-bug/</link>
		
		<dc:creator><![CDATA[dicasdephp]]></dc:creator>
		<pubDate>Wed, 16 Sep 2015 23:42:50 +0000</pubDate>
				<category><![CDATA[Magento]]></category>
		<category><![CDATA[bug]]></category>
		<category><![CDATA[getOptions]]></category>
		<category><![CDATA[magento]]></category>
		<category><![CDATA[migração]]></category>
		<guid isPermaLink="false">http://www.dicasdephp.com.br/?p=512</guid>

					<description><![CDATA[<p>Se você já se deparou com a seguinte mensagem de erro, &#8220;Call to a member function getOptions()&#8220;, após executar ou migrar uma instalação Magento, descubra neste post como solucionar o problema. Esse erro é extramente simples de resolver. O que acontece é falta de permissão nas pastas chave para que o sistema execute. Por isso, abaixo ... <a title="Call to a member function getOptions() &#8211; Magento Bug" class="read-more" href="https://dicasdephp.com.br/call-to-a-member-function-getoptions-magento-bug/" aria-label="More on Call to a member function getOptions() &#8211; Magento Bug">Ler mais</a></p>
<p>The post <a href="https://dicasdephp.com.br/call-to-a-member-function-getoptions-magento-bug/">Call to a member function getOptions() &#8211; Magento Bug</a> appeared first on <a href="https://dicasdephp.com.br">Dicas de PHP</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Se você já se deparou com a seguinte mensagem de erro, &#8220;<strong>Call to a member function getOptions()</strong>&#8220;, após executar ou migrar uma instalação <strong>Magento</strong>, descubra neste post como solucionar o problema.</p>
<p>Esse erro é extramente simples de resolver. O que acontece é falta de permissão nas pastas chave para que o sistema execute. Por isso, abaixo compartilho os comandos que eu sempre executo após instalar ou transferir uma loja magento de servidor.</p>
<p>Normalizando as permissões de pastas e arquivos do Magento:</p>
<pre>sudo find . -type f -exec chmod 644 {} \; &amp;&amp; sudo find . -type d -exec chmod 755 {} \;</pre>
<p>Permissão para as pastas chaves do Magento:</p>
<pre>chmod -R o+w media var;</pre>
<p>Permissão para leitura do arquivo de configurações do Magento:</p>
<pre>chmod o+w app/etc;</pre>
<p>Resolveu o seu problema também? Espero que sim! Caso não tenha dado certo, deixe seu comentário que vamos te ajudar.</p>
<p>The post <a href="https://dicasdephp.com.br/call-to-a-member-function-getoptions-magento-bug/">Call to a member function getOptions() &#8211; Magento Bug</a> appeared first on <a href="https://dicasdephp.com.br">Dicas de PHP</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>&#8220;Cannot add the item to shopping cart.&#8221; Magento Bug</title>
		<link>https://dicasdephp.com.br/cannot-add-the-item-to-shopping-cart-magento-bug/</link>
		
		<dc:creator><![CDATA[dicasdephp]]></dc:creator>
		<pubDate>Wed, 16 Sep 2015 14:10:59 +0000</pubDate>
				<category><![CDATA[Magento]]></category>
		<category><![CDATA[king host]]></category>
		<category><![CDATA[locaweb]]></category>
		<category><![CDATA[magento]]></category>
		<category><![CDATA[shopping cart]]></category>
		<guid isPermaLink="false">http://www.dicasdephp.com.br/?p=508</guid>

					<description><![CDATA[<p>Se você já passou por essa mensagem de erro no Magento &#8211; Cannot add the item to shopping cart. &#8211; vou mostrar neste post como é possível resolver ele. Basicamente, esse erro vai ocorrer quando o Magento não conseguir localizar o diretório de cache do sistema. Ele só será apresetando quando um cliente tentar inserir um produto no carrinho de ... <a title="&#8220;Cannot add the item to shopping cart.&#8221; Magento Bug" class="read-more" href="https://dicasdephp.com.br/cannot-add-the-item-to-shopping-cart-magento-bug/" aria-label="More on &#8220;Cannot add the item to shopping cart.&#8221; Magento Bug">Ler mais</a></p>
<p>The post <a href="https://dicasdephp.com.br/cannot-add-the-item-to-shopping-cart-magento-bug/">&#8220;Cannot add the item to shopping cart.&#8221; Magento Bug</a> appeared first on <a href="https://dicasdephp.com.br">Dicas de PHP</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Se você já passou por essa mensagem de <strong>erro no Magento</strong> &#8211; <strong>Cannot add the item to shopping cart.</strong> &#8211; vou mostrar neste post como é possível resolver ele.</p>
<p>Basicamente, esse erro vai ocorrer quando o Magento não conseguir localizar o diretório de cache do sistema. Ele só será apresetando quando um cliente tentar inserir um produto no <strong>carrinho de compras</strong>.</p>
<p>Se você habilitar os logs de erro do Magento, irá encontrar a seguinte mensagem no arquivo exception.log: &#8220;<strong>Exception message: cache_dir must be a directory</strong>&#8220;.</p>
<p>Siga os passos seguintes para corrigir o problema. Localize o arquivo lib/Zend/Cache/Backend/File.php e edite as seguintes configurações:</p>
<pre>'cache_dir' =&gt; null</pre>
<pre>'cache_dir' =&gt; 'tmp'</pre>
<p>Após salvar o arquivo e subir ele novamente para o servidor, confira se o problema foi resolvido.</p>
<p>Caso o problema persista, talvez a pasta que você esteja definido como tmp não seja válida. Por isso, recomendo você criar uma pasta no servidor e definir ela com a tmp.</p>
<p>Espero que isso ajude. Se o problema não for resolvido, deixe um comentário com o seu problema.</p>
<p>The post <a href="https://dicasdephp.com.br/cannot-add-the-item-to-shopping-cart-magento-bug/">&#8220;Cannot add the item to shopping cart.&#8221; Magento Bug</a> appeared first on <a href="https://dicasdephp.com.br">Dicas de PHP</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Tutorial de como criar um módulo para Magento</title>
		<link>https://dicasdephp.com.br/tutorial-de-como-criar-um-modulo-para-magento/</link>
		
		<dc:creator><![CDATA[dicasdephp]]></dc:creator>
		<pubDate>Sat, 24 Mar 2012 03:09:55 +0000</pubDate>
				<category><![CDATA[Exemplos]]></category>
		<category><![CDATA[Magento]]></category>
		<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[magento]]></category>
		<category><![CDATA[módulos para magento]]></category>
		<category><![CDATA[observer]]></category>
		<category><![CDATA[tutorial]]></category>
		<guid isPermaLink="false">http://www.dicasdephp.com.br/?p=196</guid>

					<description><![CDATA[<p>Neste tutorial, vou mostrar como é o desenvolvimento de um módulo para plataforma de e-commerce open source Magento. O funcionamento final deste módulo ensinado no tutorial é extremamente simples. A principal idéia é apresentar o funcionamento do Magento, como seria os primeiros passar para o desenvolvimento de um módulo mas complexo para o Magento. O tópicos ... <a title="Tutorial de como criar um módulo para Magento" class="read-more" href="https://dicasdephp.com.br/tutorial-de-como-criar-um-modulo-para-magento/" aria-label="More on Tutorial de como criar um módulo para Magento">Ler mais</a></p>
<p>The post <a href="https://dicasdephp.com.br/tutorial-de-como-criar-um-modulo-para-magento/">Tutorial de como criar um módulo para Magento</a> appeared first on <a href="https://dicasdephp.com.br">Dicas de PHP</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Neste tutorial, vou mostrar como é o desenvolvimento de um módulo para plataforma de e-commerce open source <strong><a title="Magento Commerce" href="http://www.magentocommerce.com/" target="_blank" rel="noopener">Magento</a>.</strong></p>
<p>O funcionamento final deste módulo ensinado no tutorial é extremamente simples. A principal idéia é apresentar o funcionamento do Magento, como seria os primeiros passar para o desenvolvimento de um módulo mas complexo para o Magento.</p>
<p>O tópicos que serão apresentados no tutorial são:</p>
<ul>
<li>A pasta <em>app/code</em>;</li>
<li>A estrutura e criação de um <strong>Módulo para Magento</strong>;</li>
<li>O padrão <em>Observer</em> do Magento;</li>
<li>Criando Logs;</li>
</ul>
<h2>Antes de iniciar o tutorial</h2>
<p>Ao iniciar este tutorial, pressumimos que você já tenha o Magento instalado e rodando no seu servidor de desenvolvimento, e que você tenha permissão para adicionar novos arquivos a estrutura do Magento.</p>
<p>A versão do sistema instalada não fará diferença para este tutorial, pois o conteúdo apresentado é de fundamentos do sistema, e estão presentes em todas versões do sistema: <em><a title="Magento Community" href="http://www.magentocommerce.com/product/community-edition" target="_blank" rel="noopener">Community</a>, Professional e <a title="Magento Enterprise" href="http://www.magentocommerce.com/product/enterprise-overview" target="_blank" rel="noopener">Enterprise</a></em>.</p>
<h2>Desabilitando o cache</h2>
<p>A primeira lição para todo desenvolvedor Magento é desabilitar o cache. Isso deve ser feito pelo painel de administração do sistema, seguindo os passos: <em>Painel de Administração → Sistema → Gerenciamento de Cache → Selecionar Tudo → Ações: Desabilitar → Enviar.</em></p>
<p><em></em>O cache é o principal amigo quando a loja está no servidor de produção, melhorando muito a performance. Mas para o desenvolvedor, é o maior inimigo. Qualquer desenvolvedor de Magento já passou pela experiência de não visualizar suas modificações na loja, pelo simples problema do cache estar ativado! Então isso deve ser o primeiro passo a seguir.</p>
<h2>A pasta app/code</h2>
<p>Os principais arquivos do Magento podem ser encontrados em módulos individuais dentro da pasta <em>app/code</em>, que é dividida em três zonas: <em>community, core e local</em>.</p>
<h3>CORE</h3>
<p>O <em>app/code/core</em> é a pasta onde encontra-se todas as funcionalidades de produtos, categorias, clientes, pagamentos e etc. Até mesmo se você saiba o que está fazendo, <strong>NÃO</strong> deve modificar arquivos presente nessa pasta.</p>
<p>O Magento é estruturado de uma maneira onde você pode alterar a funcionalidade de qualquer um desses arquivos sem precisar modificá-los diretamente, garantindo que sua aplicação continue a prova de atualizações do CORE.</p>
<h3>COMMUNITY</h3>
<p>Como o próprio nome sugere, a pasta <em>app/code/community</em> é o lugar onde deve estar os módulos fornecidos por terceiros (ou seja, equipe não oficial do Magento). Estes módulos podem ser encontrados para baixar na <a title="Magento Connect" href="http://www.magentocommerce.com/magento-connect/" target="_blank" rel="noopener">Magento Connect</a>, e podem ser baixados diretamente pelo &#8220;Downloader&#8221; do sistema.</p>
<h3>LOCAL</h3>
<p>A pasta <em>app/code/local</em> é o caminho que vem vazio na instação do Magento. É o local onde deve ficar os módulos feitos sobre medida para sua instalação Magento. Este é o lugar onde vamos estar trabalhando para a construção do exemplo neste tutorial.</p>
<h2>Estruturando o módulo</h2>
<p>Vamos iniciar a estruturação do <strong>módulo</strong>. Para isso, abra o seu editor de arquivos preferido e navegue até a pasta <em>app/code/local</em> onde vamos criar novas pastas e arquivos.</p>
<h3>Definindo o &#8220;Namespace&#8221; do módulo</h3>
<p>O termo &#8220;Namespace&#8221; é usado para definir o local onde ficará o módulo na pasta <em>local</em>. Por convenção, o nome usado é da empresa que vai desenvolver o módulo, ou o próprio nome do módulo. O Magento usa o &#8220;namespace&#8221; <em>Mage.</em> Para este tutorial vamos criar o &#8220;namespace&#8221; DicasDePhp. Então, o próximo passo é criar a pasta, <em>app/code/local/DicasDePhp</em>.</p>
<h3>Nome do Módulo</h3>
<p>A próxima pasta a ser criada será a do nosso módulo. Com isso, vamos usar o nome do nosso próprio módulo. Como vamos desenvolver um que irá criar logs a cada vez que um produto é criado ou atualizado, o nome do módulo será <em>ProdutoLogs</em>. Criaremos a pasta <em>app/code/local/DicasDePhp/ProdutoLogs</em>.</p>
<p>Fazendo uma pequena revisão até o momento, vamos ter a seguinte árvore de pastas criadas. Lembrando que essa criação de pastas é case-sensitive, com isso é importante capitalizar as palavras conforme abaixo:</p>
<pre>app
   -code
      --local
         ---DicasDePhp
            ----ProdutoLogs</pre>
<p>O próximo passo é criar as configurações do nosso módulo. Para isso vamos criar uma pasta chamada <em>etc</em>, onde ficará os arquivos XML responsáveis pelas configurações dos módulos. Com isso criamos o arquivos app/code/local/DicasDePhp/ProdutoLogs/etc/config.xml.</p>
<p>Este arquivo é responsável por mostrar para o Magento onde encontra-se os arquivos do módulo, versão e eventos do sistema a observar. Por enquanto vamos apenas criar o arquivo simples, conforme código abaixo:</p>
<pre>&lt;?xml version="1.0" encoding="UTF-8"?&gt;
&lt;!-- O nó raiz para a configuração do módulo Magento --&gt;
&lt;config&gt;
    &lt;!-- Nó do módulo contém informações básicas sobre cada módulo Magento --&gt;
    &lt;modules&gt;
        &lt;!--
            Este nó deve corresponder exatamente o nome do namespace e módulos,
            separando as pastas com underline.
        --&gt;
        &lt;DicasDePhp_ProdutoLogs&gt;
            &lt;!-- A versão do módulo. Estamos iniciando na versão 0.0.1 --&gt;
            &lt;version&gt;0.0.1&lt;/version&gt;
        &lt;/DicasDePhp_ProdutoLogs&gt;
    &lt;/modules&gt;
&lt;/config&gt;</pre>
<h2>Ativando o módulo</h2>
<p>O próximo passo é ativar o módulo. Para isso precisamos dizer ao Magento que ele existe, criando um arquivo XML na pasta de módulos do sistema <em>app/etc/modules</em>. O nome do arquivo XML pode ser o de sua preferência. De qualquer maneira o Magento irá ler todos os arquivos presentes na pasta, e interpretar o conteúdo desses arquivos.</p>
<p>Mas por conveção, vamos manter o nome do módulo, evitando que tenhamos arquivos &#8220;perdidos&#8221; na pasta de módulos do sistema. Vamos criar <em>app/etc/modules/DicasDePhp_ ProdutosLog.xml</em> com o seguinte conteúdo:</p>
<pre>&lt;?xml version="1.0" encoding="UTF-8"?&gt;
&lt;config&gt;
    &lt;modules&gt;
        &lt;DicasDePhp_ProdutoLogs&gt;
            &lt;!-- Dizemos se o módulo está ativo: true or false --&gt;
            &lt;active&gt;true&lt;/active&gt;
            &lt;!-- Qual local o módulo está criado. --&gt;
            &lt;codePool&gt;local&lt;/codePool&gt;
        &lt;/DicasDePhp_ProdutoLogs&gt;
    &lt;/modules&gt;
&lt;/config&gt;</pre>
<h2>Verificando o módulo</h2>
<p>Agora já podemos verificar se a instalação feita até o momento está funcionando. Claro que o módulo não executa nenhuma ação até o momento, mas é possível ver se o <strong>Magento</strong> identificou corretamente o módulo <em>ProdutoLogs</em>. Para isso, é necessário fazer o seguinte caminho no sistema: <em>Painel de Administração → Sistema → Configurações → Avançado → Avançado.</em></p>
<p><em></em>Nesta tela, haverá a opção de visualizar os módulos ativos no sistema. O módulo <em>DicasDePhp_ProdutoLogs</em> deverá estar presente na lista. Caso não esteja, pode haver algo errado na configuração.</p>
<p>O primeiro passo é verificar o <em>cache</em> do <strong>Magento</strong>, se ele está <strong>desabilidado</strong>. Caso ele esteja desabilidado, volte alguns passos e verifique novamente o que pode estar errado no seu módulo.</p>
<p>Vamos ver qual a estrutura de nosso módulo até o momento:</p>
<pre>app
   -code
      --local
         ---DicasDePhp
            ----ProdutoLogs
               -----etc
                  ------config.xml

   -etc
      --modules
         ---DicasDePhp_ProdutoLogs.xml</pre>
<h2>Definindo o Evento Observer</h2>
<p>O evento <em>Observer</em> é uma ferramenta poderesa e rápida para você conseguir extender funcionalidades do sistema, podendo assim fazer <em>rewrite</em> ou <em>overwrite</em> de qualquer método ou classe. O que queremos observar neste módulo do tutorial, é ação que o sistema dispara ao após salvar um produto no painel de administração. Então, o código que nós interessa é <em>catalog_product_save_after</em>. Descobrir qual ação precisamos cobrir requer um conhecimento mais avançado das regras de negócio do <strong>Magento</strong>. Isso foge do escopo desse tutorial, mas vou mostrar em outro post, fiquem tranquilos.</p>
<p>Agora, vamos precisar modificar o arquivo <em>config.xml</em> de nosso módulo, conforme abaixo:</p>
<pre>&lt;?xml version="1.0" encoding="UTF-8"?&gt;
&lt;!-- O nó raiz para a configuração do módulo Magento --&gt;
&lt;config&gt;
    &lt;!-- Nó do módulo contém informações básicas sobre cada módulo Magento --&gt;
    &lt;modules&gt;
        &lt;!--
            Este nó deve corresponder exatamente o nome do namespace e módulos,
            separando as pastas com underline.
        --&gt;
        &lt;DicasDePhp_ProdutoLogs&gt;
            &lt;!-- A versão do módulo. Estamos iniciando na versão 0.0.1 --&gt;
            &lt;version&gt;0.0.1&lt;/version&gt;
        &lt;/DicasDePhp_ProdutoLogs&gt;
    &lt;/modules&gt;
    &lt;!-- Configuramos o módulo para ter comportamento no escopo global do sistema --&gt;
    &lt;global&gt;
        &lt;!-- Definindo o evento observer --&gt;
        &lt;events&gt;
            &lt;!-- O código do evento que queremos observar --&gt;
            &lt;catalog_product_save_after&gt;
                &lt;!-- Definição de um observador para este evento --&gt;
                &lt;observers&gt;
                    &lt;!--
                        Identificador único no nó catalog_product_save_after.
                        Por convenção, colocamos o nome do módulo em minúsculo.
                    --&gt;
                    &lt;dicasdephp_produtologs&gt;
                        &lt;!-- O modelo a ser instanciado --&gt;
                        &lt;class&gt;dicasdephp_produtologs/observer&lt;/class&gt;
                        &lt;!-- O método do modelo acima, para ser chamado --&gt;
                        &lt;method&gt;logUpdate&lt;/method&gt;
                        &lt;!-- Geralmente usam o tipo singleton para os observadores --&gt;
                        &lt;type&gt;singleton&lt;/type&gt;

                    &lt;/dicasdephp_produtologs&gt;
                &lt;/observers&gt;
            &lt;/catalog_product_save_after&gt;
        &lt;/events&gt;
    &lt;/global&gt;
&lt;/config&gt;</pre>
<h2>Configurando a pasta dos models</h2>
<p>No evento que definimos acima, fizemos referência a um model que ainda não está criado no tutorial. Precisamos mostrar para o Magento onde encontrar nossos models, atualizando o arquivo <em>config.xml</em> com o seguinte código:</p>
<pre>&lt;?xml version="1.0" encoding="UTF-8"?&gt;
&lt;!-- O nó raiz para a configuração do módulo Magento --&gt;
&lt;config&gt;
    &lt;!-- Nó do módulo contém informações básicas sobre cada módulo Magento --&gt;
    &lt;modules&gt;
        &lt;!--
            Este nó deve corresponder exatamente o nome do namespace e módulos,
            separando as pastas com underline.
        --&gt;
        &lt;DicasDePhp_ProdutoLogs&gt;
            &lt;!-- A versão do módulo. Estamos iniciando na versão 0.0.1 --&gt;
            &lt;version&gt;0.0.1&lt;/version&gt;
        &lt;/DicasDePhp_ProdutoLogs&gt;
    &lt;/modules&gt;
    &lt;!-- Configuramos o módulo para ter comportamento no escopo global do sistema --&gt;
    &lt;global&gt;
        &lt;!-- Definindo os models --&gt;
        &lt;models&gt;
            &lt;!--
                Identificador único no nó de models.
                Por convenção, colocamos o nome do módulo em minúsculo.
            --&gt;
            &lt;dicasdephp_produtologs&gt;
                &lt;!--
                    O caminho para o nosso diretório de modelos,
                    com separadores de diretório substituído por underlines
                --&gt;
                &lt;class&gt;DicasDePhp_ProdutoLogs_Model&lt;/class&gt;
            &lt;/dicasdephp_produtologs&gt;
        &lt;/models&gt;

   		&lt;!-- Definindo o evento observer --&gt;
        &lt;events&gt;
            &lt;!-- O código do evento que queremos observar --&gt;
            &lt;catalog_product_save_after&gt;
                &lt;!-- Definição de um observador para este evento --&gt;
                &lt;observers&gt;
                    &lt;!--
                        Identificador único no nó catalog_product_save_after.
                        Por convenção, colocamos o nome do módulo em minúsculo.
                    --&gt;
                    &lt;dicasdephp_produtologs&gt;
                        &lt;!-- O modelo a ser instanciado --&gt;
                        &lt;class&gt;dicasdephp_produtologs/observer&lt;/class&gt;
                        &lt;!-- O método do modelo acima, para ser chamado --&gt;
                        &lt;method&gt;logUpdate&lt;/method&gt;
                        &lt;!-- Geralmente usam o tipo singleton para os observadores --&gt;
                        &lt;type&gt;singleton&lt;/type&gt;
                    &lt;/dicasdephp_produtologs&gt;
                &lt;/observers&gt;
            &lt;/catalog_product_save_after&gt;
        &lt;/events&gt;
    &lt;/global&gt;
&lt;/config&gt;</pre>
<h2>Criando um Observer Model</h2>
<p>Agora vamos criar o arquivo que irá ser instanciado no momento que o evento for disparado.</p>
<p>Para isso vamos criar o arquivo <em>app/code/local/DicasDePhp/ProdutoLogs/Model/Observer.php</em>, com o seguinte código:</p>
<pre>&lt;?php

class DicasDePhp_ProdutoLogs_Model_Observer {

    /**
     * O Magento irá passar a Varien_Event_Observer object como
     * o primeiro parâmetro de eventos despachados.
     */
    public function logUpdate(Varien_Event_Observer $observer) {
        // Recuperar o produto que está sendo atualizado a partir do observador evento
        $product = $observer-&gt;getEvent()-&gt;getProduct();

        // Escrevendo uma nova linha no var/log/product-updates.log
        $name = $product-&gt;getName();
        $sku = $product-&gt;getSku();
        Mage::log("{$name} ({$sku}) updated", null, 'atualizacoes-produtos.log');
    }

}</pre>
<h2> OK, está pronto!</h2>
<p>Com isso, chegamos ao final do tutorial. Se todos os passos foram seguidos corretamente, você deve ter a estrutura abaixo:</p>
<pre>app
   -code
      --local
         ---DicasDePhp
            ----ProdutoLogs
               -----Model
                  ------Observer.php

               -----etc
                  ------config.xml

   -etc
      --modules
         ---DicasDePhp_ProdutoLogs.xml</pre>
<p>Agora, cada vez que você salvar ou criar um produto no Magento, um registro de log deve ser criado na pasta <em>var/log</em>, dentro do arquivo <em>atualizacoes-produtos.log</em>.</p>
<p>Se o arquivo não aparecer na pasta, procure verificar as permissões de escrita da pasta que o sistema tem. Ainda é necessário verificar se no Magento está habilitado para exibir os logs. O caminho para isso é <em>Painel de Administração → Sistema → Configurações → Desenvolvedor → Configurações de Log → Ativar.</em></p>
<p>A idéia desse tutorial é mostrar um pouco do funcionamento do Magento. Após desenvolver este tutorial, recomendamos que você passe um tempo explorando a pasta <em>app/code/core</em> do Magento, assim você vai poder ter uma boa idéia de todo o funcionamento do sistema.</p>
<p>Você pode baixar o módulo deste tutorial:<br />
&#8211; <a title="Clique Aqui" href="http://www.dicasdephp.com.br/wp-content/uploads/2012/03/ProdutoLogs.zip">ProdutoLogs</a>.</p>
<p>Dúvidas e feedback são bem vindos, é só deixar um comentário!</p>
<p>Este tutorial foi escrito originalmente no blog <a title="Smashing Magazine" href="http://coding.smashingmagazine.com/2012/03/01/basics-creating-magento-module/" target="_blank" rel="noopener">Smashing Magazine</a>, por <a title="Posts by Joseph McDermott" href="http://coding.smashingmagazine.com/author/joseph-mcdermott/" rel="author noopener" target="_blank">Joseph McDermott</a>. Traduzido e adaptado para o Dicas de PHP por <a title="Fausto Schneider - Developer WEB" href="http://www.faustoschneider.com.br" target="_blank" rel="noopener">Fausto Schneider</a>.</p>
<p>The post <a href="https://dicasdephp.com.br/tutorial-de-como-criar-um-modulo-para-magento/">Tutorial de como criar um módulo para Magento</a> appeared first on <a href="https://dicasdephp.com.br">Dicas de PHP</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Backup de banco MySQL via SSH</title>
		<link>https://dicasdephp.com.br/backup-de-banco-mysql-via-ssh/</link>
					<comments>https://dicasdephp.com.br/backup-de-banco-mysql-via-ssh/#comments</comments>
		
		<dc:creator><![CDATA[dicasdephp]]></dc:creator>
		<pubDate>Sat, 19 Nov 2011 21:27:36 +0000</pubDate>
				<category><![CDATA[Magento]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[base de dados]]></category>
		<category><![CDATA[magento]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[ssh]]></category>
		<guid isPermaLink="false">http://www.dicasdephp.com.br/?p=135</guid>

					<description><![CDATA[<p>Realizar um backup de banco MySQL as vezes pode ser complicado, quando a base tem diversas tabelas. No caso do sistema Magento, por exemplo, aonde você encontra mais de 300 tabelas, usar um programa de gerenciamento pode ser demorado. Uma maneira rápida e fácil de realizar o backup é via SSH. Claro, para isso o ... <a title="Backup de banco MySQL via SSH" class="read-more" href="https://dicasdephp.com.br/backup-de-banco-mysql-via-ssh/" aria-label="More on Backup de banco MySQL via SSH">Ler mais</a></p>
<p>The post <a href="https://dicasdephp.com.br/backup-de-banco-mysql-via-ssh/">Backup de banco MySQL via SSH</a> appeared first on <a href="https://dicasdephp.com.br">Dicas de PHP</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Realizar um backup de banco <strong>MySQL</strong> as vezes pode ser complicado, quando a base tem diversas tabelas. No caso do sistema <strong>Magento</strong>, por exemplo, aonde você encontra mais de 300 tabelas, usar um programa de gerenciamento pode ser demorado.</p>
<p>Uma maneira rápida e fácil de realizar o backup é via <strong>SSH</strong>. Claro, para isso o servidor de hospedagem precisa permitir o acesso SSH de sua conta.</p>
<p>Veja abaixo um exemplo de como realizar esse backup:</p>
<pre>mysqldump -h HOSTDOBANCO -u LOGIN -p -R --opt NOMEDOBANCO &gt; bkp.sql</pre>
<p>Após rodar o comando acima, será socitado o password da base de dados. O arquivo .sql será gerado em poucos segundos, dentro da pasta aonde você esta navegando no servidor.</p>
<p>É possível realizar esse comando para gerar um backup apenas de uma tabela, conforme abaixo:</p>
<pre>mysqldump -h HOSTDOBANCO -u LOGIN -p -R --opt NOMEDOBANCO TABELA &gt; backup.sql</pre>
<p>Para bases de dados até a versão 5.0, o comando muda um pouco, conforme abaixo:</p>
<pre>mysqldump -h HOSTDOBANCO -u LOGIN -p --opt NOMEDOBANCO &gt; backup.sql</pre>
<p>The post <a href="https://dicasdephp.com.br/backup-de-banco-mysql-via-ssh/">Backup de banco MySQL via SSH</a> appeared first on <a href="https://dicasdephp.com.br">Dicas de PHP</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://dicasdephp.com.br/backup-de-banco-mysql-via-ssh/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
			</item>
	</channel>
</rss>
