Novas versões do PHP, Firefox e PostgreSQL

Filed Under (Dicas, PHP, PostgreSQL) by Cristian Trentin on 02-07-2009

Novidades foram varias no mundo tecnológico, sendo o lançamento do PHP 5.3Link Externo, Firefox 3.5Link Externo e do PostgreSQL 8.4Link Externo.

O Firefox 3.5
Até o momento desse post, pouco mais de 24h do lançamento, já tínhamos 6.5 milhões de downloads do Firefox, veja a quantidade de downloads nesse momentoLink Externo.
As melhorias que temos nessa versão são:

  • suporte a HTML 5Link Externo ( a grande novidade é poder executar audios e videos apenas usando HTML e tendo controle sobre eles)
  • Navegação ciente de localizaçãoLink Externo
  • Suporte nativo a JSON
  • Navegação anônima
  • Nova engine para compilação de Javascript
  • E li em algum lugar que ficou até 250% mais rápido do que a versão anterior

PHP 5.3
Essa é uma das versões mais aguardadas pelos desenvolvedores PHP, algumas das funcionalidades só seriam disponibilizadas na versão 6 do PHP, porém é com muito gosto que digo que agora podemos usar namespaces, vamos a lista de novidades.

  • NamespacesLink Externo
  • Correções de 140 bugs
  • Biblioteca Mysql escrita novamente
  • Garbage Collector, limpeza de memoria.
  • Suporte __callStatic()
  • E_DEPRECATED mostra o método que será removido no PHP 6
  • Melhor uso de memória
  • Melhor reporting de erros de sintaxe

Saiba sobre todas as alterações no PHP 5.3Link Externo

PostgreSQL 8.4
A nova versão trouxe várias melhorias, sem falar no ganho de performance, porém antes de sair atualizando o PostgreSQLLink Externo em seu servidor é muito importante que você leia os releaseLink Externo e veja o que mudou.

  • Não usa mais Shared Memory
  • LC_COLLATE e LC_TYPE diferentes do instalado por padrão
  • Suporte a SSL
  • Sub select usado como Limit

Para saber mais sobre as novidades do PostgreSQL 8.4 você pode ler esse PDFLink Externo criado pelo Fernando Ike de OliveiraLink Externo ou acessar o PostgreSQL.orgLink Externo

Enviar email com o PHP

Filed Under (PHP) by Cristian Trentin on 25-06-2009

Muitos desenvolvedores fazem uso da função mail Link Externo do PHP para o envio de e-mail, já a galera da programação Orientada a Objetos monta suas classes de envio.

Porem não é todo mundo que conhece a classe PHPMailerLink Externo, com ela é possível o envio de emails sem autenticação e com autenticação no servidor, ela é simples e muito fácil de usar. Envie anexos em seus email de olhos fechados!

Vamos a um exemplo, lembrando que não vou mostrar como montar um formulário e pegar esses dados por $_POST ou $_GET no PHP, Cristian mas eu não sei fazer isso! Não sabia, aqui você irá aprenderLink Externo

Usando o PHPMailer

/**********************************************************************
* Arquivo: CONTATO-ENVIAR.php *
* Data: 12/06/2009 *
* Autor: Cristian Trentin – admderede@gmail.com *
**********************************************************************/

//Requere o arquivo de Configuracao do Sistema
require_once(”include/class.phpmailer.php”)/

$nome = isset($_POST['nome']) ? trim(addslashes($_POST['nome'])) : ”;
$email = isset($_POST['email']) ? trim(addslashes($_POST['email'])) : ”;
$assunto = isset($_POST['assunto']) ? trim(addslashes($_POST['assunto'])) : ”;
$msg = isset($_POST['msg']) ? trim(addslashes($_POST['msg'])) : ”;

$phpMailer = new PHPMailer();

$phpMailer->SetLanguage(”br”);

$phpMailer->IsMail(); //Seta o metodo de envio dessa msg, a mail é padrão não precisa nem setar
$phpMailer->IsHTML(true); //Passando HTML true, isso permite usar HTML no corpo do email, pois o PHPMailer monta o Header da msg diferente do padrão

$phpMailer->From = $email; //Seta email remetente
$phpMailer->FromName = $nome; //Seta nome remetente
$phpMailer->AddAddress(”contato@cristiantrentin.com.br”); //Seta destino da msg, aqui pode ser passado ‘N’ emails de destino
$phpMailer->AddReplyTo(”contato@cristiantrentin.com.br”); //Responder para
$phpMailer->Subject = ‘Mensagem do Site – ‘.$assunto; //Monta assunto da msg
$phpMailer->Body = $msg; //Seta a msg

//Verifica o envio
if( $Email->Send() ){

print ‘Mensagem enviada, aguarde nosso contato.’;

}else{

print ‘Mensagem não enviada, tente novamente daqui alguns segundos.’;

}
?>

*Lembrando que o código acima só irá funcionar se hospedado.

Mas e quando precisamos enviar emails autenticados com o SMTP?

/**********************************************************************
* Arquivo: CONTATO-ENVIAR.php *
* Data: 12/06/2009 *
* Autor: Cristian Trentin - admderede@gmail.com *
**********************************************************************/

//Requere o arquivo de Configuracao do Sistema
require_once("include/class.phpmailer.php")/

require_once('../class.phpmailer.php');

$mail = new PHPMailer();

$phpMailer->IsSMTP(); // seta que o envio é por SMTP
$phpMailer->Host = “mail.seudominio.com.br”; // SMTP server
$phpMailer->SMTPAuth = true; // Habilita a autenticação

$phpMailer->Port = 25; // seta a porta de conexão
$phpMailer->Username = “seuemail@seudominio.com.br”; // usuario de conexão com o SMTP
$phpMailer->Password = “senha”; // senha do usuario conexão com o SMTP

//Dados Remetente
$phpMailer->From = ‘Cristian’;
$phpMailer->FromName = ‘contato@cristiantrentin.com.br’;

$phpMailer->AddReplyTo(”contato@cristiantrentin.com.br”); //responder para

//Destinatario
$phpMailer->AddAddress(’email@destino.com.br’);

$phpMailer->Subject = “TESTE SMTP”; //assunto

$phpMailer->Body = ‘Esse é um teste de envio’;

$phpMailer->AddAttachment(”relatorio.pdf”); // anexo

if( $phpMailer->Send() )
print ‘Msg enviada’;
else
print ‘Msg não enviada, tente novamente’;

?>

Também é possível o envio de email autenticados usando o GmailLink Externo, só lembrando você de habilitar no php.ini a extension ‘;extension=php_openssl.dll’.

Links interessantes

Bom pessoal é isso, para quem quer dar uma estudada ainda de uma procurada em envio de emails via socket, uma maneira uma pouco mais complexa para o envio de emails, lembrando apenas que o PHPMailer já faz isso para você.

*A Indentação Link Externo do código ficou estranha com esse plugin de code que estou usando, vou resolver isso logo logo…
[]s

Smarty é seu amigo

Filed Under (PHP) by Cristian Trentin on 25-06-2009

O Smarty Link Externo - Abre em outra Janela é uma excelente Template Engine, facilitando assim o desenvolvimento de projetos PHP e fazendo com que seja mantido um padrão.

Uso Smarty a um bom tempo em meus projetos, com ele é possível fazer um bom uso do conceito MVC, ou seja, separar o projeto em camadas Model, View e Controller (Mas isso é um papo para um outro post).

Mas o Smarty é o único Template Engine para o PHP?

Não, porem é o melhor!

Vamos listar alguns dos itens pelos quais eu uso smarty

  • Separar conteúdo lógico de regra de negócio
  • Cache
  • Instalação e uso muito fácil
  • Plugins
  • Facilidade de uso (já falei isso)
  • Montadores de HTML e CSS alteram o TPL e não o seu PHP
  • É possível criar novos métodos para o Smarty, customizando assim a ferramenta para o seu projeto
  • Os arquivos não compilados toda vez que executados
  • O Smarty é experto o bastante para notar que tem alterações no template e compilar novamente

Outra grande vantagem do uso do Smarty é a manutenção nos seus códigos, digamos que é necessário alterar toda a parte visual do projeto, isso pode ser facilmente resolvido e o melhor sem alterar nada do seu PHP, pois o que irá precisar ser alterado são os TPLs, o contrário também é válido, podendo mudar a regra de negócio sem alterar o visual.

A idéia desse post não é lhe ensinar a usar o Smarty, configurar, alterar e sim existem maneiras de facilitar a sua vida no desenvolvimento de códigos PHPs.

Vamos a um exemplo de utilização

/**********************************************************************
* Arquivo: Index.php *
* Descrição: Arquivo Responsavel por dar um dislpay na index.tpl *
* Data: 23/04/2009 *
* Autor: Cristian Trentin - admderede@gmail.com *
**********************************************************************/

//Requere o arquivo smarty.inc.php
require_once(ROOT."system/include/smarty.inc.php");

//Seta o nome para o tpl
$smarty->assign(’nome’, ‘Fulano de tal’);

//Display no template
$smarty->display(’index.tpl’);
?>

Esse é o nosso PHP, note que nele não existe nada de HTML, CSS ou JS, porém podemos notar que existem um $smarty->assign e um #smarty->display, o assign você seta um valor para ser usado no TPL, agora com o display você passa qual é o template a ser compilado. Simples Não?

Mas Cristian e como ficaria o TPL? Esse TPL teria o nome de ‘index.tpl’ e deve estar dentro do diretório templates… diretório? Que diretório Cristian? Calma explico já já.

< html>
< head>
< title>Exemplo de Smarty< /title>
< /head>

< body>

{$nome} //Aqui passamos a variável que irá conter o conteúdo passado pelo php

< /body>
< /html>

Fácil, não? Sim, muito fácil, mas e o diretório templates que você falou? Sim, o Smarty necessita de quatro diretórios, que são chamados por padrão ‘templates’, ‘templates_c’, ‘configs’ e ‘cache’. Certo, mas eu não gostei desse nomes… Posso mudar? A resposta é sim, basta você alterar as propriedades da classe Smarty $template_dir, $compile_dir, $config_dir, e $cache_dir.

Links importantes

Para saber como fazer o download do Smarty

Instalação do Smarty

Manual do Smarty

Coisas que facilitam muito a minha vida

  • O include ajuda quando precisamos incluir arquivos padrões para todo o site (menu.tpl, meta.tpl, rodape.tpl)
  • Esse é o cara -> Date_format, sim… Você não precisa ficar convertendo a data que recebeu do banco ‘2009-06-25′, esse cara faz isso para você
  • Html_option,, muito bom quando precisamos montar um form com campos do tipo ’select’

Cristian, tem mais ??? Sim, muito mais… leia o manual. []s

Resultado do sorteio (livros)

Filed Under (Papo Furado) by Cristian Trentin on 23-04-2009

No final do dia 23 realizei o sorteio dos dois livros, o ganhador foi o Carlos Eduardo com o comentário abaixo:

Acho que muitas empresas ainda veem essas ações como gasto e não investimento, por isso acabam deixando de lado para não encarecer o projeto. Posted on: 27/mar/2009@13:37

O ganhador receberá em sua casa os dois livros, o mesmo deverá enviar uma foto para esse blog comprovando o recebimento.

Parabéns!

Ferramentas Corretas

Filed Under (Acessibilidade, Dicas) by rochester on 12-04-2009

Olás, sou o Rochester Oliveira. Já escrevi no rochester.wordpress.com, Web Bem Feita, e atualmente escrevo no Já Leu Isso Hoje?.

Vamos começar o estudo de acessbilidade escolhendo as ferramentas corretas.

Navegadores

Ao contrário do que se pensa não é preciso testar o site em TODOS os navegadores para verificar se ele está funcionando corretamente.

Eu utilizo o padrão de desenvolver no Firefox e verificar regularmente no IE6 / IE7, Opera, e Safari. Não me preocupo muito com o Chrome, já que sua Engine é a mesma do Safari (WebKit). O segredo nessa parte é escolher um navegador de verdade pra “representar” cada engine e testar em todos os IE’s possíveis (testar no IE nunca é demais). Claro que se for identificado um público de 90% no seu site que utiliza Flock você tem que testar nele também. O mesmo vale para os mobiles.

Sempre faça teste em sistemas operacionais diferentes, pois ao se utilizar tamanhos em “em” (o recomendado para acessibilidade) a fonte utilizada é a referência de tamanho, se no sistema não tiver a fonte que você utilizou, perdeu preibói.

Pra testar o IE6 utilizo o IE tester. Porém, antes de lançar o site teste ao menos uma vez nos IE’s nativos, pra evitar surpresas.

Complementos do Firefox

  • Web Developer: O mais interessante nele é a utilização de css alternativo, verificações de HTML e CSS facilitadas e outlines. Além do porrilhão de outras ferramentas escondidas.
  • Firebug: É o tipo de extensão que te deixa viciado. Um clique e você sabe (quase) tudo sobre um elemento.
  • HTML Validator: Validação rápida do código e também com opções de validar a acessibilidade.
  • Outras Extensões: Cada caso é um caso. Visite o site de extensões de acessibilidade para firefox e veja qual você precisa :) .

Ledores de Tela

Antes de mais nada, sim você leu leDores. É o termo mais comum para se referir a quem lê para outro (no caso, um programa), e quando a pessoa lê por si mesmo é leitor.

Não tenho números, mas pelas conversas com amigos da área, no Brasil o WebVox (do projeto DosVox) é utilizado por quase a metade dos deficientes visuais. O complicado aí é que o webvox é um navegador em modo texto, as limitações do IE são fichinha perdo das dele.

JAWS é líder mundial, e é muito completo. Ele abre como um programa secundário, ou seja, para navegar você vai utilizar o seu navegador normalmente (firefox…) e ele vai ler o que conseguir dali. O NVDA é a alternativa 100% free ao JAWS. Foque-se nesses três (ou escolha no máximo mais um) e você vai conseguir atingir boa parte do seu público.

O objetivo com essas “seleções” não é deixar o site inacessível pra ninguém, e sim deixar ele acessível para todos e extremamente acessível para seu público-alvo.

Alguma ferramenta recomendada por vocês?

[]’s
rochester.