Desenvolvimento ágil com Kohana framework

6,606 views
6,518 views

Published on

Palestra exibida na phpSCConf 2010 em Joinville, SC. Apresentados pontos fortes onde o Kohana pode agilizar o desenvolvimento web.

Published in: Technology
3 Comments
7 Likes
Statistics
Notes
No Downloads
Views
Total views
6,606
On SlideShare
0
From Embeds
0
Number of Embeds
7
Actions
Shares
0
Downloads
116
Comments
3
Likes
7
Embeds 0
No embeds

No notes for slide

Desenvolvimento ágil com Kohana framework

  1. 1. Desenvolvimento Ágil com Kohana Framework Marcelo Rodrigo Wiebbelling marcelorodrigo.com @marcelorodrigo
  2. 2. 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
  3. 3. Você ainda programa assim?
  4. 4. MVC view controller model
  5. 5. 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
  6. 6. 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)
  7. 7. Porque não Zend Framework, Symfony, CakePHP, YII, Spaghetti , * CodeIgniter? * Pare de pensar em comida!
  8. 8. Porque você precisa escolher um! Oras!
  9. 9. Todos tem seu valor, mas ...
  10. 10. 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ê.
  11. 11. 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
  12. 12. Cool! Show me the code
  13. 13. 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/
  14. 14. 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(); } }
  15. 15. 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
  16. 16. 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();
  17. 17. 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 ...’);
  18. 18. 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(); } }
  19. 19. 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>
  20. 20. model - application/classes/model/apresentacao.php class Model_Apresentacao extends ORM{ MODEL 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(); CONTROLLER $dados = $apresentacao->seleciona($assunto_id); $this->request->response = View::Factory(‘apresentacao/index’) ->bind(‘dados’,$dados) ->render(); } } view – application/views/apresentacao/index <html> VIEW <?php foreach($dados as $d){ ?> <p>Palestra <?php $d->nome ?> foi um sucesso, PHPPinga liberado!</p> <?php } ?> </html>
  21. 21. Simples não? É Kohana! E é por isso que eu gosto :) http://kohanaframework.org http://groups.google.com/group/kohana-php
  22. 22. Perguntas?
  23. 23. Marcelo Rodrigo mrodrigow@gmail.com marcelorodrigo.com @marcelorodrigo

×