Author Archive
Controllers no Kohana
Um controller é um arquivo que contém uma classe que vai gerenciar todo o fluxo da aplicação.Se você não conhece MVC, é uma boa hora para estudar porque o Kohana é todo MVC.
![]()
Os controllers comunicam-se diretamente com os models enviando e recebendo informações, muitas das informações recebidas são repassadas as views para serem renderizadas no navegador do usuário, e podem também ser recebidas das views dentro dos controllers para serem processadas pelos models novamente.
Enfim, deu pra perceber que o controller é quem controla o fluxo de informações e da aplicação :)
Trabalhar com Controllers no Kohana é muito fácil, vamos ver como:
Convenções para Controllers
- O arquivo deve ser gravado em application/controllers
- O nome do arquivo deve ter o mesmo nome da classe, em minúsculo.
Exemplo: artigos.php - O nome da classe deve conferir com o nome do arquivo, iniciada de Controller_ e com a primeira letra em maiúsculas.
Exemplo: Controller_Artigos - A classe deve ser extendida do Controller base (ou de outro controller).
Exemplo: Controller_Artigos extends Controllers - Os métodos que serão acessíveis pela URL devem ser públicos e precedidos por _action.
Exemplo: public function action_todos()
Acessando e Requisitando um Controller
Por padrão, o acesso a um controller é feito da seguinte forma:
http://dominio.com/index.php/<controller>/<action>
Então para acessarmos o controller artigos e a action todos, nosso exemplo ficaria assim:
http://dominio.com/index.php/artigos/todos
Criando um Controller
Seguindo nosso exemplo, vamos criar um controller artigos:
application/controllers/artigos.php
class Controller_Artigos extends Controller
{
public function action_index()
{
$this->request->response = "A resposta para a vida, o universo e tudo mais é 42!;
}
}
Acessando http://dominio.com/index.php/artigos/index (ou dominio.com/artigos/ porque a action_index é a padrão, por default) teremos o seguinte resultado:
A resposta para a vida, o universo e tudo mais é 42!
Recebendo Parâmetros via URL
Como o controller é responsável pelo fluxo de informações dentro da aplicação, uma das grandes utilidades é receber informações. Uma das formas mais simples é via URL. Vamos aprimorar nosso exemplo, solicitando artigos pelo seu número:
class Controller_Artigos extends Controller
{
public function action_index()
{
$this->request->response = 'A resposta para a vida, o universo e tudo mais é 42!';
}
public function action_ver($numero=0)
{
// Rotina para pesquisar artigos
// {...}
$this->request->response = "Você solicitou o artigo número $numero";
}
}
No exemplo acima, acessando http://dominio.com/artigos/ver/12 teremos o seguinte retorno:
Você solicitou o artigo número 12
Um exemplo mais bacana, somando 2 números passados via URL:
class Controller_Artigos extends Controller
{
public function action_soma($a=0,$b=0)
{
$this->request->response = "A soma de $a e $b é igual a ".$a+$b;
}
}
Acessando http://dominio.com/artigos/soma/40/2 temos como retorno:
A soma de 40 e 2 é igual a 42
Funções Privadas em Controllers
Em determinadas situações precisamos manter algumas funções disponíveis como public mas não queremos que elas sejam acessadas pela URL, neste caso é só não usar o prefixo action_ no nome da function.
class Controller_Artigos extends Controller
{
public function megasena()
{
$this->request->response = 'Os números da megasena são ...';
}
}
E assim se tentarmos acessar http://dominio.com/artigos/megasena não teremos acesso a esta função dentro do controller, como esperado!
Conclusão
Nos próximos tutoriais vamos trabalhar com Views, Models e depois a troca de informações entre eles.
Qualquer problema ou dúvida, fique a vontade nos comentários.
Simples, não? É Kohana!
E é por isso que eu gosto :)
Windows não encontrou um volume de sistema que atenda aos critérios de instalação
Se você está tentando instalar um Windows Server, e encontrou o erro …
O Windows não encontrou um volume de sistema que atenda aos critérios de instalação
.. e por mais que você tente dedicar uma partição a ele e ele não aceite instalar, sugiro você fazer o boot com o CD Live do Ubuntu, abrir a partição que deseja usar no gParted e marcar a flag ‘boot’ na partição, salve e pronto :)

photo credit: Domain Barnyard
Netbeans + Tema Twilight + Fonte Monaco
Programar é uma coisa que exige do programador bom conhecimento na linguagem que ele programa. Chega um momento que as coisas começam a se tornar repetitivas e você adota um framework (ou não!) para deixar que tudo o que for chato e repetitivo seja feito por ele. Tudo vai bem até que outro momento você pensa em otimizar melhor ainda seu trabalho (ou o seu ambiente de programação) e decide repensar melhor o editor/IDE que usa para programar.
Todo mero mortal programador vai passar por isso, se você está lendo este texto com certeza está ou já esteve próximo esse pensamento. Poupando melhor o seu tempo, ano passado passei por este mesmo período e fiz o dever de casa avaliando inúmeros editores de uso livre/gratuito para minha plataforma de trabalho e … minha escolha caiu sobre o NetBeans.
Se você esperava um post te convencendo a usar o NetBeans, se deu mal. Sim, ele tem suporte a edição de CSS, geração quase automática de testes unitários, documentação baseada no phpDocumentor, projetos remotos, refatoração de código, trabalho em equipe com SVN/CVS, autocomplete de funções e variáveis e muitos outros inúmeros recursos.

Netbeans com Tema Twilight e Fonte Monaco
Gosto muito de usar o NetBeans com uma fonte que vem no Mac, chamada Monaco e o tema Twilight. Porém sempre encontro problemas ao habilitar diversas versões desta fonte por ela não ser Unicode e por ai vai. Neste cenário, eu escrevi este post para ter guardado para o futuro meu setup pessoal para o NetBeans:
- Instalar o NetBeans (eu instalo somente a versão PHP no meu Ubuntu)
- Instalar o tema Twilight for NetBeans (inspirado no disponível para textmate)
- Ferramentas » Opções » Importar
- Instalar a fonte Monaco Unicode em TTF no Ubuntu
- Copiar para ~/.fonts
- Executar fc-cache -fv
- Configurar o NetBeans para usar a fonte Monaco
- Ferramentas Opções » Fontes & Cores Sintaxe » Categoria » Padrão
Técnica Pomodoro: foco e produtividade sem procrastinação
Se eu falar que a partir de hoje você vai produzir o dobro que produz, trabalhando com períodos de 25 minutos e descansando 5 minutos entre eles, você acredita? Espere, e se eu acrescentar que a cada 4 períodos completados você pode descansar um período também de 25 minutos?
Estranho não?
Mas basicamente é isso que a Pomodoro Technique ensina.

Facilidade
Por tempos todos procuramos soluções eficazes para melhorar nossa produtividade, todas elas muito complexas, difíceis de colocar em prática e que no fim acabavam só virando siglas para a nossa sopa de letrinhas.
Há aproximadamente 45 dias venho usando a técnica Pomodoro diariamente quando estou desenvolvendo, e acabei me surpreendendo com a quantidade de pomodoros que são concluídas x interrupções.
Como Funciona?
- No início do dia, reserve 1 pomodoro (25 minutos, lembra?) para organizar seu dia. Parece bobeira eu pensei isso mas depois você vê que faz muito sentido.
- Trabalhe focado por 25 minutos em uma mesma tarefa sem interrupções. Eu falei sem interrupções?
- Finalizando seu pomodoro, vá curtir um intervalo de cinco minutos (Twitter? Yeah!)
- Ao final de 4 pomodoros, faça um intervalo mais longo porque ninguém é de ferro. Eu levo isso a sério e uso 1 pomodoro pra descansar (sem interrupções, yeah!)
Você precisa de:
- papel
- caneta
- algo que marque o tempo
A cada pomodoro, marque um X ao lado da tarefa. Muita gente fala em timer de cozinha pra controlar o tempo. Eu gosto de usar o FocusBooster
Interrupções
A cada interrupção, anote a tarefa/urgência em questão, e coloque-a numa lista chamada URGENTES NÃO PLANEJADOS.
Faça um pomodoro com TODAS estas tarefas, assim que possível, e resolva suas pendências, uma a uma.
Vantagens
Sensação de dever cumprido e um domínio sobre uma coisa difícil de manusear: O SEU TEMPO. Sua percepção sobre o tempo gasto e tempo disponível vai mudar completamente do que você tenha hoje em mente.
Desvantagens
Nem todos são adeptos desta técnica, e muitos dias você verá que teve o tripo de interrupções dos pomodoros completados. Invariavelmente você vai trocar o termo “horas” por “pomodoros” para qualquer atividade que irá calcular tempo necessário.
Conclusão
Enfim … é uma técnica maravilhosa que é fácil de colocar em prática e que no mesmo dia vai te mostrar que é possível ser produtivo em ciclos de 25 minutos, com a sensação de dever cumprido.
No site oficial tem materiais disponíveis, como o livro oficial, folha de TODO e o meu preferido Cheat Sheet.
Ps: Esse post foi escrito num Pomodoro de descanso, agora me dê licença que eu quero completar mais pomodoros :)

