Download - Desenvolvimento ágil com Kohana framework
![Page 1: Desenvolvimento ágil com Kohana framework](https://reader033.vdocuments.net/reader033/viewer/2022052619/5566699fd8b42a3d3f8b4e26/html5/thumbnails/1.jpg)
Desenvolvimento Ágil com
Kohana Framework
Marcelo Rodrigo Wiebbelling
marcelorodrigo.com
@marcelorodrigo
![Page 2: Desenvolvimento ágil com Kohana framework](https://reader033.vdocuments.net/reader033/viewer/2022052619/5566699fd8b42a3d3f8b4e26/html5/thumbnails/2.jpg)
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
![Page 3: Desenvolvimento ágil com Kohana framework](https://reader033.vdocuments.net/reader033/viewer/2022052619/5566699fd8b42a3d3f8b4e26/html5/thumbnails/3.jpg)
Você ainda programa assim?
![Page 4: Desenvolvimento ágil com Kohana framework](https://reader033.vdocuments.net/reader033/viewer/2022052619/5566699fd8b42a3d3f8b4e26/html5/thumbnails/4.jpg)
![Page 5: Desenvolvimento ágil com Kohana framework](https://reader033.vdocuments.net/reader033/viewer/2022052619/5566699fd8b42a3d3f8b4e26/html5/thumbnails/5.jpg)
MVC
view
controller model
![Page 6: Desenvolvimento ágil com Kohana framework](https://reader033.vdocuments.net/reader033/viewer/2022052619/5566699fd8b42a3d3f8b4e26/html5/thumbnails/6.jpg)
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
![Page 7: Desenvolvimento ágil com Kohana framework](https://reader033.vdocuments.net/reader033/viewer/2022052619/5566699fd8b42a3d3f8b4e26/html5/thumbnails/7.jpg)
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)
![Page 8: Desenvolvimento ágil com Kohana framework](https://reader033.vdocuments.net/reader033/viewer/2022052619/5566699fd8b42a3d3f8b4e26/html5/thumbnails/8.jpg)
Porque não Zend
Framework, Symfony,
CakePHP, YII, Spaghetti*,
CodeIgniter?
* Pare de pensar em comida!
![Page 9: Desenvolvimento ágil com Kohana framework](https://reader033.vdocuments.net/reader033/viewer/2022052619/5566699fd8b42a3d3f8b4e26/html5/thumbnails/9.jpg)
Porque você precisa
escolher um! Oras!
![Page 10: Desenvolvimento ágil com Kohana framework](https://reader033.vdocuments.net/reader033/viewer/2022052619/5566699fd8b42a3d3f8b4e26/html5/thumbnails/10.jpg)
Todos tem seu valor,
mas ...
![Page 11: Desenvolvimento ágil com Kohana framework](https://reader033.vdocuments.net/reader033/viewer/2022052619/5566699fd8b42a3d3f8b4e26/html5/thumbnails/11.jpg)
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ê.
![Page 12: Desenvolvimento ágil com Kohana framework](https://reader033.vdocuments.net/reader033/viewer/2022052619/5566699fd8b42a3d3f8b4e26/html5/thumbnails/12.jpg)
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
![Page 13: Desenvolvimento ágil com Kohana framework](https://reader033.vdocuments.net/reader033/viewer/2022052619/5566699fd8b42a3d3f8b4e26/html5/thumbnails/13.jpg)
Cool!
Show me the code
![Page 14: Desenvolvimento ágil com Kohana framework](https://reader033.vdocuments.net/reader033/viewer/2022052619/5566699fd8b42a3d3f8b4e26/html5/thumbnails/14.jpg)
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/
![Page 15: Desenvolvimento ágil com Kohana framework](https://reader033.vdocuments.net/reader033/viewer/2022052619/5566699fd8b42a3d3f8b4e26/html5/thumbnails/15.jpg)
![Page 16: Desenvolvimento ágil com Kohana framework](https://reader033.vdocuments.net/reader033/viewer/2022052619/5566699fd8b42a3d3f8b4e26/html5/thumbnails/16.jpg)
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();
}
}
![Page 17: Desenvolvimento ágil com Kohana framework](https://reader033.vdocuments.net/reader033/viewer/2022052619/5566699fd8b42a3d3f8b4e26/html5/thumbnails/17.jpg)
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
![Page 18: Desenvolvimento ágil com Kohana framework](https://reader033.vdocuments.net/reader033/viewer/2022052619/5566699fd8b42a3d3f8b4e26/html5/thumbnails/18.jpg)
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();
![Page 19: Desenvolvimento ágil com Kohana framework](https://reader033.vdocuments.net/reader033/viewer/2022052619/5566699fd8b42a3d3f8b4e26/html5/thumbnails/19.jpg)
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 ...’);
![Page 20: Desenvolvimento ágil com Kohana framework](https://reader033.vdocuments.net/reader033/viewer/2022052619/5566699fd8b42a3d3f8b4e26/html5/thumbnails/20.jpg)
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();
}
}
![Page 21: Desenvolvimento ágil com Kohana framework](https://reader033.vdocuments.net/reader033/viewer/2022052619/5566699fd8b42a3d3f8b4e26/html5/thumbnails/21.jpg)
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>
![Page 22: Desenvolvimento ágil com Kohana framework](https://reader033.vdocuments.net/reader033/viewer/2022052619/5566699fd8b42a3d3f8b4e26/html5/thumbnails/22.jpg)
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
![Page 23: Desenvolvimento ágil com Kohana framework](https://reader033.vdocuments.net/reader033/viewer/2022052619/5566699fd8b42a3d3f8b4e26/html5/thumbnails/23.jpg)
Simples não? É Kohana!
E é por isso que eu gosto :)
http://kohanaframework.org
http://groups.google.com/group/kohana-php
![Page 24: Desenvolvimento ágil com Kohana framework](https://reader033.vdocuments.net/reader033/viewer/2022052619/5566699fd8b42a3d3f8b4e26/html5/thumbnails/24.jpg)
Perguntas?
![Page 26: Desenvolvimento ágil com Kohana framework](https://reader033.vdocuments.net/reader033/viewer/2022052619/5566699fd8b42a3d3f8b4e26/html5/thumbnails/26.jpg)