Archive for Junho, 2008

PHP From Hell

Embarcando nessa onda de posts semanais que uma galera de blogueiros fazem, resolvi criar a seção “PHP From Hell”. Vou tentar – eu disse tentar :D – postar alguma coisa dessa seção toda sexta-feira. A idéia é postar dicas de funcionalidades do PHP que pouca gente ( incluindo yo hehehe ) conhece.

Vou começar falando da função extract. Esta função importa elementos de um array associativo para a tabela de símbolos. Trocando em miúdos, os índices do array passam a ser variáveis cujo os valores são os seus correspondentes no array. Basicamente é alguma coisa parecida com o register_globals com câmbio manual :D .

Na prática a coisa funciona assim:

<?php

$marca = “Ferrari”;
$origem = “Los Cabos”;

$carros_collection = array(“marca”=>”Audi”,”ano”=>”2008″,”modelo”=>”A4″);
$busu_collection = array(“origem”=>”Lapa”,”destino”=>”Liberdade”);

extract($carros_collection, EXTR_PREFIX_SAME, “tidoc”);
extract($busu_collection, EXTR_SKIP);

echo “<BR/>$marca, $ano, $modelo, $tidoc_marca”;
echo “<BR/>$origem, $destino, $tidoc_origem”;?>

O resultado vai ser:

Ferrari, 2008, A4, Audi
Los Cabos, Liberdade

Mais de onde veio $tidoc_marca e onde foi parar o valor Lapa? Simples Padawan … Como você está inserindo elementos na tabela de símbolos, corre o risco de você cagar alguma coisa. Pra que isso não aconteça, você usa o parâmetro extract_type. É esse parâmetro que indica a forma que as colisões serão tratadas. Em nosso exemplo usamos EXTR_PREFIX_ALL e EXTR_SKIP, no primeiro, se já houver uma variável com o mesmo nome do elemento incorporado, o nome da nova variável irá receber o prefixo indicado no terceiro parâmetro. Com EXTR_SKIP, se ocorrer colisões, o novo valor é descartado.

Outras opções são:
EXTR_OVERWRITE, EXTR_PREFIX_ALL, EXTR_PREFIX_INVALID, EXTR_IF_EXISTS, EXTR_PREFIX_IF_EXISTS, EXTR_REFS.

Recomendo dar uma lida na documentação: http://www.php.net/manual/pt_BR/function.extract.php

Add comment Junho 27, 2008

Aplicações Desktop com PHP – Parte 1

Que o PHP é uma das linguagens de programação mais usadas em ambiente web, todo mundo sabe. Mas pouca gente sabe que também é possível criar aplicações desktop com ela. E é isso que nós iremos fazer. Para tal, iremos utilizar o PHP-GTK.

O que é GTK/GTK+?
O GTK (Gimp Tool Kit) é uma poderosa biblioteca para desenvolvimento de aplicações GUI multi-plataforma, muito utilizada no mundo linux e que vem ganhando seu espaço também no windows.

PHP-GTK
É linguagem binding que permite aos desenvolvedores PHP criarem aplicações gráficas multi-plataforma sem abrir mão dos recursos do PHP.

Vamos então instalar os trecos \o/

Ingredientes

  1. PHP-GTK
  2. Uma caneca com café

Instalação do PHP-GTK no Windows
Baixe aqui http://sourceforge.net/project/downloading.php?groupname=agata&filename=php-gtk2b.exe&use_mirror=ufpr o instalador, execute-o e seja feliz.

Instalação do PHP-GTK no Linux
Baixe aqui http://sourceforge.net/project/downloading.php?groupname=agata&filename=php-gtk2b.tar.gz&use_mirror=ufpr o pacote pré-compilado e siga os passos abaixo:

# tar -xvzf php-gtk2b.tar.gz
# mv php-gtk2 /usr/local/
# ln -sf /usr/local/php-gtk2/bin/php /usr/bin/php-gtk2

1,2,3, testando
Para testar crie um novo arquivo chamdo exemplo.php com o código abaixo:

<?php
if (!class_exists(‘gtk’)) {
die(“O módulo php-gtk2 não foi carregado corretamente. Verifique seu php.ini.”);
}$wnd = &new GtkWindow();
$wnd->set_title(‘Exemplo’);
$wnd->connect_simple(‘destroy’, array(‘gtk’, ‘main_quit’));
$label = &new GtkLabel(“Perdeu preiboy!’”);
$wnd->add($label);

$wnd->show_all();
Gtk::main();
?>

Para executar, vá até a linha de comando e execute:
No Linux

# php-gtk2 exemplo.php

No Windows

C:\php-gtk2\php.exe exemplo.php

É isso ai. No próximo post vamos explorar melhor os recursos do PHP-GTK.

Pra quem quiser saber mais sobre o projeto:
http://www.php-gtk.com.br/
http://gtk.php.net/
Abraços!

Add comment Junho 24, 2008


 

Junho 2008
S T Q Q S S D
« Mai   Ago »
 1
2345678
9101112131415
16171819202122
23242526272829
30  

Arquivos

Tópicos recentes

Tags

Addfont apache Aplicações audio bash Carreira desabilitado desativado Desktop diminuir Documento emprego Encoding Firefox FPDF Gerenciador Google GTK+ HDA iconv iReport Jasper jasperserver Java Linux MakeFont mudo mysql Partição PDF Perl PHP postgres procedure redimensionar Relatorio script shell shrink SLACKWARE som ttf2pt1 vaga Vista Windows

Categorias

Blogroll