SlideShare una empresa de Scribd logo
1 de 26
Descargar para leer sin conexión
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 - 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>
Simples não? É Kohana!
  E é por isso que eu gosto :)



       http://kohanaframework.org

http://groups.google.com/group/kohana-php
Perguntas?
Marcelo Rodrigo

mrodrigow@gmail.com
 marcelorodrigo.com
  @marcelorodrigo
Desenvolvimento ágil com Kohana framework

Más contenido relacionado

La actualidad más candente

Aula 5 PHP - Criação de sites II
Aula 5 PHP - Criação de sites IIAula 5 PHP - Criação de sites II
Aula 5 PHP - Criação de sites IIinfo_cimol
 
Introdução ao PHP - Criação de sites II
Introdução ao PHP - Criação de sites IIIntrodução ao PHP - Criação de sites II
Introdução ao PHP - Criação de sites IIinfo_cimol
 
Zend Framework - PHPSP - 2009
Zend Framework - PHPSP - 2009Zend Framework - PHPSP - 2009
Zend Framework - PHPSP - 2009silva.edgar
 
PHP robusto com Zend Framework
PHP robusto com Zend FrameworkPHP robusto com Zend Framework
PHP robusto com Zend FrameworkJaime Neto
 
Workshop - Desenvolvimento web com Drupal 7
Workshop - Desenvolvimento web com Drupal 7Workshop - Desenvolvimento web com Drupal 7
Workshop - Desenvolvimento web com Drupal 7Sérgio Lima
 
PHP Conference Brasil 2013 - Aplicações PHP 5.4 com componentes Aura
PHP Conference Brasil 2013 - Aplicações PHP 5.4 com componentes AuraPHP Conference Brasil 2013 - Aplicações PHP 5.4 com componentes Aura
PHP Conference Brasil 2013 - Aplicações PHP 5.4 com componentes AuraFlávio Lisboa
 
PHP like a super hero
PHP like a super heroPHP like a super hero
PHP like a super heroElton Minetto
 
Proxy, Man-In-The-Middle e testes
Proxy, Man-In-The-Middle e testesProxy, Man-In-The-Middle e testes
Proxy, Man-In-The-Middle e testesStanislaw Pusep
 
ReactPHP && programacao assincrona em PHP
ReactPHP && programacao assincrona em PHPReactPHP && programacao assincrona em PHP
ReactPHP && programacao assincrona em PHPLuis Gustavo Almeida
 
DevTalk Zoox 04/2016
DevTalk Zoox 04/2016DevTalk Zoox 04/2016
DevTalk Zoox 04/2016Leandro Silva
 
PHPSP TestFest 2009
PHPSP TestFest 2009PHPSP TestFest 2009
PHPSP TestFest 2009Rafael Dohms
 
PHP e AJAX: do Request ao Framework
PHP e AJAX: do Request ao FrameworkPHP e AJAX: do Request ao Framework
PHP e AJAX: do Request ao FrameworkRafael Dohms
 
Injeção de Dependências com PHP
Injeção de Dependências com PHPInjeção de Dependências com PHP
Injeção de Dependências com PHPDanilo Godoy
 

La actualidad más candente (20)

Aula 5 PHP - Criação de sites II
Aula 5 PHP - Criação de sites IIAula 5 PHP - Criação de sites II
Aula 5 PHP - Criação de sites II
 
Palestra
PalestraPalestra
Palestra
 
Introdução ao PHP - Criação de sites II
Introdução ao PHP - Criação de sites IIIntrodução ao PHP - Criação de sites II
Introdução ao PHP - Criação de sites II
 
Zend Framework - PHPSP - 2009
Zend Framework - PHPSP - 2009Zend Framework - PHPSP - 2009
Zend Framework - PHPSP - 2009
 
PHP robusto com Zend Framework
PHP robusto com Zend FrameworkPHP robusto com Zend Framework
PHP robusto com Zend Framework
 
Migrando para o PHP 5
Migrando para o PHP 5Migrando para o PHP 5
Migrando para o PHP 5
 
Workshop - Desenvolvimento web com Drupal 7
Workshop - Desenvolvimento web com Drupal 7Workshop - Desenvolvimento web com Drupal 7
Workshop - Desenvolvimento web com Drupal 7
 
PHP Conference Brasil 2013 - Aplicações PHP 5.4 com componentes Aura
PHP Conference Brasil 2013 - Aplicações PHP 5.4 com componentes AuraPHP Conference Brasil 2013 - Aplicações PHP 5.4 com componentes Aura
PHP Conference Brasil 2013 - Aplicações PHP 5.4 com componentes Aura
 
PHP like a super hero
PHP like a super heroPHP like a super hero
PHP like a super hero
 
Proxy, Man-In-The-Middle e testes
Proxy, Man-In-The-Middle e testesProxy, Man-In-The-Middle e testes
Proxy, Man-In-The-Middle e testes
 
Php 07 Cakephp
Php 07 CakephpPhp 07 Cakephp
Php 07 Cakephp
 
PHP e Redis
PHP e RedisPHP e Redis
PHP e Redis
 
Python 08
Python 08Python 08
Python 08
 
ReactPHP && programacao assincrona em PHP
ReactPHP && programacao assincrona em PHPReactPHP && programacao assincrona em PHP
ReactPHP && programacao assincrona em PHP
 
DevTalk Zoox 04/2016
DevTalk Zoox 04/2016DevTalk Zoox 04/2016
DevTalk Zoox 04/2016
 
PHPSP TestFest 2009
PHPSP TestFest 2009PHPSP TestFest 2009
PHPSP TestFest 2009
 
Doctrine for Dummies
Doctrine for DummiesDoctrine for Dummies
Doctrine for Dummies
 
PHP e AJAX: do Request ao Framework
PHP e AJAX: do Request ao FrameworkPHP e AJAX: do Request ao Framework
PHP e AJAX: do Request ao Framework
 
Injeção de Dependências com PHP
Injeção de Dependências com PHPInjeção de Dependências com PHP
Injeção de Dependências com PHP
 
Rest Beer v2
Rest Beer v2Rest Beer v2
Rest Beer v2
 

Similar a Desenvolvimento ágil com Kohana framework

Lampada Php Conference Brasil 2007 Palestra
Lampada Php Conference Brasil 2007 PalestraLampada Php Conference Brasil 2007 Palestra
Lampada Php Conference Brasil 2007 PalestraDavid O'Keefe
 
Programando para programadores: Desafios na evolução de um Framework
Programando para programadores: Desafios na evolução de um FrameworkProgramando para programadores: Desafios na evolução de um Framework
Programando para programadores: Desafios na evolução de um FrameworkPablo Dall'Oglio
 
Introdução ao Zend Framework 2
Introdução ao Zend Framework 2Introdução ao Zend Framework 2
Introdução ao Zend Framework 2Elton Minetto
 
Desenvolvimento Web com Simfony Framework.
Desenvolvimento Web com Simfony Framework.Desenvolvimento Web com Simfony Framework.
Desenvolvimento Web com Simfony Framework.Vinícius de Paula
 
Zend Framework 1.11
Zend Framework 1.11Zend Framework 1.11
Zend Framework 1.11Cezar Souza
 
Domain Driven Design PHP TDC2014
Domain Driven Design PHP TDC2014Domain Driven Design PHP TDC2014
Domain Driven Design PHP TDC2014Paulo Victor Gomes
 
Palestra - Symfony Framework MVC PHP 5
Palestra - Symfony Framework MVC PHP 5Palestra - Symfony Framework MVC PHP 5
Palestra - Symfony Framework MVC PHP 5Lucas Augusto Carvalho
 
Analise frameworks php
Analise frameworks phpAnalise frameworks php
Analise frameworks phpIgor Moura
 
Desenvolvimento Agil Com Doctrine Orm
Desenvolvimento Agil Com Doctrine OrmDesenvolvimento Agil Com Doctrine Orm
Desenvolvimento Agil Com Doctrine OrmGuilherme Blanco
 
Cakephp - framework de desenvolvimento de aplicações Web em PHP
Cakephp - framework de desenvolvimento de aplicações Web em PHPCakephp - framework de desenvolvimento de aplicações Web em PHP
Cakephp - framework de desenvolvimento de aplicações Web em PHPArlindo Santos
 
Iniciando com Yii Framework - Volmar Machado da Silva Neto (Rede Pampa de Com...
Iniciando com Yii Framework - Volmar Machado da Silva Neto (Rede Pampa de Com...Iniciando com Yii Framework - Volmar Machado da Silva Neto (Rede Pampa de Com...
Iniciando com Yii Framework - Volmar Machado da Silva Neto (Rede Pampa de Com...Tchelinux
 
Pense no futuro: PHP com Zend Framework
Pense no futuro: PHP com Zend FrameworkPense no futuro: PHP com Zend Framework
Pense no futuro: PHP com Zend FrameworkFlávio Lisboa
 
Django: Desenvolvendo uma aplicação web em minutos
Django: Desenvolvendo uma aplicação web em minutosDjango: Desenvolvendo uma aplicação web em minutos
Django: Desenvolvendo uma aplicação web em minutosRodrigo Nossal
 
Desenvolvimento para a Web com CakePHP
Desenvolvimento para a Web com CakePHPDesenvolvimento para a Web com CakePHP
Desenvolvimento para a Web com CakePHPMarcelo Andrade
 
Adianti Framework PHPConf 2013
Adianti Framework PHPConf 2013Adianti Framework PHPConf 2013
Adianti Framework PHPConf 2013Pablo Dall'Oglio
 
Pattners Everywhere, Even in Javascript
Pattners Everywhere, Even in JavascriptPattners Everywhere, Even in Javascript
Pattners Everywhere, Even in JavascriptGustavo Corrêa Alves
 
Slide 01 introdução ao php e ao code igniter
Slide 01   introdução ao php e ao code igniterSlide 01   introdução ao php e ao code igniter
Slide 01 introdução ao php e ao code igniterRaniere de Lima
 

Similar a Desenvolvimento ágil com Kohana framework (20)

Lampada Php Conference Brasil 2007 Palestra
Lampada Php Conference Brasil 2007 PalestraLampada Php Conference Brasil 2007 Palestra
Lampada Php Conference Brasil 2007 Palestra
 
Programando para programadores: Desafios na evolução de um Framework
Programando para programadores: Desafios na evolução de um FrameworkProgramando para programadores: Desafios na evolução de um Framework
Programando para programadores: Desafios na evolução de um Framework
 
Introdução ao Zend Framework 2
Introdução ao Zend Framework 2Introdução ao Zend Framework 2
Introdução ao Zend Framework 2
 
Desenvolvimento Web com Simfony Framework.
Desenvolvimento Web com Simfony Framework.Desenvolvimento Web com Simfony Framework.
Desenvolvimento Web com Simfony Framework.
 
Zend Framework 1.11
Zend Framework 1.11Zend Framework 1.11
Zend Framework 1.11
 
Domain Driven Design PHP TDC2014
Domain Driven Design PHP TDC2014Domain Driven Design PHP TDC2014
Domain Driven Design PHP TDC2014
 
Palestra - Symfony Framework MVC PHP 5
Palestra - Symfony Framework MVC PHP 5Palestra - Symfony Framework MVC PHP 5
Palestra - Symfony Framework MVC PHP 5
 
Analise frameworks php
Analise frameworks phpAnalise frameworks php
Analise frameworks php
 
Desenvolvimento Agil Com Doctrine Orm
Desenvolvimento Agil Com Doctrine OrmDesenvolvimento Agil Com Doctrine Orm
Desenvolvimento Agil Com Doctrine Orm
 
Cakephp - framework de desenvolvimento de aplicações Web em PHP
Cakephp - framework de desenvolvimento de aplicações Web em PHPCakephp - framework de desenvolvimento de aplicações Web em PHP
Cakephp - framework de desenvolvimento de aplicações Web em PHP
 
Iniciando com Yii Framework - Volmar Machado da Silva Neto (Rede Pampa de Com...
Iniciando com Yii Framework - Volmar Machado da Silva Neto (Rede Pampa de Com...Iniciando com Yii Framework - Volmar Machado da Silva Neto (Rede Pampa de Com...
Iniciando com Yii Framework - Volmar Machado da Silva Neto (Rede Pampa de Com...
 
Pense no futuro: PHP com Zend Framework
Pense no futuro: PHP com Zend FrameworkPense no futuro: PHP com Zend Framework
Pense no futuro: PHP com Zend Framework
 
Aplicacoes Rapidas Para Web Com Django
Aplicacoes Rapidas Para Web Com DjangoAplicacoes Rapidas Para Web Com Django
Aplicacoes Rapidas Para Web Com Django
 
Django: Desenvolvendo uma aplicação web em minutos
Django: Desenvolvendo uma aplicação web em minutosDjango: Desenvolvendo uma aplicação web em minutos
Django: Desenvolvendo uma aplicação web em minutos
 
Desenvolvimento para a Web com CakePHP
Desenvolvimento para a Web com CakePHPDesenvolvimento para a Web com CakePHP
Desenvolvimento para a Web com CakePHP
 
Zend Framework
Zend FrameworkZend Framework
Zend Framework
 
Adianti Framework PHPConf 2013
Adianti Framework PHPConf 2013Adianti Framework PHPConf 2013
Adianti Framework PHPConf 2013
 
Pattners Everywhere, Even in Javascript
Pattners Everywhere, Even in JavascriptPattners Everywhere, Even in Javascript
Pattners Everywhere, Even in Javascript
 
Slide 01 introdução ao php e ao code igniter
Slide 01   introdução ao php e ao code igniterSlide 01   introdução ao php e ao code igniter
Slide 01 introdução ao php e ao code igniter
 
Pdo do PHP Palestra
Pdo do PHP PalestraPdo do PHP Palestra
Pdo do PHP Palestra
 

Desenvolvimento ágil com Kohana framework

  • 1. Desenvolvimento Ágil com Kohana Framework Marcelo Rodrigo Wiebbelling marcelorodrigo.com @marcelorodrigo
  • 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
  • 4.
  • 5. MVC view controller model
  • 6. 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
  • 7. 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)
  • 8. Porque não Zend Framework, Symfony, CakePHP, YII, Spaghetti , * CodeIgniter? * Pare de pensar em comida!
  • 10. Todos tem seu valor, mas ...
  • 11. 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ê.
  • 12. 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
  • 14. 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/
  • 15.
  • 16. 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(); } }
  • 17. 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
  • 18. 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();
  • 19. 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 ...’);
  • 20. 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(); } }
  • 21. 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>
  • 22. 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>
  • 23. Simples não? É Kohana! E é por isso que eu gosto :) http://kohanaframework.org http://groups.google.com/group/kohana-php