Utilizando Template_Controller no Kohana

O Kohana utiliza o padrão MVC para a construção de aplicações, e nas views é que toda a informação é mostrada em nossa aplicação. Todo o HTML, CSS, JS (e não só eles, como também qualquer XML, JSON, REST) é enviado pela view.

O Kohana tem um bom suporte nas views, inclusive para nested views, porém hoje vamos falar da Template_Controller. Quando você vai desenvolver um site/sistema/aplicação que tem um layout padrão, a Template_Controller é a ferramenta ideal. Veja como é simples utilizar:

Vamos criar um controller chamado Teste em application/controllers/teste.php

<?php defined('SYSPATH') OR die('No direct access allowed.');
class Teste_Controller extends Template_Controller {
// Você pode especificar qual template deseja utilizar, opcionalmente
public $template = 'view_padrao';
public function index()
{
$this->template->titulo = 'Teste';
$this->template->texto = 'Lorem ipsum dolor ...';
}
}

Por padrão, o Kohana invoca uma view chamada Template que deve estar em /application/views/template.php
Você pode facilmente mudar qual template deverá ser chamado, como fizemos no exemplo acima usando a view view_padrao

Na view que você especificar, você pode montar toda a estrutura que terá sua aplicação como você faria sem qualquer framework, utilizando esta view como template para seu projeto. Há mais exemplos de uso na documentação oficial.

Simples, não? É Kohana!
E é por isso que eu gosto :)

Bookmark and Share

If you enjoyed this post, make sure you subscribe to my RSS feed!

Kohana bundle for Textmate/e-texteditor

If you program in PHP using Kohana and as editor TextMate (Mac) or e-Texteditor (Win) this bundle is for you!
http://code.google.com/p/kohana-bundle/

How to install?

  1. Download
  2. Unzip
  3. Just copy the bundle to the “Bundles” folder in the user settings application directory, usually something like …
    • “C:\Documents and Settings\[username]\Application Data\e” or
    • “C:\Users\[username]\Application Data\e” or
    • “C:\Users\[username]\AppData\Roaming\e”
  4. Note: That bundles located under the “user settings application” directory, have precedence over e’s default bundles, which are located in e’s installation directory, e’s installer will overwrite all changes which are done in e’s installation directory!
Bookmark and Share

If you enjoyed this post, make sure you subscribe to my RSS feed!

Windows 7 no Dell Inspiron 1525

Estava eu no mini-curso de Zend Framework  no phpSCconf, e para minha surpresa algumas pessoas estavam usando o Windows 7 em seus notebooks, mas a maior surpresa estava por vir quando eu vi com meus próprios olhos um Athlon 1.0 com 1GB de ram ser mais rápido que meu Core2Duo 2.4 com 2GB de ram!

Com o Windows 7 instalado, tudo rodou bem de primeira e sem precisar instalar nenhum driver! Nos testes pós instalação, tudo funcionou muito bem e com desempenho superior, e até minha bateria que antes durava em torno de 2:20h agora está durando em média impressionantes 3:30h

Hoje a noite testei a conexão HDMI com o Windows Media Center e o resultado foi impressionante, um espetáculo! Toda esta melhoria de performance e ainda consigo utilizar o Windows Aero com todas as funções habilitadas, coisa que antes não era possível com o Windows Vista.

Bookmark and Share

If you enjoyed this post, make sure you subscribe to my RSS feed!

Boas práticas desenvolvendo em Kohana

Utilizar frameworks no desenvolvimento web está mais que provado que traz muitos benefícios na sua equipe de desenvolvimento. Para quem é aficcionado com prazos então, é uma prática totalmente favorável.

O uso dos frameworks passou a ser comum devido aos benefícios, garantido na maioria dos casos:

  • Maior produtividade utilizando de orientações a objeto e conceitos como DRY
  • Documentação –  que geralmente é deixada de lado no desenvolvimento pelos curtos prazos – torna-se muito mais fácil
  • Padronização, que vem a ser um problema grande quando há mais de uma pessoa no desenvolvimento do mesmo projeto

Dentre vários outros benefícios, ainda temos as Melhores Práticas no desenvolvimento de cada framework, sempre procurando aproveitar o melhor do melhor.

Caio Ariade escreveu um ótimo artigo falando do Kohana PHP: Boas práticas de desenvolvimento

Bookmark and Share

If you enjoyed this post, make sure you subscribe to my RSS feed!

Como se livrar de um telemarketing chato

Telemarketing realmente é um saco, não só para quem atende como para quem liga. Quando você é a pessoa que liga, há por trás de você um cara que chamam de supervisor, que na verdade é um cara que te torra o saco o dia todo para que você venda e venda mais do que vendeu ontem, de preferência vender mais que a meta!

Porém, para quem atende também é um saco!
Eu simplesmente não tenho mais paciência para atender ligações de telemarketing, e confesso que adotei uma estratégia no mínimo divertida nos últimos dias: solicitar uma senha. Sim, isto mesmo … agora precisa de senha para que eu possa atender o telemarketing.

Quando é a primeira ligação, deixo bem claro que não posso atender e informo que retorne em outro dia (geralmente, num horário que não estarei próximo ao telefone) e solicito que utilizem a senha informada na ligação atual. Por si só, 90% das ligações morrem ali … sem eu precisar ouvir que “é da empresa XXX e estamos com uma promoção imperdível onde você assina yyy e ganha uma caneta dourada”.

Mas, tem vezes que a estupidez humana é maior e há uma mulher que trabalha no telemarketing ativo da Mastercard que me liga, a ligação cai na caixa postal e ela fala “Olá Sr. Marcelo, meu nome é Fulana e a senha é lmc523 e …” hehehehe. Não bastasse isto, hoje ela conseguiu falar comigo, quando falou a senha eu senti na voz dela uma voz de satisfação como “aleluia, consegui falar com o cara”, porém ainda não tinha acabado:

  • Olá Sr. Marcelo, meu nome é fulana e falo da Mastercard, tudo bem?
  • Tudo, você tem senha?
  • Sim, claro que tenho … é lmc523
  • Só um momento, vou verificar a senha

Juro que deixei ela 3 minutos esperando, esperei a música que estava ouvindo acabar … e voltei:

  • Desculpe, mas esta sua senha expirou … não vou poder te atender …
  • Antes que eu pudesse gerar uma nova senha, ela desligou *rs

Mas, tem gente que consegue se superar! Senha é para os fracos, vejam o vídeo abaixo:

Bookmark and Share

If you enjoyed this post, make sure you subscribe to my RSS feed!

7 anos de casado


Janaina

Esta é a gata que eu amo, e que hoje estamos comemorando 7 anos de casamento. Muito amor, turbulências e tudo que Deus tivesse escrito aconteceu, e acredito que ele ainda escreveu muita história pra gente viver juntos!

Locação: Centro Histórico de São Francisco do Sul
Iluminação: Um sol maravilhoso que fez neste domingo, imperdível!

Bookmark and Share

If you enjoyed this post, make sure you subscribe to my RSS feed!

15 ANOS DISCOVERY CHANNEL

Para comemorar os 15 anos da Discovery, eles resolveram fazer uma série de concursos tendo como destaque o  Concurso de Experiências, onde se você for um dos ganhadores você ganha uma “experiência 100% discovery” para algum dos três destinos: Canal do Panamá, Patagônia ou Machu Picchu. Eu só não escolhi a Patagônia para não dar o braço a torcer aos hermanos, então escolhi Machu Picchu.

Nesta história toda, participei de um outro concurso no site da ViaEmbratel onde você formulava uma frase com o tema “Por que você e o canal Discovery Channel formam uma parceria perfeita?”, juro que só anotei no meu calendário qual era a data do resultado do concurso pra ver as frases mais legais e até tinha esquecido.

Ontem recebi um pacote da Discovery!
Fui abrir e tcharam: eu sou um dos 15 ganhadores.

E como Abril é o mês da programação do Mês da Terra, recebi uma caneca da Discovery feita de 100% plástico de milho, isto mesmo: plástico de milho, 100% natural e que resulta num plástico tão pesado quanto a porcelana (e que no primeiro café, mostrou-se segurar calor tanto quanto a porcelana também)

Discovery 15 Anos - Caneca

Discovery 15 Anos - Caneca

Bookmark and Share

If you enjoyed this post, make sure you subscribe to my RSS feed!

ViaEmbratel encomenda produção de decoder SBTVD com saída HDMI

Para quem é assinante da ViaEmbratel, já pode desfrutar de uma ótima imagem com transmissão digital no sistema SBTVD. Porém o decoder utilizado pela ViaEmbratel apesar de bom, ainda tem saídas somente analógicas

Tudo indica que o Coship N8102H, que é o atual decoder da Via (ainda analógico) será substituído pelo N8102TH, que já tem capacidade de suportar resoluções HD em 720p e chegando até em 1080i (seria legal suportar 1080p, mas por transmissão de satélite isto não seria problema)

Exatamente hoje, entrou no site da Coship [http://migre.me/ndm] a página com as principais características deste novo produto:

  • Fully SBTVD-T / ISDB & -4 compliant
  • 8M Flash & 128MB DDR-RAM
  • Compatible with 480/576i/576p/720p/1080i video formats
  • Aspect ratio 16:9 and 4:3
  • 256 colors on screen display (OSD) supported
  • AV Output : HDMI, YPbPr, RCA, S/P DIF
  • Multi-language Subtitle output supported
  • 7 days Electronic Program Guide (EPG)
  • Common Interface slot ready (optional)
  • Teletext output through VBI and OSD
  • RF modulator supported( optional)
  • Picture in Picture (PIP) supported( optional)
  • Channel search in automatic, manual and network search
  • Software upgrade via RS-232 serial port
  • Timer function supported
  • USB 2.0 interface supported (Front)
  • Ethernet MII supported

Tudo indica que em breve teremos novidades da ViaEmbratel ;)

Bookmark and Share

If you enjoyed this post, make sure you subscribe to my RSS feed!

Vale a pena investir em Ruby on Rails? Django?

Vejo muita gente que já desenvolve pra web ficar seduzida com as facilidades de alguns frameworks que estão na moda, que estão no topo da mídia especializada. Não é a toa que Ruby on Rails e Django realmente estão neste círculo de modinha, pois eles realmente facilitam a vida do programador.

Existem inúmeros artigos malhando o pau no PHP – vamos falar a verdade, todo programador web que se preze ao menos já programou algo em PHP, a não ser que você só viva no mundinho do Mac – por ele não ser produtivo quando comparado a Django ou ROR. Porém muitos esquecem que Django e ROR não são linguagens de programação, a maioria quando lê estes artigos simplesmente ignora que temos Pyton e Ruby por trás desta brincadeira.

Ora, como assim Bial?
Então o correto é comparar frameworks PHP com ROR e Django?
Sim, porque estamos falando de frameworks e não de linguagens de programação.

Neste quesito quem inovou muito foi o Ruby on Rails, tanto que frameworks PHP vieram a implementar e até copiar seu comportamento e algumas funcionalidades, como por exemplo o CakePHP.

Tá, mas eu preciso aprender uma nova linguagem?
Não necessariamente, há frameworks PHP que podem atender perfeitamente muitas funcionalidades bem bacanas do ROR e Django sem que você precise ter um tempo dedicado a uma nova linguagem e o seu tempo de maturação e experiência nesta nova empreitada. Um dos frameworks que utilizamos com boa frequencia e que nos dá agilidade no código com uma fácil escalabilidade e boa manutenção, é o Kohana PHP. Um framework totalmente strict PHP5, com suporte MVC e ORM, URL limpas e de uma pequena curva de aprendizado (eu diria que você trabalha efetivamente nele em questão de 1 ou 2 dias, é muito rápido até pra quem nunca viu MVC).

Não vou postar aqui um tutorial de “como criar um blog em 5 minutos”, porque isto já existe. Mas vou mostrar da mesma forma que a galera do Rails gosta de mostrar que são produtivos e vou mostrar como podemos trabalhar com uma tabela de produtos de forma muito fácil no Kohana. Para isto, precisamos criar nosso model:

class Produto extends ORM {}

Não, eu não esqueci código!
É só isto mesmo e tudo já funciona, legal não?

Para quem já conhece MVC, veja como é moleza trabalhar com os controllers

class Produto_Controller extends Controller {
// Listando todos os produtos
public function todos(){
$objProduto = new Produto();
print_r $objProduto->find_all();
}
}

E nem precisei escrever uma linha de SQL! E você pode acessar isto em http://seusite.com/produto/todos. Note que o sistema de URL’s é limpo e bem prático. Veja outro exemplo onde acessamos algum produto pelo código

class Produto_Controller extends Controller {
// Listando todos os produtos
public function todos(){
$objProduto = new Produto();
print_r $objProduto->find_all();
}
// Procurando um produto pelo ID
public function procurar($id){
$objProduto = new Produto($id);
print_r $objProduto;
}
}

Se acessarmos http://seusite.com/produto/procurar/2 o sistema irá localizar o produto com o ID=2 sem que você precise escrever uma única linha de código SQL para isto. Muitos frameworks trabalham com recursos fantásticos que novatos adoram, como por exemplo a automágica para gerar telas administrativas e facilidades como gerar o banco a partir dos models, e fazer deploy por linhas de comando.

Porém quando você trabalha profissionalmente, geradores de código não são boas soluções para seus problemas, e felizmente em frameworks como o Kohana não precisamos de geradores de código automágicos para ter produtividade, pois temos controle real da aplicação sem comprometer agilidade e manutenção do código, sem contar que não são necessários escrever arquivos de deploy e executar tarefas em linha de comando. Você simplesmente ativa a aplicação no modo produção, e tudo está pronto no servidor.

Enfim, este não é um post para ensinar Kohana a fundo, pois há tutoriais disponíveis para isto. Nem muito menos para falar mal do Rails ou do Django, que estão na sua fase de vitrine. Porém, é pra mostrar a você que não é preciso aprender uma nova linguagem para ter produtividade no desenvolvimento para web, se você já programa em PHP.

Este artigo teve seus links propositalmente apontados para versões nacionais dos portais de linguagens/frameworks.

Bookmark and Share

If you enjoyed this post, make sure you subscribe to my RSS feed!

Usando datas no PHP em provedores estrangeiros

O PHP é uma linguagem que tem ótimas ferramentas para trabalhar com tempo, mais especificamente com datas e horas. Porém quando você hospeda sua aplicação num servidor fora do Brasil (no meu caso a Dreamhost), você trabalha com fusos horários diferentes do Brasil, e ficar fazendo cálculos de diferença em horas é complexo pois além do Brasil ter horário de verão, os EUA também tem!

A solução é declarar no seu framework qual timezone você utiliza, ou ainda se você não usar nenhum framework que suporte isto ou PHP puro, é utilizar a função date_default_timezone_set que pode salvar sua pele na hora de fazer os parafusos se manterem apertados!

Para utilizar o horário oficial Brasileiro (o famoso Horário de Brasília) a sintaxe é esta:

date_default_timezone_set("Etc/GMT+3");
Bookmark and Share

If you enjoyed this post, make sure you subscribe to my RSS feed!