<?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>Diário de Códigos &#187; PHP</title>
	<atom:link href="http://diariodecodigos.info/tag/php/feed/" rel="self" type="application/rss+xml" />
	<link>http://diariodecodigos.info</link>
	<description>Codigos Fonte, Artigos e Dicas</description>
	<lastBuildDate>Wed, 11 Apr 2012 18:56:43 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Pesquisa por data no Drupal</title>
		<link>http://diariodecodigos.info/2010/06/pesquisa-por-data-no-drupal/</link>
		<comments>http://diariodecodigos.info/2010/06/pesquisa-por-data-no-drupal/#comments</comments>
		<pubDate>Wed, 30 Jun 2010 21:04:25 +0000</pubDate>
		<dc:creator>Alexandre Santos</dc:creator>
				<category><![CDATA[Dicas]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Drupal]]></category>
		<category><![CDATA[MySql]]></category>

		<guid isPermaLink="false">http://diariodecodigos.info/?p=1000</guid>
		<description><![CDATA[há algum tempo eu precisei colocar em um projeto uma pesquisa por data, surpreendentemente não encontrei  nenhum módulo para o mesmo. Bem.. decidi criar um&#8230; Características Pesquisa por conteúdo em determinada data Pesquisa por conteúdo a partir de uma data Pesquisa por conteúdo até uma determinada data Pesquisa por conteúdo em um range de data]]></description>
			<content:encoded><![CDATA[<p>há algum tempo eu precisei colocar em um projeto uma pesquisa por data, surpreendentemente não encontrei  nenhum módulo para o mesmo.</p>
<p>Bem.. decidi criar um&#8230;</p>
<h2><span style="color: #333399;">Características</span></h2>
<ul>
<li>Pesquisa por conteúdo em determinada data</li>
<li>Pesquisa por conteúdo a partir de uma data</li>
<li>Pesquisa por conteúdo até uma determinada data</li>
<li>Pesquisa por conteúdo em um range de data</li>
<li>Configurações dos <em>Content Type</em> pesquisáveis</li>
<li>Configuração da quantidade de itens por página no resultado</li>
</ul>
<p><span id="more-1000"></span></p>
<h2><span style="color: #333399;">Todo List</span></h2>
<ul>
<li>Este módulo só pode ser utilizado no MySQL, porque utilizei funções específicas de tal banco de dados.</li>
<li>Fazer o módulo trabalhar com timestamp, para torná-lo independente de banco de dados.</li>
<li>Adicionar suporte para o usuário escolher o tipo de data, americano ou brasileiro.</li>
<li>Adicionar máscara aos campos de data.</li>
<li>Adicionar configuração dos vocabulários pesquisáveis na interface de configuração</li>
</ul>
<h2><span style="color: #333399;">Download</span></h2>
<p><a href="http://diariodecodigos.info/alexandre/searchbydate/searchbydate-6.x-1.0.tar.gz" target="_blank">searchbydate-6.x-1.0.tar.gz</a></p>
<h2><span style="color: #333399;">ScreenShots</span></h2>
<p><span style="color: #333399;"><a href="http://diariodecodigos.info/wp-content/uploads/2010/06/search.png"><img class="aligncenter size-medium wp-image-1005" title="search" src="http://diariodecodigos.info/wp-content/uploads/2010/06/search-300x197.png" alt="" width="300" height="197" /></a></span></p>
<p><span style="color: #333399;"><a href="http://diariodecodigos.info/wp-content/uploads/2010/06/settings.png"><img class="aligncenter size-medium wp-image-1008" title="settings" src="http://diariodecodigos.info/wp-content/uploads/2010/06/settings-300x165.png" alt="" width="300" height="165" /></a><br />
</span></p>
]]></content:encoded>
			<wfw:commentRss>http://diariodecodigos.info/2010/06/pesquisa-por-data-no-drupal/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Downgrade PHP no Ubuntu 10.4 Lucid</title>
		<link>http://diariodecodigos.info/2010/06/downgrade-php-no-ubuntu-10-4-lucid/</link>
		<comments>http://diariodecodigos.info/2010/06/downgrade-php-no-ubuntu-10-4-lucid/#comments</comments>
		<pubDate>Tue, 29 Jun 2010 13:31:56 +0000</pubDate>
		<dc:creator>Alexandre Santos</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://diariodecodigos.info/?p=967</guid>
		<description><![CDATA[Recentemente tive problemas estranhos com o Drupal em servidores com o novo Ubuntu, quando fui ver vários módulos (inclusive o Menu Administrator) não estavam preparados para a nova versão do php, solução? fazer downgrade, vamos lá. adicione o repositório do karmic como opcional sed s/lucid/karmic/g /etc/apt/sources.list &#124; tee /etc/apt/sources.list.d/karmic.list agora execute o &#8216;apt-get update&#8217; para]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-full wp-image-333" style="margin-top: 0px; margin-bottom: 0px; margin-left: 2px; margin-right: 2px;" title="PHP" src="http://diariodecodigos.info/wp-content/uploads/2009/08/php-logo.jpg" alt="" width="80" height="62" />Recentemente tive problemas estranhos com o Drupal em servidores com o novo Ubuntu, quando fui ver vários módulos (inclusive o <em>Menu Administrator</em>) não estavam preparados para a nova versão do <strong>php</strong>, solução? fazer downgrade, vamos lá.<span id="more-967"></span></p>
<ol>
<li>adicione o repositório do karmic como opcional
<pre class="brush: bash;">sed s/lucid/karmic/g /etc/apt/sources.list | tee /etc/apt/sources.list.d/karmic.list</pre>
</li>
<li>agora execute o &#8216;apt-get update&#8217; para ele fazer uma leitura no novo repositório adicionado</li>
<li> Adicione um arquivo priorizando certos pacotes do php no diretório &#8216;<strong>/etc/apt/preferences.d/&#8217;</strong> segue em anexo no final desse tutorial um arquivo exemplo com alguns pacotes do php5 básicos</li>
<li>Caso você queira instalar algum outro pacote do php, adicione uma entrada dele antes no arquivo &#8216;php&#8217; do diretório dito acima, dizendo ao sistema que a versão a ser baixada vai vim do repositório do karmic e não do lucid</li>
</ol>
<h2><span style="color: #0000ff;">Dica:</span></h2>
<p>Caso você já tenha pacotes do php instalado, você pode utilizar o script a baixo para ele remover estes pacotes, adicionar a entrada deles no preferences.d e <strong>reinstalá-los</strong> com a antiga versão:</p>
<pre class="brush: bash;">
#!/bin/sh

# Script to install PHP 5.2 from 9.10 on 10.04
# And pin it so it does not get updated

PKGS=`dpkg -l | grep php | awk '{print $2}'`

apt-get remove $PKGS

sed s/lucid/karmic/g /etc/apt/sources.list |
  tee /etc/apt/sources.list.d/karmic.list

mkdir -p /etc/apt/preferences.d/

for PACKAGE in $PKGS
do
  echo &quot;Package: $PACKAGE
Pin: release a=karmic
Pin-Priority: 991
&quot; | tee -a /etc/apt/preferences.d/php
done

apt-get update

apt-get install $PKGS
</pre>
<h2><span style="color: #0000ff;">Anexos:</span></h2>
<p><a href="http://diariodecodigos.info/alexandre/downgrade/php" target="_blank">http://diariodecodigos.info/alexandre/downgrade/php</a></p>
<p style="text-align: right;">Fonte:<br />
<a href="http://2bits.com/drupal-planet/various-ways-running-php-52-ubuntu-1004-lucid-lynx.html">http://2bits.com/drupal-planet/various-ways-running-php-52-ubuntu-1004-lucid-lynx.html</a></p>
]]></content:encoded>
			<wfw:commentRss>http://diariodecodigos.info/2010/06/downgrade-php-no-ubuntu-10-4-lucid/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Servidor PHP no Windows com SMTP</title>
		<link>http://diariodecodigos.info/2010/02/servidor-php-no-windows-com-smtp/</link>
		<comments>http://diariodecodigos.info/2010/02/servidor-php-no-windows-com-smtp/#comments</comments>
		<pubDate>Tue, 16 Feb 2010 14:38:27 +0000</pubDate>
		<dc:creator>Alexandre Santos</dc:creator>
				<category><![CDATA[Dicas]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Drupal]]></category>
		<category><![CDATA[sendmail]]></category>
		<category><![CDATA[smtp]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://diariodecodigos.info/?p=842</guid>
		<description><![CDATA[Como todo bom desenvolvedor, temos que ter um ambiente de trabalho em nosso computador que chegue o mais próximo possível do que teremos no ambiente de produção final.

No meu caso eu andei precisando estudar sobre PostgreSQL (por sinal um excelente banco de dados) com PHP. Isso foi o mais fácil, agora tenho que estudar o famoso CMS/CMF Drupal, excelente por sinal.

O que isso tem a ver com esse post? Com um ambiente rodando PostgreSQL + PHP + Drupal só faltava uma coisa... o servidor SMTP! É isso mesmo, exemplo: após um usuário ser cadastrado no Drupal é enviado um e-mail de confirmação para ele, mas como isso seria enviado se meu ambiente de teste no windows não tem um servidor MTA sendmail disponível (Linux faz muita falta).]]></description>
			<content:encoded><![CDATA[<p><a rel="attachment wp-att-843" href="http://diariodecodigos.info/2010/02/servidor-php-no-windows-com-smtp/attachment/02/"><img class="alignleft size-full wp-image-843" style="border: 2px solid black; margin: 2px 5px;" title="PHP no Windows" src="http://diariodecodigos.info/wp-content/uploads/2010/02/02.gif" alt="" width="183" height="122" /></a>Como todo bom desenvolvedor, temos que ter um ambiente de trabalho em nosso computador que chegue o mais próximo possível do que teremos no ambiente de produção final.</p>
<p>No meu caso eu andei precisando estudar sobre PostgreSQL (por sinal um excelente banco de dados) com PHP. Isso foi o mais fácil, agora tenho que estudar o famoso CMS/CMF Drupal, excelente por sinal.</p>
<p>O que isso tem a ver com esse post? Com um ambiente rodando <strong>PostgreSQL + PHP + Drupal</strong> só faltava uma coisa&#8230; o servidor <strong>SMTP</strong>! É isso mesmo, exemplo: após um usuário ser cadastrado no Drupal é enviado um e-mail de confirmação para ele, mas como isso seria enviado se meu ambiente de teste no <strong><em>windows</em></strong> não tem um servidor MTA <em>sendmail</em> disponível (Linux faz muita falta).<span id="more-842"></span></p>
<p>Com algumas pesquisas na internet encontrei a solução ideal! existe um tal de de <strong>sendmail</strong> criado por <strong>Byron Jones</strong> (<a title="Sendmail for Windows" href="http://glob.com.au/sendmail/" target="_blank">http://www.glob.com.au</a>) que na verdade envia e-mail autenticando em um servidor externo.. simples assim, sem precisar criar um <strong>servidor SMTP local</strong> (porque eu já havia tentado criar no IIS com windows 7 mas o IIS desse windows não tem MTA)!</p>
<p>A configuração é simples e a instalação é rápida:</p>
<ol>
<li>Faça o download aqui do <a href="http://diariodecodigos.info/alexandre/sendmail.zip" target="_blank">sendmail.zip</a></li>
<li>Coloque ele em algum lugar, exemplo &#8220;C:\sendmail\&#8221;</li>
<li>Abra o arquivo <strong>sendmail.ini</strong> e edite-o conforme suas necessidades, nesse exemplo eu configurei para utilizar o smtp do Gmail:
<pre class="brush: php;">
; configuration for fake sendmail

; if this file doesn't exist, sendmail.exe will look for the settings in
; the registry, under HKLM\Software\Sendmail

[sendmail]

; you must change mail.mydomain.com to your smtp server,
; or to IIS's &quot;pickup&quot; directory.  (generally C:\Inetpub\mailroot\Pickup)
; emails delivered via IIS's pickup directory cause sendmail to
; run quicker, but you won't get error messages back to the calling
; application.

smtp_server=smtp.gmail.com

; smtp port (normally 25)

smtp_port=587

; the default domain for this server will be read from the registry
; this will be appended to email addresses when one isn't provided
; if you want to override the value in the registry, uncomment and modify

default_domain=domain.com

; log smtp errors to error.log (defaults to same directory as sendmail.exe)
; uncomment to enable logging

error_logfile=error.log

; create debug log as debug.log (defaults to same directory as sendmail.exe)
; uncomment to enable debugging

;debug_logfile=debug.log

; if your smtp server requires authentication, modify the following two lines

auth_username=alexsantos.linux@gmail.com
auth_password=123456

; if your smtp server uses pop3 before smtp authentication, modify the
; following three lines

pop3_server=
pop3_username=
pop3_password=

; to force the sender to always be the following email address, uncomment and
; populate with a valid email address.  this will only affect the &quot;MAIL FROM&quot;
; command, it won't modify the &quot;From: &quot; header of the message content

force_sender=alexsantos.linux@gmail.com

; sendmail will use your hostname and your default_domain in the ehlo/helo
; smtp greeting.  you can manually set the ehlo/helo name if required

;hostname=
</pre>
</li>
<li>Agora edite seu arquivo php.ini e altere a sessão &#8220;mail function&#8221;, coloque o caminho do binário em <strong>sendmail_path</strong>, ignore a observação acima da linha dizendo que essa linha é somente para ambiente Unix, segue um exemplo de configuração abaixo:
<pre class="brush: php;">
[mail function]
; For Win32 only.
; SMTP=localhost
; smtp_port=25

; For Win32 only.
; sendmail_from = me@example.com
; For Unix only.  You may supply arguments as well (default: &quot;sendmail -t -i&quot;).
sendmail_path = &quot;C:\sendmail\sendmail.exe -t&quot;
; Force the addition of the specified parameters to be passed as extra parameters
; to the sendmail binary. These parameters will always replace the value of
; the 5th parameter to mail(), even in safe mode.
; mail.force_extra_parameters =
</pre>
</li>
<li>Reinicie seu servidor apache e pronto!</li>
</ol>
<p>Abraços&#8230;&#8230;.</p>
]]></content:encoded>
			<wfw:commentRss>http://diariodecodigos.info/2010/02/servidor-php-no-windows-com-smtp/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>JSON + JQuery</title>
		<link>http://diariodecodigos.info/2009/11/json-jquery/</link>
		<comments>http://diariodecodigos.info/2009/11/json-jquery/#comments</comments>
		<pubDate>Thu, 26 Nov 2009 14:19:43 +0000</pubDate>
		<dc:creator>Alexandre Santos</dc:creator>
				<category><![CDATA[Desenvolvimento Web]]></category>
		<category><![CDATA[JQuery]]></category>
		<category><![CDATA[Ajax]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[JSON]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://diariodecodigos.info/?p=731</guid>
		<description><![CDATA[O que é JSON? JSON ou JavaScript Object Notation é um formato de texto para serialização de estrutura de dados. Ela é derivada de objetos literais do Javascript, como definido  no ECMAScript Programming Language Standard, Third Edition [ECMA]. JSON pode representar quatro tipos primitivos (strings, números, valores booleans e valores nulos) e dois tipos estruturados]]></description>
			<content:encoded><![CDATA[<h2><span style="color: #0000ff;"><img class="alignleft size-full wp-image-736" style="margin-left: 5px; margin-right: 5px;" title="json160" src="http://diariodecodigos.info/wp-content/uploads/2009/11/json160.gif" alt="json160" width="160" height="160" />O que é JSON?</span></h2>
<p>JSON ou JavaScript Object Notation é um formato de texto para serialização de estrutura de dados. Ela é derivada de objetos literais do Javascript, como definido  no ECMAScript Programming  Language Standard, Third Edition [ECMA].</p>
<p>JSON pode representar quatro tipos primitivos (strings, números, valores booleans e valores nulos) e dois tipos estruturados (objetos e arrays).</p>
<p>- Bem isso é o que diz a especificação &#8220;<a href="http://www.ietf.org/rfc/rfc4627.txt?number=4627" target="_blank">RCF 4627 application/json</a>&#8221;</p>
<p><span id="more-731"></span>Um exemplo de JSON é:</p>
<pre class="brush: jscript;">
{&quot;id_categoria&quot;:&quot;2&quot;,&quot;tipo&quot;:&quot;PRODUTOS&quot;,&quot;titulo&quot;:&quot;COLECOES&quot;,&quot;descricao&quot;:&quot;MACIO TESTE&quot;}
</pre>
<p>Se você ainda não está familiarizado com a estrutura do JSON recomendo fortemente a dar uma passada no <a title="JSON.ORG" href="http://json.org/" target="_blank">site oficial</a></p>
<p>Bem.. vamos esclarecer algumas coisas.</p>
<ul>
<li><strong>Quando utilizar JSON?</strong><br />
Digamos que você tenha um código<strong> Ajax</strong> que faz uma requisição com parâmetros via <strong>POST</strong> ou<strong> GET</strong> para uma <strong>página externa</strong>, e essa <strong>página externa</strong> retorna dados dos quais você tem que<strong> tratar</strong>. Esse é um bom lugar para os <strong>dados serem retornados com JSON</strong></li>
<li>O <strong>cabeçalho</strong> da resposta da página externa precisa retonar o <strong>MIME</strong> do tipo &#8220;<strong><em>Content-type: application/json</em></strong>&#8221;  (não é obrigatório mas é bom seguir a regulamentação)</li>
<li>O <strong>JSON</strong> é suportado por diversas linguagens, como <strong>PHP</strong>, <strong>C#</strong>, <strong>C</strong>, <strong>Lua,</strong> <strong>JavaScript</strong> é claro e diversas outras.</li>
<li><strong>JSON</strong> utiliza<strong> UTF-8</strong> (somente e pronto. Nada de <strong><em>iso-8859</em></strong> e etc. assim como no ajax)</li>
</ul>
<h2><span style="color: #0000ff;">Qual o objetivo desse post?</span></h2>
<p>O meu objetivo aqui é mostrar como você pode recuperar dados JSON de uma fonte externa e usa-los no seu script com JQuery.</p>
<p>Normalmente, você tem uma linguagem dinâmica que busca dados no banco de dados ou seja lá o que for e retorna os dados em <strong>JSON.</strong></p>
<p>Você com seu lindo script Ajax quer retornar esses dados e mostrar para o usuário sem precisar recarregar a página.</p>
<p>Para isso vamos supor que uma página PHP retorne o seguinte JSON.</p>
<pre class="brush: jscript;">
{&quot;id_categoria&quot;:&quot;2&quot;,&quot;tipo&quot;:&quot;PRODUTOS&quot;,&quot;titulo&quot;:&quot;COLECOES&quot;,&quot;descricao&quot;:&quot;MACIO TESTE&quot;}
</pre>
<p>Aqui temos, um objeto <strong>JSON</strong> com <strong>4 membros:</strong></p>
<ul>
<li>Membro<strong> &#8220;id_categoria&#8221; </strong>com o valor<strong> &#8220;2&#8243;</strong></li>
<li>Membro<strong> &#8220;tipo&#8221; </strong>com o valor<strong> &#8220;PRODUTOS&#8221;</strong></li>
<li>Membro<strong> &#8220;titulo&#8221; </strong>com o valor<strong> &#8220;COLECOES&#8221;</strong></li>
<li>Membro<strong> &#8220;descricao&#8221; </strong>com valor<strong> &#8220;MACIO TESTE&#8221;</strong></li>
</ul>
<p>Não vou retratar aqui como o <em>PHP</em> ou o <em>C#</em> retorna dados <strong><em>JSON</em></strong>, mas dê uma olhada em &#8220;<strong>LINKS</strong>&#8221; no final da página, para mais informações.</p>
<p>Agora vamos usar o método <strong><em>$.getJSON()</em></strong> do JQuery para manipular os dados, a sintax é:</p>
<pre class="brush: jscript;">
jQuery.getJSON( url, [data], [callback] )
</pre>
<ul>
<li><strong>URL</strong> -&gt; A url que vai ser requisitada (obrigatório)</li>
<li><strong>[data]</strong> -&gt; dados a serem enviados via POST (opcional)</li>
<li><strong>[callback]</strong> -&gt; Função que vai ser executada quando os dados forem carregados com sucesso (opcional)</li>
</ul>
<p>Supondo que temos 3 <strong>INPUT</strong> do tipo <strong>TEXT</strong> e queremos colocar esses dados dentro deles, as IDs desses INPUT são respectivamente:</p>
<ol>
<li><strong><em>id_categoriaUdt</em></strong></li>
<li><strong><em>tipoUdt</em></strong></li>
<li><strong><em>tituloUdt</em></strong></li>
<li><strong><em>descricaoUdt</em></strong></li>
</ol>
<p>A página a ser requisitada se chama<strong><em> categoria.php</em></strong>:</p>
<pre class="brush: jscript;">
$.getJSON(&quot;../actions/admin/categoria.php&quot;, function(json){
            $('#tipoUdt').val(json.tipo);
            $('#tituloUdt').val(json.titulo);
            $('#descricaoUdt').val(json.descricao);
            } // fim do callback
); // fim do .getJSON()
</pre>
<p>Simples assim.</p>
<p>pronto, você pode manipular o resultado de retorno, nesse caso &#8220;<strong>json</strong>&#8221; como um objeto <strong>javascript</strong>.</p>
<p><strong><em>val()</em> <span style="font-weight: normal;">é também um método </span>JQuery<span style="font-weight: normal;">, utilizado nesse caso para atribuir um valor ao </span>INPUT<span style="font-weight: normal;"> do nosso </span>FORM HTML</strong></p>
<p>Este foi um exemplo muito simples, apenas uma introdução a como manipular objetos JSON com JavaScript (JQuery).</p>
<p><strong>Boa Sorte!</strong></p>
<h2><span style="color: #0000ff;">- Links</span></h2>
<ul>
<li><span>Página Oficial do</span><strong> JSON</strong><span> -&gt;</span><a href="http://json.org/" target="_blank"> json.org</a></li>
<li>Documentação do <strong>$.getJSON()</strong> -&gt; <a href="http://docs.jquery.com/Ajax/jQuery.getJSON" target="_blank">docs.jquery.com</a></li>
<li>Usando <strong>JSONRequest</strong> -&gt;<a href="http://json.org/JSONRequest.html" target="_blank"> json.org</a></li>
<li>Função <strong><em>eval()</em></strong> do<strong> JavaScript </strong>-&gt; <a href="http://www.w3schools.com/jsref/jsref_eval.asp" target="_blank">w3schools.com</a></li>
<li>Usando <strong>JSON com PHP</strong> -&gt; <a href="http://www.php.net/manual/en/book.json.php" target="_blank">php.net</a></li>
<li>Usando <strong>JSON com C#</strong> -&gt; <a href="http://msdn.microsoft.com/pt-br/library/system.runtime.serialization.json.jsonreaderwriterfactory.aspx">msdn.microsoft.com</a><br />
Ou procure no<strong><em> Object Browser </em></strong>do <strong><em>Visual Studio </em></strong></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://diariodecodigos.info/2009/11/json-jquery/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>PHP + UML</title>
		<link>http://diariodecodigos.info/2009/11/php-uml/</link>
		<comments>http://diariodecodigos.info/2009/11/php-uml/#comments</comments>
		<pubDate>Thu, 12 Nov 2009 15:03:28 +0000</pubDate>
		<dc:creator>Alexandre Santos</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[UML]]></category>

		<guid isPermaLink="false">http://diariodecodigos.info/?p=715</guid>
		<description><![CDATA[Sempre utilizei o StarUML para criar meus diagramas de classes tanto para Java quanto para C# e a um tempo que eu já estava atrás de um diagrama de classe para PHP. Minha supresa foi que o StarUML dá suporte a gerar código de classes através de uma Template. Faça o download da Template aqui:]]></description>
			<content:encoded><![CDATA[<p><a rel="attachment wp-att-718" href="http://diariodecodigos.info/2009/11/php-uml/uml/"><img class="size-full wp-image-718 alignleft" style="border: 1px solid black; margin: 3px;" title="UML" src="http://diariodecodigos.info/wp-content/uploads/2009/11/UML.png" alt="UML" width="215" height="75" /></a>Sempre utilizei o<strong> StarUML</strong> para criar meus diagramas de classes tanto para <strong>Java</strong> quanto para C# e a um tempo que eu já estava atrás de um diagrama de classe para PHP.</p>
<p>Minha supresa foi que o StarUML dá suporte a gerar código de classes através de uma <strong>Template</strong>.<span id="more-715"></span></p>
<ol>
<li>Faça o download da Template aqui: <a href="http://staruml.sourceforge.net/files/PHP_5_Code_Generator.zip" target="_blank">PHP_5_Code_Generator.zip</a></li>
<li>Agora descompate o arquivo no diretório: <em><strong>&#8220;C:\Program Files\StarUML\modules\staruml-generator\templates&#8221;</strong></em></li>
</ol>
<p>Apenas isso, para gerar o código de uma classe UML vá em:</p>
<ul>
<li> &#8220;<strong>Tools</strong>&#8221; &gt; &#8220;<strong>StarUML Generator</strong>&#8220;</li>
</ul>
<p style="text-align: center;"><a href="http://diariodecodigos.info/wp-content/uploads/2009/11/StarUML-Generater.png" target="_blank"><img class="aligncenter size-full wp-image-719" style="border: 1px solid black;" title="StarUML-Generater" src="http://diariodecodigos.info/wp-content/uploads/2009/11/StarUML-Generater.png" alt="StarUML-Generater" width="614" height="461" /></a></p>
<p>Surgirá a janela do &#8220;<strong>StarUML Generator</strong>&#8221; escolha a Template do PHP, escolha o lugar que será criado as classes e finalize.</p>
<p style="text-align: center;"><a href="http://diariodecodigos.info/wp-content/uploads/2009/11/StarUML-Window-code-generator.png" target="_blank"><img class="aligncenter size-full wp-image-720" style="border: 1px solid black;" title="StarUML - Window code generator" src="http://diariodecodigos.info/wp-content/uploads/2009/11/StarUML-Window-code-generator.png" alt="StarUML - Window code generator" width="590" height="429" /></a></p>
<p>Boa Sorte.</p>
]]></content:encoded>
			<wfw:commentRss>http://diariodecodigos.info/2009/11/php-uml/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Dica: Criar Thumbnail</title>
		<link>http://diariodecodigos.info/2009/11/dica-criar-thumbnail/</link>
		<comments>http://diariodecodigos.info/2009/11/dica-criar-thumbnail/#comments</comments>
		<pubDate>Thu, 12 Nov 2009 12:05:31 +0000</pubDate>
		<dc:creator>Alexandre Santos</dc:creator>
				<category><![CDATA[Dicas]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[Images]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Thumbnail]]></category>

		<guid isPermaLink="false">http://diariodecodigos.info/?p=696</guid>
		<description><![CDATA[Com muita frequência precisamos em aplicativos web, criar Thumbs de fotos para visualização primária, e aqui vamos aprender uma simples dica de como fazer isso com PHP e C#. No PHP eu estou vendo que a libary GD está está ficando obsoleta e existe algo muito mais interessante toda feita em OO, e o nome]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><a rel="attachment wp-att-697" href="http://diariodecodigos.info/2009/11/dica-criar-thumbnail/thumb/"><img class="aligncenter size-full wp-image-697" style="border: 1px solid black;" title="Thumb" src="http://diariodecodigos.info/wp-content/uploads/2009/11/Thumb.png" alt="Thumb" width="334" height="106" /></a></p>
<p>Com muita frequência precisamos em aplicativos web, criar Thumbs de fotos para visualização primária, e aqui vamos aprender uma simples dica de como fazer isso com PHP e C#.<span id="more-696"></span></p>
<p>No PHP eu estou vendo que a <strong>libary GD</strong> está está ficando obsoleta e existe algo muito mais interessante toda feita em OO, e o nome dessa magnífica extensão é <strong>ImageMagick</strong> e também temos o <strong>Gmagick</strong>.</p>
<p>Para fins de produção todos os servidores que eu tenho sites hospedado tem essa extensão, basta ter o php 5.x.x pra cima.</p>
<p>Vamos ao que interessa:</p>
<pre class="brush: php;">
// Aqui dizemos ao navegador que vamos ter uma saída diferente de text/html
// vamos ter um ouput de image/jpeg
header('Content-type: image/jpeg');

// criamos o objeto passando a imagem a ser tratada
$image = new Imagick('images/19-05-08_1925.jpg');

// usamos o método thumbnailImage para criar o Thumb
// O primeiro parâmetro é o width
// O segundo é o height
// se um dos parâmtros for zero ele mantem o
// aspect ratio original
$image-&amp;gt;thumbnailImage(100, 0);

// Mostra a Imagem
echo $image;
</pre>
<p>Agora com C#:</p>
<pre class="brush: csharp;">
//Define variáveis
System.Drawing.Image imagem;
System.Drawing.Image thumb;

//Recupera a imagem original
imagem = System.Drawing.Image.FromFile(&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;quot;CAMINHO_ARQUIVO&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;quot;);

//Aqui é feita a renderização proporcional da altura da imagem
//tomando por base que o largura final dela é de 50px;
int width = 50;
int height;
height = (int)(width * imagem.Height) / imagem.Width;

//Gera a nova imagem reduzida
thumb = imagem.GetThumbnailImage(width, height, null, System.IntPtr.Zero);

//Salva a imagem
thumb.Save(&amp;quot;CAMINHO_THUMB&amp;quot;);
</pre>
<p>Ai está o seu Thumbs!</p>
<p>Fontes:</p>
<p>http://social.msdn.microsoft.com</p>
<p>http://www.php.net/manual/pt_BR/function.imagick-thumbnailimage.php</p>
<p>P.S.:</p>
<p>Você pode usar essas ferramentas para fazer resizer da image utilizando a seguinte ferramenta:  <a href="http://www.defusion.org.uk/demos/060519/cropper.php?demoType=minDimensions&amp;image=castle&amp;formSubmit=Load+demo" target="_blank">http://www.defusion.org.uk/demos/060519/cropper.php?demoType=minDimensions&amp;image=castle&amp;formSubmit=Load+demo</a></p>
]]></content:encoded>
			<wfw:commentRss>http://diariodecodigos.info/2009/11/dica-criar-thumbnail/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Zend Framework</title>
		<link>http://diariodecodigos.info/2009/10/zend-framework/</link>
		<comments>http://diariodecodigos.info/2009/10/zend-framework/#comments</comments>
		<pubDate>Sun, 18 Oct 2009 19:05:27 +0000</pubDate>
		<dc:creator>Alexandre Santos</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Frameworks]]></category>
		<category><![CDATA[Ruby on Rails]]></category>
		<category><![CDATA[Zend Framework]]></category>

		<guid isPermaLink="false">http://diariodecodigos.info/?p=604</guid>
		<description><![CDATA[Estamos chegando ao final da primeira década do século 21 e até agora eu não utilizo nenhum MVC e nenhum Framework exceto o Framework .NET... acho que já passou da hora de aprender a utilizar um.]]></description>
			<content:encoded><![CDATA[<p><a rel="attachment wp-att-605" href="http://diariodecodigos.info/2009/10/zend-framework/zf-small/"><img class="alignleft size-full wp-image-605" style="border: 1px solid black; margin-left: 2px; margin-right: 2px;" title="ZF" src="http://diariodecodigos.info/wp-content/uploads/2009/10/ZF-small.png" alt="ZF" width="183" height="101" /></a> Estamos chegando ao final da primeira década do século 21 e até agora eu não utilizo nenhum <strong>MVC</strong> e nenhum <strong>Framework</strong> exceto o Framework <strong>.NET</strong>&#8230; acho que já passou da hora de aprender a utilizar um.</p>
<p><span id="more-604"></span></p>
<h2>Reflexão</h2>
<p>Ultimamente venho com algumas dúvidas sobre meu trabalho&#8230; sempre programei em <strong>PHP</strong>, agora comecei a utilizar também <strong>C#</strong>, mas pra Web ainda não confio muito na plataforma da <em>Microsoft</em> e continuo utilizando em muitos projetos o <strong>PHP</strong>.</p>
<p>A dúvida é: Continuo com <strong>PHP</strong> ou vou para <strong>Ruby on Rails</strong>?</p>
<p>Apesar de ser tudo mais simples em <strong>Ruby on Rails</strong>, quem já programa em <strong>PHP</strong> mudar de linguagem (Ruby) e  aprender um framework (Rails) do zero via ter muito trabalho pela frente&#8230; ter que estudar toda uma nova sintaxe, uma nova maneira de programar e aprender um framework novo, e ainda cho que <strong>Ruby on Rails</strong> pode ser apenas uma onda.</p>
<p>Então decidi continuar no <strong>PHP</strong>, que é extremamente poderoso, e aceito no mercado. Porém quero começar a usar algum framework para aprimorar meus conhecimentos e aumentar minha produtividade.</p>
<p>Sem saber por onde começar, usei o Pai! (Google) e achei um excelente site que fala dos mais atuais frameworks para php</p>
<blockquote><p><a href="http://www.phpframeworks.com/ " target="_blank">http://www.phpframeworks.com/ </a></p></blockquote>
<p>Excelente! E no rank dos 10 Frameworks mais &#8220;quentes&#8221; estava o <strong>CodeIgniter</strong>, comecei até a estudar ele, achei uma maravilha! Mas o projeto ainda não está muito maduro, partindo para o segundo lugar vi um do qual sempre ouvi falar, <strong>Zend Framework</strong>!</p>
<p>É&#8230; a primeira vista não muito com a cara dele não, achei tudo muito confuso (ainda mas pra quem é novo nesse mundo de frameworks) mas acabei, por diversos motivos, adotando ele. Não irei falar todos, mas o que mais me empurrou foi o fato dele ser completíssimo e ter uma empresa de nome por trás.</p>
<p>A curva de aprendizado é grande, até você se acostumar com novos conceitos e ver que aquilo tudo é poderoso você bate um pouco a cabeça.</p>
<p>Eu não conseguia entender que eu poderia ser produtivo usando <strong>MV</strong>C onde eu tinha que estudar milhões de coisas enquanto poderia simplesmente fazer minha velha organização de pastas e arquivos por classe, criando minhas próprias classes de abstração.</p>
<p><em>Mas pra que cria isso tudo sempre se já existe algo feito pra você?</em> Essa é uma boa pergunta (e o markting dos frameworks)&#8230; e a resposta pode simplesmente ser:  <em>Porque ter que estudar classes criadas pelos outros enquanto você pode criar as suas ser minimalista e ter o resultado semelhante?</em></p>
<p>Porém&#8230; uma coisa é certa, o framework te da <strong>Poder</strong> e depois de um tempo bastante <strong>produtividade</strong>!</p>
<p>Você estuda um monte de coisas (é gostoso estudar coisas novas), das quais você nunca iria imaginar que já existiriam prontas e que além disso tudo, aquilo realmente serve pra você! Você começa a perceber que é mais fácil e rápido, ler a documentação do<strong> Zend_Feed</strong> do que criar uma classe para cuidar de<strong> RSS</strong> no seu site.</p>
<p>Mas como aprender a usar <strong>Zend Framework</strong>?</p>
<p>No começo foi chato&#8230; a comunidade brasileira ainda é relativamente pequena, e não temos nenhuma documentação em português, e quando você encontra algo relativo na internet é sobre uma versão do Zend totalmente obsoleta.</p>
<h2>Por onde Começar?</h2>
<ul>
<li><strong>Quick Start -&gt;</strong> <a href="http://framework.zend.com/docs/quickstart" target="_blank">http://framework.zend.com/docs/quickstart</a><br />
É um tutorial bastante explicativo e objetivo sobre o framework, mas deixa muitas dúvidas e embola um pouco a cabeça. Como uma coisa que chamam de simples parece ser tão complexo?</li>
<li><strong>O segundo passo</strong> é uma dica minha: Comece a ler o “<strong>Guia de Referência do Programador</strong>”&#8230;<br />
Documentação Oficial (Em inglês): <a href="http://framework.zend.com/manual/en/" target="_blank">http://framework.zend.com/manual/en/</a><br />
Documentação pt-BR:  <a href="http://diariodecodigos.info/zendptbr/" target="_blank">http://diariodecodigos.info/zendptbr/</a></li>
<li><strong>Agora para aonde vamos?</strong><br />
Eu particularmente estou estudando os componentes principais sobre o <strong>MVC</strong> e o que gerencia o <strong>Aplicativo</strong>, acho que é interessante dominar esses componentes, o restante são apenas componentes que você vai utilizar para agilizar seu trabalho a realizar determinadas tarefas:</li>
<li><strong> Componentes Principais: </strong>
<ul>
<li><span class="chapter"><a href="http://diariodecodigos.info/zend/ptBR/introduction.html" target="_blank">1. Introdução Zend Framework</a></span></li>
<li><span class="chapter"><a href="http://diariodecodigos.info/zend/ptBR/zend.application.html" target="_blank">4. Zend_Application</a></span></li>
<li><span class="chapter"><a href="http://diariodecodigos.info/zend/ptBR/zend.config.html" target="_blank">9. Zend_Config</a></span></li>
<li><span class="chapter"><a href="http://diariodecodigos.info/zend/ptBR/zend.controller.html" target="_blank">12. Zend_Controller</a></span></li>
<li> <span class="chapter"><a href="http://diariodecodigos.info/zend/ptBR/zend.exception.html" target="_blank"> 19. Zend_Exception</a></span></li>
<li> <span class="chapter"><a href="http://diariodecodigos.info/zend/ptBR/zend.http.html" target="_blank"> 25. Zend_Http</a></span></li>
<li> <span class="chapter"><a href="http://diariodecodigos.info/zend/ptBR/zend.layout.html" target="_blank"> 28. Zend_Layout</a></span></li>
<li> <span class="chapter"><a href="http://diariodecodigos.info/zend/ptBR/zend.server.html" target="_blank"> 47. Zend_Server</a></span></li>
<li> <span class="chapter"><a href="http://diariodecodigos.info/zend/ptBR/zend.tool.framework.html" target="_blank"> 55. Zend_Tool_Framework</a></span></li>
<li> <span class="chapter"><a href="http://diariodecodigos.info/zend/ptBR/zend.tool.project.html" target="_blank"> 56. Zend_Tool_Project</a></span></li>
<li> <span class="chapter"><a href="http://diariodecodigos.info/zend/ptBR/zend.uri.html" target="_blank"> 58. Zend_Uri</a></span></li>
<li> <span class="chapter"><a href="http://diariodecodigos.info/zend/ptBR/zend.version.html" target="_blank"> 60. Zend_Version</a></span></li>
<li> <span class="chapter"><a href="http://diariodecodigos.info/zend/ptBR/zend.view.html" target="_blank"> 61. Zend_View</a></span></li>
</ul>
<p>Acho que conhecendo eles você já consegue manipular todo o projeto e o ambiente MVC do seu aplicativo de maneira bastante satisfatória.</li>
<li><strong> Componentes Interessantes: </strong>
<ul> <!-- INÍCIO LISTA --></p>
<li> <span class="chapter"><a href="http://diariodecodigos.info/zend/ptBR/zend.acl.html" target="_blank">2. Zend_ACL</a></span></li>
<li> <span class="chapter"><a href="http://diariodecodigos.info/zend/ptBR/zend.auth.html" target="_blank">5. Zend_Auth</a></span></li>
<li> <span class="chapter"><a href="http://diariodecodigos.info/zend/ptBR/zend.cache.html" target="_blank">6. Zend_Cache</a></span></li>
<li> <span class="chapter"><a href="http://diariodecodigos.info/zend/ptBR/zend.captcha.html" target="_blank">7. Zend_Captcha</a></span></li>
<li> <span class="chapter"><a href="http://diariodecodigos.info/zend/ptBR/zend.currency.html" target="_blank">13. Zend_Currency</a></span></li>
<li> <span class="chapter"><a href="http://diariodecodigos.info/zend/ptBR/zend.date.html" target="_blank">14. Zend_Date</a></span></li>
<li><span class="chapter"><a href="http://www.diariodecodigos.info/zend/ptBR/zend.db.html" target="_blank">15. Zend_Db</a></span></li>
<li><span class="chapter"><a href="http://diariodecodigos.info/zend/ptBR/zend.debug.html" target="_blank">16. Zend_Debug</a></span></li>
<li> <span class="chapter"><a href="http://diariodecodigos.info/zend/ptBR/zend.exception.html" target="_blank"> 19. Zend_Exception</a></span></li>
<li> <span class="chapter"><a href="http://diariodecodigos.info/zend/ptBR/zend.feed.html" target="_blank"> 20. Zend_Feed</a></span></li>
<li> <span class="chapter"><a href="http://diariodecodigos.info/zend/ptBR/zend.file.html" target="_blank"> 21. Zend_File</a></span></li>
<li> <span class="chapter"><a href="http://diariodecodigos.info/zend/ptBR/zend.form.html" target="_blank"> 23. Zend_Form</a></span></li>
<li> <span class="chapter"><a href="http://diariodecodigos.info/zend/ptBR/zend.locale.html" target="_blank"> 31. Zend_Locale</a></span></li>
<li> <span class="chapter"><a href="http://diariodecodigos.info/zend/ptBR/zend.log.html" target="_blank"> 32. Zend_Log</a></span></li>
<li> <span class="chapter"><a href="http://diariodecodigos.info/zend/ptBR/zend.mail.html" target="_blank"> 33. Zend_Mail</a></span></li>
<li> <span class="chapter"><a href="http://diariodecodigos.info/zend/ptBR/zend.navigation.html" target="_blank"> 37. Zend_Navigation</a></span></li>
<li> <span class="chapter"><a href="http://diariodecodigos.info/zend/ptBR/zend.openid.html" target="_blank"> 38. Zend_OpenID</a></span></li>
<li> <span class="chapter"><a href="http://diariodecodigos.info/zend/ptBR/zend.pdf.html" target="_blank"> 40. Zend_OpenID</a></span></li>
<li> <span class="chapter"><a href="http://diariodecodigos.info/zend/ptBR/zend.queue.html" target="_blank"> 42. Zend_Queue</a></span></li>
<li> <span class="chapter"><a href="http://diariodecodigos.info/zend/ptBR/zend.rest.html" target="_blank"> 45. Zend_Rest</a></span></li>
<li> <span class="chapter"><a href="http://diariodecodigos.info/zend/ptBR/zend.search.lucene.html" target="_blank"> 46. Zend_Search_Lucene</a></span></li>
<li> <span class="chapter"><a href="http://diariodecodigos.info/zend/ptBR/zend.service.html" target="_blank"> 48. Zend_Service</a></span>
<ul>
<li><span class="chapter"><a href="http://diariodecodigos.info/zend/ptBR/zend.service.akismet.html" target="_blank"> 48.2 Zend_Service_Akismet</a></span></li>
<li><span class="chapter"><a href="http://diariodecodigos.info/zend/ptBR/zend.service.amazon.html" target="_blank"> 48.3 Zend_Service_Amazon</a></span></li>
<li><span class="chapter"><a href="http://diariodecodigos.info/zend/ptBR/zend.service.amazon.ec2.html" target="_blank"> 48.4 Zend_Service_Amazon_Ec2</a></span></li>
<li><span class="chapter"><a href="http://diariodecodigos.info/zend/ptBR/zend.service.audioscrobbler.html" target="_blank"> 48.17 Zend_Audioscrobbler</a></span></li>
<li><span class="chapter"><a href="http://diariodecodigos.info/zend/ptBR/zend.service.amazon.html" target="_blank"> 48.3 Zend_Service_Amazon</a></span></li>
<li><span class="chapter"><a href="http://diariodecodigos.info/zend/ptBR/zend.service.delicious.html" target="_blank"> 48.18 Zend_Service_Delicious</a></span></li>
<li><span class="chapter"><a href="http://diariodecodigos.info/zend/ptBR/zend.service.flickr.html" target="_blank"> 48.19 Zend_Service_Flickr</a></span></li>
<li><span class="chapter"><a href="http://diariodecodigos.info/zend/ptBR/zend.service.twitter.html" target="_blank"> 48.28 Zend_Service_Twitter</a></span></li>
<li><span class="chapter"><a href="http://diariodecodigos.info/zend/ptBR/zend.service.yahoo.html" target="_blank"> 48.29 Zend_Service_Yahoo</a></span></li>
</ul>
</li>
<li> <span class="chapter"><a href="http://diariodecodigos.info/zend/ptBR/zend.session.html" target="_blank"> 49. Zend_Session</a></span></li>
<li> <span class="chapter"><a href="http://diariodecodigos.info/zend/ptBR/zend.soap.html" target="_blank"> 50. Zend_Soap</a></span></li>
<li> <span class="chapter"><a href="http://diariodecodigos.info/zend/ptBR/zend.tag.html" target="_blank"> 51. Zend_Tag</a></span></li>
<li> <span class="chapter"><a href="http://diariodecodigos.info/zend/ptBR/zend.test.html" target="_blank"> 52. Zend_Test</a></span></li>
<li> <span class="chapter"><a href="http://diariodecodigos.info/zend/ptBR/zend.text.html" target="_blank"> 53. Zend_Text</a></span></li>
<li> <span class="chapter"><a href="http://diariodecodigos.info/zend/ptBR/zend.timesync.html" target="_blank"> 54. Zend_TimeSync</a></span></li>
<li> <span class="chapter"><a href="http://diariodecodigos.info/zend/ptBR/zend.translate.html" target="_blank"> 57. Zend_Translate</a></span></li>
<li><span class="chapter"><a href="http://diariodecodigos.info/zend/ptBR/zend.validate.html" target="_blank"> 59. Zend_Validate</a></span></li>
<li> <span class="chapter"><a href="http://diariodecodigos.info/zend/ptBR/zendx.jquery.html" target="_blank"> 65. ZendX_JQuery</a></span></li>
</ul>
</li>
<li><strong>Última Dica<br />
</strong>Faça o download da documentação do API (<a href="http://framework.zend.com/docs/api" target="_blank">http://framework.zend.com/docs/api</a>)vai ser bastante útil.<br />
Também temos exemplos na Documentação (<a href="http://framework.zend.com/manual/en/" target="_blank">http://framework.zend.com/manual/en/</a>) vá em direção ao rodapé da pagina e clique em &#8220;List of Exemples&#8221;.</li>
</ul>
<p style="text-align: center;"><a href="http://diariodecodigos.info/wp-content/uploads/2009/10/zend-api.png" target="_blank"><img class="aligncenter size-full wp-image-614" style="border: 2px solid black;" title="zend-api" src="http://diariodecodigos.info/wp-content/uploads/2009/10/zend-api.png" alt="zend-api" width="722" height="328" /></a></p>
<p style="text-align: center;"><a href="http://diariodecodigos.info/wp-content/uploads/2009/10/list-exemple.png" target="_blank"><img class="aligncenter size-full wp-image-615" style="border: 2px solid black;" title="list-exemple" src="http://diariodecodigos.info/wp-content/uploads/2009/10/list-exemple.png" alt="list-exemple" width="322" height="302" /></a></p>
<p>Áh&#8230; também existe um detalhe muito importante! Caso você não queira usar o Framework por inteiro, pode utilizar somente o recurso que desejado, porque todos esses componentes não passam de bibliotecas, basta copiar as classes para seu projeto, ler a documentação e ser feliz!</p>
<p>Bons Estudos.</p>
]]></content:encoded>
			<wfw:commentRss>http://diariodecodigos.info/2009/10/zend-framework/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Jquery: Método .post()</title>
		<link>http://diariodecodigos.info/2009/10/jquery-metodo-post/</link>
		<comments>http://diariodecodigos.info/2009/10/jquery-metodo-post/#comments</comments>
		<pubDate>Thu, 08 Oct 2009 21:18:08 +0000</pubDate>
		<dc:creator>Alexandre Santos</dc:creator>
				<category><![CDATA[JQuery]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://diariodecodigos.info/?p=521</guid>
		<description><![CDATA[Aprenda a utilizar o método $.post() da biblioteca JQuery.]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-full wp-image-522" style="border: 1px solid black; margin: 3px" title="jquery" src="http://diariodecodigos.info/wp-content/uploads/2009/10/jquery.jpg" alt="jquery" width="236" height="69" /></p>
<p>A mais ou menos um ano trás eu havia comprado um livro sobre Ajax, era a época da Web 2.0 (uma febre).</p>
<p>Hoje? Me arrependo completamente de ter comprado aquele livro e ter aprendido a manipular o XmlHttpRequest  na mão que nem um maluco!</p>
<p>Não me arrependo de ter aprendido Ajax na unha mas sim de ter gastando dinheiro =p.</p>
<p><strong>JQuery:</strong> esse cara é tão fascinante e quem já conhece sabe.</p>
<p><span id="more-521"></span>Mas vamos ao que interesse antes, para os mais novos se familiarizarem segue a baixo um exemplo de código comentado (clique para ampliar):</p>
<p style="text-align: center;"><a href="http://diariodecodigos.info/wp-content/uploads/2009/10/jquery-exemplo.png" target="_blank"><img class="aligncenter size-full wp-image-523" title="jquery-exemplo" src="http://diariodecodigos.info/wp-content/uploads/2009/10/jquery-exemplo.png" alt="jquery-exemplo" width="507" height="243" /></a><br />
Imagem Retirada e Traduzida de <a href="http://www.webdesignerwall.com" target="_blank">webdesignerwall.com</a></p>
<p>Agora que vocês estão mais íntimos, vamos para o assunto principal, entender como funciona o método <strong>Post()</strong> e por em prática! Primeiro a sintaxe:</p>
<pre class="brush: jscript;">
jQuery.post( url, [data], [callback], [type] )
</pre>
<ul>
<li><strong>URL</strong> -&gt; A página para qual você quer fazer a requisição (método POST)</li>
<li><strong>[data]</strong> -&gt;  dados a ser passado no <em>POST</em></li>
<li><strong>[callback]</strong> -&gt; Função à ser executada quando os dados são carregados com sucesso</li>
<li><strong>[type]</strong> -&gt; Tipo de dado à ser retornado pela função de callback  pode ser: &#8220;xml&#8221;, &#8220;html&#8221;, &#8220;script&#8221;, &#8220;json&#8221;, &#8220;jsonp&#8221;, ou &#8220;text&#8221;.<br />
O padrão é string.</li>
</ul>
<p>Primeiramente nós temos que incluir a biblioteca (jquery) na nossa página:</p>
<pre class="brush: xml;">
&lt;script type=&quot;text/javascript&quot; src=&quot;jquery-1.3.2.js&quot;&gt;&lt;/script&gt;
</pre>
<p>Agora temos o formulário:</p>
<pre class="brush: xml;">
&lt;label for=&quot;nome&quot;&gt;Nome:&lt;/label&gt;
&lt;input type=&quot;text&quot; id=&quot;nome&quot; name=&quot;nome&quot;&gt;&lt;br&gt;

&lt;label for=&quot;idade&quot;&gt;Idade:&lt;/label&gt;
&lt;input type=&quot;text&quot; id=&quot;idade&quot; name=&quot;idade&quot;&gt;&lt;br&gt;

&lt;input type=&quot;submit&quot; value=&quot;Cadastrar&quot; id=&quot;cadastrar&quot;&gt;

&lt;div id=&quot;resultado&quot;&gt;
&lt;/div&gt;

&lt;!-- Não esqueçam de usar o atributo &quot;id&quot; ele é importante --&gt;
</pre>
<p>A página php com a função:</p>
<pre class="brush: php;">
$nome = $_REQUEST['nomeUser'];
$idade = $_REQUEST['idadeUser'];

// comando para inserir os dados no banco de dados

if($return == true){
echo &quot;Sucesso!&quot;;
}else{
echo &quot;Error!&quot;;
}
</pre>
<p>Agora o famoso <strong>Jquery</strong>:</p>
<pre class="brush: jscript;">
$(document).ready(function(){
 $('#cadastrar').click(function(){

 // Pega o valor dos inputs
 var nome = $('#nome').val();
 var idade = $('#idade').val();

 // O DIVINO
 $.post('cadastrarUser.php', {nomeUser: nome, idadeUser: idade}, function(data){
 $('#resultado').text(data)}
  ); // Fim do POST
 }); // Fim do Click
}); // Fim do Document Read
</pre>
<p>Pronto seja feliz!</p>
<h2>Dica:</h2>
<p>Segue uma imagem a baixo com a maioria das funções do <strong>Jquery</strong>, se não todas, é muito bom para lembrar (clique para ampliar, não lembro de onde peguei ela, por isso não tem a fonte).</p>
<p style="text-align: center;"><a href="http://diariodecodigos.info/wp-content/uploads/2009/10/Jquery-Board.jpg" target="_blank"><img class="aligncenter size-medium wp-image-530" title="Jquery-Board" src="http://diariodecodigos.info/wp-content/uploads/2009/10/Jquery-Board-300x205.jpg" alt="Jquery-Board" width="300" height="205" /></a>Fonte: Meus Favoritos</p>
<p>P.S.: Esses códigos foram feitos para propósito de exemplos, não testei, caso tenha algum erro por favor comentem.</p>
<p>Abraços.</p>
]]></content:encoded>
			<wfw:commentRss>http://diariodecodigos.info/2009/10/jquery-metodo-post/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>PHP: Datas e Decimais no Padrão Nacional</title>
		<link>http://diariodecodigos.info/2009/08/php-hora-e-casas-decimais-no-padrao-nacional/</link>
		<comments>http://diariodecodigos.info/2009/08/php-hora-e-casas-decimais-no-padrao-nacional/#comments</comments>
		<pubDate>Mon, 10 Aug 2009 17:05:40 +0000</pubDate>
		<dc:creator>Alexandre Santos</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[BR]]></category>
		<category><![CDATA[Decimal]]></category>
		<category><![CDATA[EUA]]></category>
		<category><![CDATA[Float]]></category>

		<guid isPermaLink="false">http://diariodecodigos.info/?p=327</guid>
		<description><![CDATA[Quem está montando um sistema ou qualquer que seja o App em php com MySQL e tem campos com Datas ou valores Monetários terá a necessidade (uma hora) de converter a data para o padrão nacional na hora de ler. E converter para o padrão americano para salvar, assim como os valores monetários também, onde]]></description>
			<content:encoded><![CDATA[<p><img class="alignright size-full wp-image-333" title="PHP" src="http://diariodecodigos.info/wp-content/uploads/2009/08/php-logo.jpg" alt="PHP" width="237" height="185" />Quem está montando um sistema ou qualquer que seja o App em php com MySQL e tem campos com Datas ou valores Monetários terá a necessidade (uma hora) de converter a data para o padrão nacional na hora de ler.</p>
<p>E converter para o padrão americano para salvar, assim como os valores monetários também, onde eles utilizam &#8220;.&#8221; (ponto) para decimal e aqui utilizamos o &#8220;,&#8221; (vírgula).</p>
<p><span id="more-327"></span>Para esse &#8220;desencontro cultural&#8221; eu costumo utilizar funções para converter, segue algumas abaixo:</p>
<p><strong>Converter Datas EUA para Brasil:</strong></p>
<pre class="brush: php;">
function DateUSAtoBR($dateUSA){
if ($dateUSA != &quot;&quot;){
$ano = substr($dateUSA, 0, 4);
$mes = substr($dateUSA, 5, 2);
$dia = substr($dateUSA, 8, 2);
$dateBR = $dia . '/' . $mes . '/' . $ano;
return $dateBR;
} else {
return &quot;&quot;;
}
}
</pre>
<p><strong>Converter Datas de BR para EUA:</strong></p>
<pre class="brush: php;">
function DateBRtoUSA($dateBR){
if ($dateBR != &quot;&quot;){
$ano = substr($dateBR, 6, 4);
$mes = substr($dateBR, 3, 2);
$dia = substr($dateBR, 0, 2);
$dateUSA = $ano . '-' . $mes . '-' . $dia;
return $dateUSA;
} else {
return &quot;&quot;;
}
}
</pre>
<p><strong>Converter valor decimal (float) EUA para Brasil:</strong></p>
<pre class="brush: php;">
function DecimalUSAtoBR($dado){
if ($dado != &quot;&quot;){
return number_format($dado, 2, &quot;,&quot;, &quot;.&quot;);
} else {
return &quot;&quot;;
}
}
</pre>
<p>P.S: Essa função <a href="http://br2.php.net/manual/pt_BR/function.number-format.php" target="_blank">number_format()</a> é de mais!</p>
<p><strong>Converter valor decimal (float) Brasil para EUA:</strong></p>
<pre class="brush: php;">
function DecimalBRtoUSA($dado){
if ($dado != &quot;&quot;){
return number_format($dado, 2);
} else {
return &quot;&quot;;
}
}
</pre>
<p>Bem é só isso, a função <a href="http://br2.php.net/manual/pt_BR/function.number-format.php" target="_blank">number_format() </a>também faz redundância de valores caso você defina quer deseja somente 1 casa decimal.</p>
]]></content:encoded>
			<wfw:commentRss>http://diariodecodigos.info/2009/08/php-hora-e-casas-decimais-no-padrao-nacional/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Encoding &#8211; Ajax + MySQL</title>
		<link>http://diariodecodigos.info/2009/08/encoding-ajax-mysql/</link>
		<comments>http://diariodecodigos.info/2009/08/encoding-ajax-mysql/#comments</comments>
		<pubDate>Fri, 07 Aug 2009 23:00:04 +0000</pubDate>
		<dc:creator>Alexandre Santos</dc:creator>
				<category><![CDATA[Desenvolvimento Web]]></category>
		<category><![CDATA[Ajax]]></category>
		<category><![CDATA[Encoding]]></category>
		<category><![CDATA[ISO-8859-1]]></category>
		<category><![CDATA[MySql]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[utf-8]]></category>

		<guid isPermaLink="false">http://diariodecodigos.info/?p=313</guid>
		<description><![CDATA[Essa semana tive um problema com um sistema para web feito com PHP + Ajax (Jquery) + MySQL. As páginas estavam com a codificação européia (iso-8859-1) e o banco de dados MySQL também, o maior problema que que o ajax só trabalha com o utf-8! Isso significa que se você passar qualquer dado de padrão]]></description>
			<content:encoded><![CDATA[<p><img class="aligncenter size-full wp-image-341" title="ajax php mysql encoding" src="http://diariodecodigos.info/wp-content/uploads/2009/08/ajax+mysql+html1.png" alt="ajax php mysql encoding" width="610" height="80" /></p>
<p style="text-align: center;">Essa semana tive um problema com um sistema para web feito com PHP + Ajax (Jquery) + MySQL.</p>
<p>As páginas estavam com a codificação européia (<em>iso-8859-1</em>) e o banco de dados MySQL também, o maior problema que que o <em>ajax</em> só trabalha com o <em>utf-8</em>!</p>
<p><span id="more-313"></span>Isso significa que se você passar qualquer <em>dado</em> de padrão europeu pelo ajax (coisa que é inevitável) quando for exibido na página (<em>html</em>) ele nos fará o favor de aparecer  com &#8220;?&#8221; e caracteres estranhos no lugar da acentuação de língua portuguesa.</p>
<p>Para resolver esse problema eu fiz o seguinte:</p>
<ol>
<li>Transformei todas as páginas <em>html</em> de <em>iso-8859-1</em> para <em>utf-8<br />
</em>
<pre class="brush: xml;">&lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=utf-8&quot; /&gt;</pre>
</li>
<li>Configurei a sessão do banco de dados para<em> utilizar o UTF-8, com uma função dentro do PHP:<br />
</em></p>
<pre class="brush: php;">mysql_set_charset('utf8',$link);</pre>
</li>
</ol>
<p>Agora mesmo com todas as suas <em>tabelas</em> do MySQL configuradas para utilizar o padrão europeu (<em>latin1</em>,  <em>latin1_swedish_ci</em>), o MySQL tratará de forma transparente convertendo os <em>Charset</em> para você sem problemas na hora de recuperar e inserir dados.</p>
<p>Com isso eu já tinha matado metade dos meus problemas, mas mesmo assim alguns valores que eram retornados pelo banco de dados e eram passados pelo Ajax continuaram vindo com alguns caracteres estranhos, para isso existe uma função no php que resolveu o meu caso:</p>
<pre class="brush: php;">
string utf8_encode  ( string $data  )

// Exemplo de uso:

echo utf8_encode($valorVariavelTeimosa);
</pre>
<p>Bem, isso deixou meu App-Web 100% português, sem gambiarras e POG&#8217;s espalhados pelo código.</p>
<p>Boa Sorte!</p>
<p><strong>Links:</strong><br />
<a href="http://en.wikipedia.org/wiki/Character_encoding" target="_blank">http://en.wikipedia.org/wiki/Character_encoding</a><br />
<a href="http://www.php.net/manual/pt_BR/function.utf8-encode.php" target="_blank"> http://www.php.net/manual/pt_BR/function.utf8-encode.php</a><br />
<a href="http://en.wikipedia.org/wiki/Encoding" target="_blank"> http://en.wikipedia.org/wiki/Encoding</a></p>
]]></content:encoded>
			<wfw:commentRss>http://diariodecodigos.info/2009/08/encoding-ajax-mysql/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>

