Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Desenvolvimento ágil com Kohana framework

6,772 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

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

×