Desenvolvimento ágil com Kohana framework
-
Upload
marcelo-rodrigo -
Category
Technology
-
view
6.401 -
download
2
description
Transcript of Desenvolvimento ágil com Kohana framework
Desenvolvimento Ágil com
Kohana Framework
Marcelo Rodrigo Wiebbelling
marcelorodrigo.com
@marcelorodrigo
Quem?
Tecnólogo em Gestão de TI pela UNISUL
Desenvolvedor PHP desde 1999
Usa Kohana desde 2008
Atua na área de desenvolvimento de aplicações
web e integração entre vários sistemas usando
tecnologias web
Você ainda programa assim?
MVC
view
controller model
Porque usar frameworks?
Implementam MVC (Model, View, Controller)
para separar lógica, conteúdo e roteamento
Implementam padrões e infraestrutura básica
DRY - Reuso de código
Soluções simples para problemas rotineiros
Bibliotecas e Helpers para facilitar sua vida
Kohana?
Configuração próxima a Zero, usando convenções
UTF-8 e i18n
PDO (mySQL, PGSQL, Oracle, Informix, SQLite, MSSQL, Firebird, ODBC)
Licença BSD (copiar, distribuir, adaptar)
Strict PHP 5 (5.2.3 e mais recentes)
ORM
Cache (memcache, sqlite, eaccelerator, filesystem)
Segurança (cross-site scripting (XSS), validation/filter)
Bibliotecas (Validation, Session, Cookies, Crypt, Cache, Benchmarking, Pagination, etc)
Helpers (form, upload, image, html, url, text, date, etc)
Porque não Zend
Framework, Symfony,
CakePHP, YII, Spaghetti*,
CodeIgniter?
* Pare de pensar em comida!
Porque você precisa
escolher um! Oras!
Todos tem seu valor,
mas ...
Porque usar o Kohana?
Você precisa desenvolver aplicações rapidamente.
Você precisa de um framework rápido e leve.
Você precisa de um framework que não precise de
muita configuração e que seja compatível com sua
hospedagem.
Você quer ter controle sobre o que o framework
está fazendo pra você.
Você prefere escrever seu próprio código, em vez
de usar um que foi gerado automaticamente pra você.
Mas, porque Kohana?
Baixe descompacte e use.
Sem paranóias com bootstrap, arquivos config, XML, etc
Curva de Aprendizado rápida
ORM poderoso com Active Record
É muito rápido, e muito leve
Kohana é um fork do CodeIgniter, 100% em PHP 5
Permite usar bibliotecas do Zend Framework
Kohana + Zend Framework = Killer Combo
Cool!
Show me the code
Instalando
Download em
http://kohanaframework.org/download/kohana-latest
Descompactar kohana-3.0.7.zip (versão atual stable)
http://127.0.0.1/kohana/
Model
application/classes/model/apresentacao.php
class Model_Apresentacao extends ORM{
public function seleciona($assunto_id){
return $this->where(‘assunto_id’,’=‘,$assunto_id)->find_all();
}
}
Nunca foi tão fácil obter dados
where($campo, $operador, $valor)
andwhere ($campo, $operador, $valor)
orwhere($campo, $operador, $valor)
order_by($campo, $direcao)
having(...)
join(...)
groupby(...)
Em resumo: cobertura da maioria dos operadores SQL necessários
no dia-a-dia do desenvolvedor
Nunca foi tão fácil manipular dados
$apresentacao = new Model_Apresentacao();
$dados = $apresentacao->find(84);
$dados->nome = ‘Desenvolvimento ágil com Kohana Framework’;
$dados->evento = ‘PHPSCConf 2010’;
$dados->save();
Mamãe, gosto de escrever SQL!
DB::Query(‘SELECT * FROM tabela ORDER BY nome’);
DB::Query(‘UPDATE tabela SET ...’);
DB::Query(‘INSERT INTO tabela ..’);
DB::Query(‘DELETE FROM tabela WHERE ...’);
Controller
application/classes/controller/apresentacao.php
class Controller_Apresentacao extends Controller{
public function action_index($assunto_id){
$apresentacao = new Model_Apresentacao();
$dados = $apresentacao->seleciona($assunto_id);
$this->request->response = View::Factory(‘apresentacao/index’)
->bind(‘dados’,$dados)
->render();
}
}
View
application/views/apresentacao/index.php
<html>
<body>
<?php foreach($dados as $d){ ?>
<p>Palestra <?php $d->nome ?> foi um sucesso, PHPPinga liberado!</p>
<?php } ?>
</body>
</html>
MODEL
model - application/classes/model/apresentacao.php class Model_Apresentacao extends ORM{
public function seleciona($assunto_id){
return $this->where(‘assunto_id’,’=‘’,$assunto_id)->find_all();
}
}
controller – application/classes/controller/apresentacao class Controller_Apresentacao extends Controller{
public function action_index($assunto_id){
$apresentacao = new Model_Apresentacao();
$dados = $apresentacao->seleciona($assunto_id);
$this->request->response = View::Factory(‘apresentacao/index’)
->bind(‘dados’,$dados)
->render();
}
}
view – application/views/apresentacao/index <html>
<?php foreach($dados as $d){ ?>
<p>Palestra <?php $d->nome ?> foi um sucesso, PHPPinga liberado!</p>
<?php } ?>
</html>
CONTROLLER
VIEW
Simples não? É Kohana!
E é por isso que eu gosto :)
http://kohanaframework.org
http://groups.google.com/group/kohana-php
Perguntas?