[ Tutorial ] Symfony 2 Parte 01

Nesta primeira parte de nosso tutorial sobre Symfony você conhecerá um pouco sobre o mesmo e vamos aprender a realizar sua instalação a partir do Composer. Verificaremos se a sua instalação poderá rodar sem incompatibilidades e acessaremos o Bundle Demo que vem junto com a instalação.

Ficou curioso para saber o que é um Bundle? Continue lendo e descubra…

Leia mais

Classe de Paginação PDO

Após algum tempo sem contribuir com a comunidade PHP.
Lancei hoje minha segunda versão da classe de Paginação PDO.

Ela possui algumas melhorias em relação à versão anterior.

Entre elas a facilidade de se conectar à mais de um banco de dados por vez.

O código está disponível no site PHP Classes em http://www.phpclasses.org/package/7529-PHP-Display-pagination-links-for-SQL-queries-using-PDO.html e estou convidando você a baixar o código e testar e fazer sua votação.

Você poderá testar online clicando em http://classes.gilbertoalbino.com/pdo_pagination/test/.

[ Tutorial ] Zend Framework Parte 02

MVC, Modules, Controllers, Views, Parameters

Sumário

Nesta parte do tutorial vamos aprender alguns conceitos fundamentais para todo desenvolvedor que utilize o Zend Framework, entre eles o Padrão MVC, Modules, Controllers, Actions, Models, Parameters. Vamos criar um site básico a partir do nosso projeto criado na parte anterior e vamos utilizar os conceitos citados acima.

Leia mais

[ Tutorial ] Zend Framework Parte 01

Instalação, configuração, criação de projeto

Sumário

Neste tutorial, você vai aprender como baixar e instalar o Zend Framework, assim como ativar o mod_rewrite do Apache e criar um Virtual Host. Vai modificar o arquivo .htaccess para alterar o comportamento do Zend Framework.
Você também vai aprender a criar um projeto utilizando o ZF Tool.
Leia mais

Trocar a Codificação de Caracteres Padrão do PHP – Problemas com UTF-8

Normalmente, quando estamos desenvolvendo aplicações em php, estamos sempre testando códigos que precisam imprimir alguma informação na tela, e como é código rápido sempre nos esquecemos que os caracteres acentuados vão ficar aquelas coisas horríveis.

Depois de muito tempo sofrendo com as incompatibilidades do PHP, Mysql e Ajax para lidar com UTF-8, eu descobri várias artimanhas simples para resolver meus problemas, e que hoje se constituem um verdadeiro arsenal para eu colocar nos projetos que volta e meia estou fazendo.

Quando eu estava criando um script de testes eu me pegava colocando a tag meta antes de abrir o PHP:



<meta charset="utf-8" />

<?php

...

Foi quando pela primeira vez foi olhar no PHP.INI e ver se tinha alguma coisa que definisse o charset padrão do PHP, e para qual surpresa minha, tem!

E o mais gozado, é que é PHP_INI_ALL, ou seja, eu posso configurar meus scripts também, além do arquivo php.ini, usando a funcao ini_set():



<?php

ini_set( 'default_charset', 'utf-8');

Bom, com isto, estou resolvendo um zilhão de problemas bestas!

E mais interessante é que se eu fizer isto:



<?php

ini_set( 'default_charset', 'utf-8');

?>

<meta charset="iso-8859-1" />

O PHP vai dar preferência ao default_charset.

Agora já era dor de cabeças com imcompatibilidades, já vou direto colocando um charset no ini_set() e como faço um monte de include() para os meus testes, nem minhas aplicações e sites ou testes terão caracteres estranhos me azucrinando!

Besteira, mas ajuda!

Como Instalar ImageMagick, imagick com PHP 5.3 no Windows 7, XP com Apache e VC6

NUNCA SE ESQUEÇA! INFORME O CAMINHO ABSOLUTO PARA O ARQUIVO

Olha só que caos!

Conheci por acaso o ImageMagick e fiquei horrorizado com a quantidade de formatos que o mesmo manipula, praticamente todos, e mais ainda, descobri que ele tinha uma extensão disponível para o PHP.

Olhei a documentação do PHP e vi a grande variedade de métodos disponíveis para o mesmo, e não perdi tempo e buscar uma forma de instalar, pois me pareceu muito útil, principalmente para gerar miniaturas perfeitas de imagens em galerias de imagens.

Aparentemente, tudo iria dar certo, mas como utilizo o PHP 5.3.3 algumas dificuldades começaram a surgir, pois a maioria dos tutorias eram para o Windows Xp e PHP 5.2 ou menor, achei até algo para PHP 4.3, nem sei quem usa php 4, mas deve ter, não duvido nada.

  1. Primeira delas foi o fato de cada tutorial sugerir uma versão diferente do ImageMagick a ser utilizada.
  2. Em segundo, o fato do PHP ser compilado com VC6 e VC9
  3. Ai veio o fato do PHP ter TS(thread safe) e NTS (non-thread save)
  4. Ai depois veio o registro do ImageMagick no windows ser visto pelo php.ini
  5. e por fim, Imagick aparecer listado no php.ini.

Consegui instalar tudo, só não consegui fazer o bixinho funcionar com um código igual à este ( que é o primeiro exemplo do php.net )



<?php

header('Content-type: image/jpeg');

$image = new Imagick( 'test.jpg' );

$image->thumbnailImage(100, 0);

echo $image;

Aparecia uma mensagem dizendo que a conexão com o servidor foi encerrada inesperadamente.

Até consegui executar o ImageMagick via comando, mas não era o que eu queria.

Ai, num dia sem sono, ou bem dormido, sei lá…. depois de duas semanas sem sucesso na instalação do Imagick no PHP, mas como não desisto fácil dos meus objetivos, apesar de ter encontrado uma classe que processava os comandos do ImageMagic via exec(), acordei às 4 horas da madrugada, tomei banho às 5, e fui para minha empresa às 6 estudar um pouco de PHP, e inventei de testar a biblioteca “fileinfo” no PHP 5.3 e descubro que tal biblioteca precisava do caminho absoluto do arquivo para achar o arquivo a ser processado, aiiiiiiiiiiii, foi só associar as coisas e descobrir que o PHP 5.3 não estava encontrando os arquivos a serem processados e por isto que dava erro, só isto, ai ao invés de:



<?php

header('Content-type: image/jpeg');

$image = new Imagick( 'test.jpg' );

$image->thumbnailImage(100, 0);

echo $image;

era só mudar a linha:



<?php

...

$image = new Imagick( 'test.jpg' );

...

para:



<?php

...

$image = new Imagick( dirname(__FILE__) . '/test.jpg' );

...

Para ver a miniatura ser criada antes de piscar os olhos e pensar em esperar!

Pronto! Resolvido! Hoje sou um dos caras mais felizes do mundo e posso pensar em aplicações mais robustas com processamentos avançadíssimos de imagens!

NUNCA SE ESQUEÇA! INFORME O CAMINHO ABSOLUTO PARA O ARQUIVO

Instalando tudo

NUNCA SE ESQUEÇA! INFORME O CAMINHO ABSOLUTO PARA O ARQUIVO

Vou colocar abaixo o link para os softwares que utilizei pelo 4shared e as orientações que tomei, se você estiver utilizando php no IIS ou Apache com VC9, procure outro tutorial na net, e se apesar de listar tudo, direitinho, apenas preste atenção na questão do caminho do arquivo que citei acima.

Baixe e instale o ImageMagick ImageMagick-6.6.6-6-Q16-windows-dll.exe em qualquer lugar menos Arquivos de Programa (na raiz do disco é melhor) e marque todas as opções menos a que diz: “Associate supported file extensions with ImageMagick” e ignore uma mensagem de erro que vai aparecer

Baixe a dll php_imagick.dll e coloque na pasta de extensões do php

Acrescente a chamada à dll no arquivo php.ini no final da lista de extensões do php



... #toda a lista acima

extension=php_imagick.dll

E use o script que utilizei para testar. (troque o nome do arquivo para coincidir com o que você está utilizando).

NUNCA SE ESQUEÇA! INFORME O CAMINHO ABSOLUTO PARA O ARQUIVO



<?php

header('Content-type: image/jpeg');

$image = new Imagick( dirname(__FILE__) . '/test.jpg' );

$image->thumbnailImage(100, 0);

echo $image;

Pronto!

Espero que tenha funcionado!

Se não funcionar, talvez eu não possa ajudar de outra forma, pois esta foi a única forma de ver o bixinho funfando!

Abraços e NUNCA SE ESQUEÇA! INFORME O CAMINHO ABSOLUTO PARA O ARQUIVO

Pegar Constantes Definidas no PHP Pelo Usuário

Ao desenvolver uma aplicação precisei fazer uns testes de verificação onde era necessário saber quais constantes eu já havia definido.

Na documentação do PHP existe uma função bem interessante que retorna todas as Constantes declaradas: get_defined_constants.

Entretanto, como a cada nova versão que surge, novos recursos são adicionados, e no meu caso, não prestei atenção na implementação do parametro “categorize” na função get_defined_constants a partir do PHP 5.00, de fato, bem pouco usei esta função, mas quando usei a primeira vez foi com PHP 4.x.x.

Desta forma, agora é possivel pedir ao PHP que mostre as constantes categorizadas por tipo ( mhash, calendar, date, ftp, etc e tal ) e o melhor de tudo, colocaram a categoria “user“.

Vamos fazer alguns teste:

1) Somente get_defined_constants():



print '<pre>';

print_r( get_defined_constants() );

print '</pre>';

Note que o resultado foi uma constante debaixo da outra.

2) Agora get_defined_constants(true):



print '<pre>';

print_r( get_defined_constants(true) );

print '</pre>';

A coisa começou a melhorar! Temos agora um índice para categorizar.

Se você rolar a página de resultados para baixo até o final, vai encontrar o índice “user“.

Desta forma, para pegar somente as constantes definidas por nós, usuários, basta colocar o resultado de get_defined_constants dentro de uma variavel e chamar a impressão direto a partir do índice “user”.

3) Agora pegando somente as definidas pelo usuário:



print '<pre>';

$constantes = get_defined_constants(true);

print_r( $constantes['user'] );

print '</pre>';

Pronto! O milagre aconteceu e achei as constantes definidas por mim mesmo!

Class DirectoryHandler auxílio para a função rename do PHP no Windows

Solução para resolver o problema com rename no windows

Estes dias me deparei com um problema chato pra dedéu enquando desenvolvia uma nova aplicação para a empresa que trabalho!

O PHP no meu apache rodando em Windows não executava a função rename().

Então resolvi o problema criando uma classe utilizando alguns recursos nativos da SPL do PHP 5 e misturando um pouco com recursos que já são até barbudos do PHP e que se não cuidar enrosca no servidor quando estiver rodando (riso, tudo bem não teve graça ).

Leia mais

[Tutorial ] Classe Datetime do PHP – Parte 01

Introdução

O PHP é uma linguagem de programação web muito utilizada atualmente pela sua extrema facilidade de aprendizado e pelo fato de sua arquitetura estar totalmente voltada ao programador. Os responsáveis pelo PHP acertam sempre quando integram um novo recurso na linguagem, pois sempre que algo novo é adicionado, a facilidade de acessar o mesmo é sempre fácil, prática e dinâmica em muitos casos.

Com o crescente uso do PHP por programadores que utilizam a Orientação à Objetos, o PHP acabou dando um show neste quesito após o lançamento da versão 5.

E como não poderia faltar, e o que é o tema desta sequência de tutoriais, o PHP 5 vem com uma classe interna chamada DateTime, que possui alguns recursos interessantes para manipulação de datas.

Leia mais

Classe de Paginação com PDO

Já há algum tempo que escolhi o PDO como classe para trabalhar com banco de dados no PHP,

e não por menos encontrei problemas com paginação de resultados.

Num domingo, resolvi criar um código estruturado para paginar um site que desenvolvi em www.himoveis.com.

Então hoje resolvi criar uma classe baseada neste código.

Leia mais