09/12/2011 Novidades sobre o Zend Framework na prática
Novidades sobre o Zend Framework na prática!
- 2 comentários
- Posted under e-book
09/12/2011 Backup dos e-mails do Gmail
Hoje precisei fazer uma tarefa que acabou me levando a descobrir uma nova ferramenta. A tarefa em questão era: “exportar para uma lista os e-mails de todas as pessoas que compraram o meu e-book“. Toda venda realizada com sucesso o Pagseguro me envia um e-mail avisando da venda, e um script PHP que eu criei envia o PDF do e-book para o e-mail do comprador. Então teoricamente só precisaria exportar essa lista de e-mails enviados da minha conta do Gmail para um arquivo TXT.
Após pesquisar algumas alternativas cheguei ao Got Your Back (GYB). É um script Python que serve para fazer um backup/restore de todos os e-mails da sua conta do Gmail. Ele salva todas as mensagens em pastas separadas por ano/mes, no formato .eml, o que facilita o uso de alguma ferramenta de busca de textos como o find do MacOSX/Linux. E para facilitar ainda mais ele gera um banco de dados SQLite com os detalhes da mensagem (from, to, subject), então é só fazer uma consulta SQL e você tem acesso a todas as suas mensagens.
Achei bem útil e fácil de usar, então resolvi compartilhar.
- Deixe um comentário
- Posted under python
07/12/2011 10 dicas profissionais do mundo PHP
10 programadores PHP “das antigas”, compartilhando suas experiências de carreira. O que é isso? Um artigo que estamos publicando no iMasters (a primeira parte já está no ar) e que gerou uma palestra e muita polêmica (nos comentários do artigo).
Vai ficar de fora? Dê sua opinião e compartilhe suas dicas. Só tome cuidado com os Trolls
- Deixe um comentário
- Posted under etc
07/12/2011 PHPConference 2011
Na última semana estive em Osasco-SP para a sexta edição do PHPConference, o maior evento de PHP da América Latina.
Novamente pude rever os amigos e lendas da programação PHP, além de conhecer novas pessoas, algumas que eu conhecia via Twitter. Na minha opinião essa é a parte mais importante do evento, a troca de conhecimentos que acontece fora das salas de palestras.
Quanto as palestras, não consegui ver todas as que gostaria, mas as que consegui ver foram muito boas.
Assistindo algumas palestras e conversando com algumas pessoas a sensação que tenho é que o “mundo PHP” ganhou nos últimos meses um novo impulso de qualidade e inovação. Fazia um bom tempo que eu não me sentia empolgado com o ambiente, mas com coisas legais como bancos NoSQL, novos frameworks como Symfony 2, Zend Framework 2, diversos micro frameworks, o Service Oriented Architecture finalmente deixando de ser “tendência” e virando realidade, o MVC evoluindo para algo novo, tudo isso abre novos horizontes para os profissionais.
O material da minha palestra está no meu Speakerdeck e os comentários estão no Joind.in
E que venha o PHPConference 2012!
- Deixe um comentário
- Posted under palestras, php, Zend Framework
29/11/2011 Slim Framework
Alguns dias atrás estava preparando o material de um curso que vou ministrar no PHPConference 2011. O assunto do curso já é bem “denso”: Gearman, Memcached e Sphinx, então não queria aumentar a complexidade incluindo algum Framework, até porque o requisito do curso era apenas “conhecimentos em PHP”.
Então iniciei o desenvolvimento do material usando somente o PHP e me deparei com a situação: “eu não consigo mais trabalhar sem frameworks!!”. Parti então para a busca de um dos novos micro frameworks que surgiram nos últimos meses. Fiz uma pequena (micro?) pesquisa e encontrei algumas opções legais como o Silex, DooPHP, Recess e Slim.
Após uma pequena análise acabei optando pelo Slim. O Silex é muito legal, pois é baseado no Symfony, mas não gostei de ter que usar o Twig para a parte de views, pois isso aumenta a complexidade. O DooPHP me pareceu faltar documentação. O Recess eu gostei bastante, mas vai ficar para um próximo estudo, principalmente a parte de REST, que achei interessante. O Slim me pareceu bem simples e a parte de views é feita por scripts PHP normais, sem precisar de um sistema de templates como o Twig ou Smarty (apesar de ser fácil integrá-los caso desejado).
Usando o exemplo básico do site é possível ver a simplicidade do Slim:
<?php
require 'Slim/Slim.php';
$app = new Slim();
$app->get('/hello/:name', function ($name) {
echo "Hello, $name!";
});
$app->run();
?>
A idéia dele é fornecer apenas a parte de rotas e views simplificadas, sem se preocupar com a parte de modelos e coisas mais complexas.
Organizando o projeto
Com um pouco de esforço é possível fazer um projeto pequeno mas bem organizado usando-se o Slim. Abaixo a minha “receita” de projeto.
Estrutura de diretórios
config controllers docs public images scripts styles index.php vendors Slim views
Conteúdos dos arquivos
.htaccess
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule !\.(js|ico|gif|jpg|png|css|htm|html)$ index.php
index.php
<?php
require 'vendors/Slim/Slim.php';
define('CONTROLLERS_PATH', './controllers/');
define('VIEWS_PATH', './views/');
$app = new Slim(array(
'templates.path' => VIEWS_PATH
));
$controllerDir = opendir(CONTROLLERS_PATH);
while ($controller = readdir($controllerDir)) {
if($controller != '.' && $controller != '..')
require CONTROLLERS_PATH . $controller;
}
$app->run();
Desta forma basta adicionar arquivos no diretório controllers e views. Um exemplo de controller e view
config/db.php
<?php $dsn = 'mysql:host=localhost;port=3306;dbname=gallery'; $usuario = 'root'; $senha = ''; ?>
controllers/Gallery.php
<?php
$app->get('/', function() use ($app) {
require 'config/db.php';
$pdo = new PDO($dsn, $usuario, $senha);
$stmt = $pdo->query('SELECT * FROM gallery');
$data = $stmt->fetchAll();
$app->render('index.phtml', array('data' => $data));
});
$app->get('/gallery/:id', function($id) use ($app) {
require 'config/db.php';
$pdo = new PDO($dsn, $usuario, $senha);
$stmt = $pdo->query("SELECT * FROM gallery where id = $id");
$gallery = $stmt->fetchAll();
$stmt = $pdo->query("SELECT * FROM image where gallery_id = $id");
$images = $stmt->fetchAll();
$app->render('gallery.phtml', array('gallery' => $gallery, 'images' => $images));
});
?>
views/index.phtml
<h2>Galerias</h2> <div id="gallery"> <?php if(isset($data)): ?> <?php foreach($data as $d): ?> <p><a href="/gallery/<?php echo $d['id'];?>"><?php echo $d['name'];?></a></p> <?php endforeach;?> <?php endif;?> </div>
views/gallery.phtml
<h2> <?php echo $gallery[0]['name']?></h2> <h3><?php echo $gallery[0]['description']?></h3> <?php foreach($images as $i): ?> <a href="/images/<?php echo $i['gallery_id'];?>/<?php echo $i['filename'];?>" target="_blank"> <img src="/images/<?php echo $i['gallery_id'];?>/<?php echo $i['filename'];?>200.png"> </a> <?php endforeach;?> <p><a href="/">Voltar</a></p>
Claro que o Slim não substitui um framework completo como o Zend Framework ou o Symfony, mas para projetos pequenos, provas de conceito ou coisas mais simples ele é uma boa opção.
- 5 comentários
- Posted under etc, php
24/11/2011 Pós-graduação em Umuarama
Fui convidado a ministrar uma disciplina na pós-graduação “Desenvolvimento de Software para Internet e Dispositivos Móveis” que vai acontecer em 2012, na cidade paranaense de Umuarama. A disciplina vai ser “Framework de desenvolvimento PHP”, onde vou apresentar o Zend Framework.
Mais informações no site da Faculdade ALFA
- Deixe um comentário
- Posted under Zend Framework
21/11/2011 Slides da minha apresentação no PHPSCConf 2011
No último sábado aconteceu o PHPSCConf 2011 em Itajaí.
O evento foi um sucesso, com ótimas palestras e boas discussões nos intervalos.
Os slide da minha apresentação “10 dicas de carreira” estão no Speaker Deck
- Deixe um comentário
- Posted under etc, palestras
16/11/2011 Palestra no PHP Conference 2011
Além do tutorial também vou palestrar no PHP Conference 2011!
A minha palestra será no dia 03/12, as 12:00, com o título “Otimizando aplicações com Zend Framework”
Aproveite e faça sua inscrição para o evento. Imperdível é pouco!
- Deixe um comentário
- Posted under palestras, Zend Framework
01/11/2011 Artigo na PHP Review
Foi lançada a nova edição da revista PHP Review e conta com um artigo meu, sobre frameworks.
O download do PDF pode ser feito no site oficial da revista
- Deixe um comentário
- Posted under docs, php
31/10/2011 Prêmio Meritus Unochapecó 2011
Ano passado tive a honra de ser premiado com o Prêmio Meritus Unochapecó, na categoria Inovação. É um prêmio bem importante para mim pois é a universidade onde estudei e trabalho como professor, por isso fiquei muito feliz em ser indicado novamente ao prêmio este ano, desta vez na categoria “Destaque Inovação – Empresa estruturada por acadêmicos da Unochapecó”, pelo meu trabalho na Coderockr.
Estou concorrendo com mais duas pessoas, dentre elas um grande amigo meu, o Heber Mantovani. O prêmio vai ser entregue no dia 10/11 em Chapecó, mas mesmo se não ganhar, ter sido indicado já é uma vitória
- 1 comentário
- Posted under coderockr



