SlideShare une entreprise Scribd logo
1  sur  50
Télécharger pour lire hors ligne
#WTISC2012
Introdução ao
framework CakePHP
      com Igor Pimentel

    www.igorpimentel.com
Quem?
Igor Pimentel
   Sistemas de Informação - UFC
   Notorion - Sites e Sistemas Web
   @igorpimentel
   www.igorpimentel.com
Sites   Sistemas Web
Agenda
    10/MAIO

         Um pouco de blá.. blá.. blá...

         Preparando o ambiente

         Mão na Massa

    11/MAIO

         Mão na Massa

         Bônus*

         Considerações Finais
CakePHP - é de comer?




                              *Foto: http://www.flickr.com/photos/koyhoge


O que é?
CakePHP é um framework PHP, gratuito, de código aberto, para desenvolvimento ágil.
CakePHP - Por que usar?
 Comunidade ativa e amigável            Template flexível e rápido

 Licensa flexível (MIT)                 Helpers para HTML e Formulários,
                                        JavaScript e até AJAX
 CRUD integrado para interação com
 o banco de dados                       Componentes de Email, Cookies,
                                        Segurança, Sessão e manipulação de
 Scaffold de aplicação                  requisições

 Código gerado automáticamente (bake)   Controle de Acesso (ACL)

 Arquitetura MVC                        Multiplas configurações de cache

 URLs amigáveis                         Localização e internacionalização

 Validação de dados                     Roda em qualquer servidor web,
                                        práticamente sem configuração
<,= % %>"4)%"-$?%
        CakePHP - Quem usa?                @$A4BCB!




              "##$%&&'(()'*&+',-$!
               Mais? http://goo.gl/Fg0wp
<,= % %>%?"4%4"%@A%B2C%:0)%4#4D%
      CakePHP - O que fazer?                                      E$F4GHG!


                                   !"#$%&'()*!"#$%$&!
                                   '(()*++,-./0'1234/12+!
                                   !


                                   !"#$%&'(%#%'%&)*)+&'+'$#",%'-+'
                                   ./01+.2'+/'$"-"'"'/)3-"'
                                   !
                                      56.738!93!-:-;<.1!3!692.7!
                                      =1(1:>!?@931:>!26)6!3!!
                                      /68379;<.1!93!9.:)17.A.8.9693!
                                      B)8169!2C8(.)81!/12!A6<<6!93!
                                      )<1D<3::1!3!)<3?.3E!96!F1(1!
                                      G.(3!2-8(.H.9.126!".%I7&!
                                      J11D83!K9L676D3<!3!J11D83!
                                      L6):!
                                            *Portfólio de Thiago Belém (http://thiagobelem.net)
CakePHP - O que fazer?
<,= % %>%?"4%4"%@A%B2C%:0)%4#4D%                                   E$F4GHG!


                                   !"#$%&'(')*+%),-!
                                   "##$%&&#'($)*+,+*-).(/.)(&!
                                   !


                                   !"#$%&$%'()*)$(%$%+$,&'%&$%
                                   '-'.#'/$,#01%,0%2"0%&$%3',$".0%
                                   !
                                       01234!5)&!
                                       6+-7'8!,'!.)7#*)8'!
                                                                                        !
                                       9)#):;!(+$+!'!.+8'7,<*-)!,'!
                                       ,-:$)7-=-8-,+,'!
                                       1*+,>?@)!A-+!B))C8'!1*+7:8+#'!
                                       B))C8'!2+$:!

                                             *Portfólio de Thiago Belém (http://thiagobelem.net)
O que é um Framework?


 Um framework, em desenvolvimento de
 soft ware, é uma abstração que une códigos
 comuns entre vários projetos de soft ware
 provendo uma funcionalidade genérica.
 (Wikipedia)
Framework
          Framework != CMS

          Framework != Padrões de Projeto

          Framework != IDE

          Framework != Biblioteca



Frameworks facilitam o desenvolvimento,
pois ao invés de se fazer tudo na "unha" ou
"reinventar a roda" ele provê um conjunto
funcionalidade prontas.
MVC
                MVC == Model-view-controller


É um padrão de arquitetura de aplicações que
visa separar a lógica da aplicação (Model),
da interface do usuário (View) e do fluxo da
aplicação (Controller). Permite que a mesma
lógica de negócios possa ser acessada e
visualizada por várias interfaces.
*Fonte: http://www.htmlstaff.org/ver.php?id=4500
Isso é MVC:

                  Model

Controller

                  View
MVC em Imagem
MVC em Texto
Controllers
Os controllers (controladores) manipulam as requisições e ajudam coordenando
e preparando as respostas que serão enviadas para o cliente.


Views
As views (visões) formam a camada de apresentação no CakePHP. Elas geram as
saídas para as requisições dos clientes transformando os dados que foram
obtidos a partir dos models.


Models
Os models (modelos) formam o coração de sua aplicação. Tratam das validações,
armazenamento e recuperação dos seus dados.
Uma Requisição Típica do
      CakePHP
Preparando o Ambiente
Preparando o Ambiente




WAMP     LAMP     MAMP
Preparando o Ambiente
Mão na
massa...
Instalando o XAMPP...


Download:
http://www.apachefriends.org/pt_br/xampp.html
Testando...
Mão na
massa...
Instalando o CakePHP...


Download:
http://cakephp.org
Testando...
Diretórios do /APP
Configurações

Alterar o valor de Security.salt em APP/Config/core.php

Alterar o valor de Security.cipherSeed em APP/Config/core.php

Permissão de escrita no diretório APP/tmp (chmod 777)

Configurar banco de dados em APP/Config/database.php
Testando...
Páginas no CakePHP
Páginas no CakePHP


     APP/View/Pages
Páginas no CakePHP


    Vamos criar Páginas....
Layouts no CakePHP
Layouts no CakePHP
               Layout



        View
Layouts no CakePHP


  APP/View/Layouts/default.ctp
Layouts no CakePHP


<?php echo $title_for_layout ?>
Layouts no CakePHP


<?php echo $this->Html->css('style') ?>
Layouts no CakePHP


<?php echo $content_for_layout ?>
Helpers
<?php
echo $this->Html->link(
   'programação',
   array(
     'controller' => 'pages',
     'action' => 'display',
     'programacao'
     )
)
?>
Rotas no CakePHP

           APP/Config/routes.php


Router::connect('<formato da url>', array(
    'controller' => '<controller>',
    'action' => '<action>')
);
Bônus*
Querem?
Cadastro de Notícias
            Model Noticia



Arquivo: /APP/Model/Noticia.php
Nome da Classe: Noticia
Tabela no Banco: noticias
Cadastro de Notícias
          Model Noticia


<?php
class Noticia extends AppModel{

}
?>
Cadastro de Notícias
            Controller Noticia




Arquivo: /APP/Controller/NoticiasController.php
Nome da Classe: NoticiasController
Cadastro de Notícias
                Controller Noticia



<?php
class NoticiasController extends AppController {

}
?>
Cadastro de Notícias
                Controller Noticia



<?php
class NoticiasController extends AppController {
       var $scaffold;
}
?>
Considerações Finais

Próximos passos...
1 - Aprenda (de verdade) PHP
2 - http://book.cakephp.org/2.0/pt
3 - Faça Cursos
Agradecimento
  ESPECIAL!
Referências

Wikipedia

Cookbook

Material pessoal de Thiago Belém (www.thiagobelem.net)
(slides 9, 10 e 11)
Slides:
http://www.slideshare.net/igorpimentel



Código:
https:/ /github.com/igorpimentel/Minicurso-CakePHP



Mais?
@igorpiementel




   Obrigado!

Contenu connexe

Tendances

JS Experience 2017 - Javascript Funcional
JS Experience 2017 - Javascript FuncionalJS Experience 2017 - Javascript Funcional
JS Experience 2017 - Javascript FuncionaliMasters
 
Técnicas de Refactoring
Técnicas de RefactoringTécnicas de Refactoring
Técnicas de RefactoringRodrigo Branas
 
RubyConfBr 2015 - Rails & Javascript: faça isso direito
RubyConfBr 2015 - Rails & Javascript: faça isso direitoRubyConfBr 2015 - Rails & Javascript: faça isso direito
RubyConfBr 2015 - Rails & Javascript: faça isso direitoCezinha Anjos
 
Criando serviços com AngularJS
Criando serviços com AngularJSCriando serviços com AngularJS
Criando serviços com AngularJSRodrigo Branas
 
Criando uma arquitetura de front-end do zero
Criando uma arquitetura de front-end do zeroCriando uma arquitetura de front-end do zero
Criando uma arquitetura de front-end do zeroEduardo Shiota Yasuda
 
Autenticação com AngularJS e loadOnDemand
Autenticação com AngularJS e loadOnDemandAutenticação com AngularJS e loadOnDemand
Autenticação com AngularJS e loadOnDemandDouglas Lira
 
Prog web 02-php-primeiros-passos
Prog web 02-php-primeiros-passosProg web 02-php-primeiros-passos
Prog web 02-php-primeiros-passosRegis Magalhães
 
LambdaDay: Backbone.js
LambdaDay: Backbone.jsLambdaDay: Backbone.js
LambdaDay: Backbone.jsGiovanni Bassi
 
Aplicações rápidas para a Web com Django
Aplicações rápidas para a Web com DjangoAplicações rápidas para a Web com Django
Aplicações rápidas para a Web com DjangoFreedom DayMS
 

Tendances (17)

JS Experience 2017 - Javascript Funcional
JS Experience 2017 - Javascript FuncionalJS Experience 2017 - Javascript Funcional
JS Experience 2017 - Javascript Funcional
 
Técnicas de Refactoring
Técnicas de RefactoringTécnicas de Refactoring
Técnicas de Refactoring
 
RubyConfBr 2015 - Rails & Javascript: faça isso direito
RubyConfBr 2015 - Rails & Javascript: faça isso direitoRubyConfBr 2015 - Rails & Javascript: faça isso direito
RubyConfBr 2015 - Rails & Javascript: faça isso direito
 
Criando serviços com AngularJS
Criando serviços com AngularJSCriando serviços com AngularJS
Criando serviços com AngularJS
 
Tracking.js
Tracking.jsTracking.js
Tracking.js
 
Html, css, js, ajax
Html, css, js, ajaxHtml, css, js, ajax
Html, css, js, ajax
 
Curso de Introdução - PHP
Curso de Introdução - PHPCurso de Introdução - PHP
Curso de Introdução - PHP
 
Solr - PHP conference 2013
Solr - PHP conference 2013Solr - PHP conference 2013
Solr - PHP conference 2013
 
346
346346
346
 
Zend Framework
Zend FrameworkZend Framework
Zend Framework
 
Criando uma arquitetura de front-end do zero
Criando uma arquitetura de front-end do zeroCriando uma arquitetura de front-end do zero
Criando uma arquitetura de front-end do zero
 
Labs JavaScript - AIT
Labs JavaScript - AITLabs JavaScript - AIT
Labs JavaScript - AIT
 
Autenticação com AngularJS e loadOnDemand
Autenticação com AngularJS e loadOnDemandAutenticação com AngularJS e loadOnDemand
Autenticação com AngularJS e loadOnDemand
 
Prog web 02-php-primeiros-passos
Prog web 02-php-primeiros-passosProg web 02-php-primeiros-passos
Prog web 02-php-primeiros-passos
 
Php 02 Primeiros Passos
Php 02 Primeiros PassosPhp 02 Primeiros Passos
Php 02 Primeiros Passos
 
LambdaDay: Backbone.js
LambdaDay: Backbone.jsLambdaDay: Backbone.js
LambdaDay: Backbone.js
 
Aplicações rápidas para a Web com Django
Aplicações rápidas para a Web com DjangoAplicações rápidas para a Web com Django
Aplicações rápidas para a Web com Django
 

En vedette

Ferramentas Livres para Desenvolvimento Web
Ferramentas Livres para Desenvolvimento WebFerramentas Livres para Desenvolvimento Web
Ferramentas Livres para Desenvolvimento Webigorpimentel
 
TCC I - Igor Pimentel
TCC I - Igor PimentelTCC I - Igor Pimentel
TCC I - Igor Pimenteligorpimentel
 
Propriedades css e propriedades de fontes de texto
Propriedades css e propriedades de fontes de textoPropriedades css e propriedades de fontes de texto
Propriedades css e propriedades de fontes de textoFilipe Rezende
 
Css powerpoint
Css powerpointCss powerpoint
Css powerpointkongmata
 
Design Gráfico para Web: HTML 5 - Multimídia
Design Gráfico para Web: HTML 5 - MultimídiaDesign Gráfico para Web: HTML 5 - Multimídia
Design Gráfico para Web: HTML 5 - MultimídiaDra. Camila Hamdan
 
AULA 4 - PROPRIEDADES CSS
AULA 4 - PROPRIEDADES CSSAULA 4 - PROPRIEDADES CSS
AULA 4 - PROPRIEDADES CSSdiogolevel3
 
Montando sites com XHTML e CSS utilizando os padrões web
Montando sites com XHTML e CSS utilizando os padrões webMontando sites com XHTML e CSS utilizando os padrões web
Montando sites com XHTML e CSS utilizando os padrões webigorpimentel
 
CSS - Módulo Básico de WEB
CSS - Módulo Básico de WEBCSS - Módulo Básico de WEB
CSS - Módulo Básico de WEBDaniel Brandão
 
Minicurso CSS: Definição e aplicação
Minicurso CSS: Definição e aplicaçãoMinicurso CSS: Definição e aplicação
Minicurso CSS: Definição e aplicaçãoVanessa Me Tonini
 
Construindo layout de sites com CSS
Construindo layout de sites com CSSConstruindo layout de sites com CSS
Construindo layout de sites com CSSTalita Pagani
 
Design Gráfico Para Web: Website checklist
Design Gráfico Para Web: Website checklistDesign Gráfico Para Web: Website checklist
Design Gráfico Para Web: Website checklistDra. Camila Hamdan
 
Introdução ao CSS - Desenvolvimento web
Introdução ao CSS - Desenvolvimento webIntrodução ao CSS - Desenvolvimento web
Introdução ao CSS - Desenvolvimento webCarlos Eduardo Kadu
 
Apostila Tutorial CakePHP
Apostila Tutorial CakePHPApostila Tutorial CakePHP
Apostila Tutorial CakePHPFernando Palma
 
UX nas trincheiras: do insight ao protótipo
UX nas trincheiras: do insight ao protótipoUX nas trincheiras: do insight ao protótipo
UX nas trincheiras: do insight ao protótipoDaniel Risi
 

En vedette (18)

Ferramentas Livres para Desenvolvimento Web
Ferramentas Livres para Desenvolvimento WebFerramentas Livres para Desenvolvimento Web
Ferramentas Livres para Desenvolvimento Web
 
TCC I - Igor Pimentel
TCC I - Igor PimentelTCC I - Igor Pimentel
TCC I - Igor Pimentel
 
Propriedades css e propriedades de fontes de texto
Propriedades css e propriedades de fontes de textoPropriedades css e propriedades de fontes de texto
Propriedades css e propriedades de fontes de texto
 
Css powerpoint
Css powerpointCss powerpoint
Css powerpoint
 
Design Gráfico para Web: HTML 5 - Multimídia
Design Gráfico para Web: HTML 5 - MultimídiaDesign Gráfico para Web: HTML 5 - Multimídia
Design Gráfico para Web: HTML 5 - Multimídia
 
AULA 4 - PROPRIEDADES CSS
AULA 4 - PROPRIEDADES CSSAULA 4 - PROPRIEDADES CSS
AULA 4 - PROPRIEDADES CSS
 
Css e iFrames
Css e iFramesCss e iFrames
Css e iFrames
 
Montando sites com XHTML e CSS utilizando os padrões web
Montando sites com XHTML e CSS utilizando os padrões webMontando sites com XHTML e CSS utilizando os padrões web
Montando sites com XHTML e CSS utilizando os padrões web
 
CSS - Módulo Básico de WEB
CSS - Módulo Básico de WEBCSS - Módulo Básico de WEB
CSS - Módulo Básico de WEB
 
Curso html
Curso htmlCurso html
Curso html
 
Minicurso CSS: Definição e aplicação
Minicurso CSS: Definição e aplicaçãoMinicurso CSS: Definição e aplicação
Minicurso CSS: Definição e aplicação
 
Css completo(2)
Css   completo(2)Css   completo(2)
Css completo(2)
 
Construindo layout de sites com CSS
Construindo layout de sites com CSSConstruindo layout de sites com CSS
Construindo layout de sites com CSS
 
Design Gráfico Para Web: Website checklist
Design Gráfico Para Web: Website checklistDesign Gráfico Para Web: Website checklist
Design Gráfico Para Web: Website checklist
 
Introdução ao CSS - Desenvolvimento web
Introdução ao CSS - Desenvolvimento webIntrodução ao CSS - Desenvolvimento web
Introdução ao CSS - Desenvolvimento web
 
Apostila Tutorial CakePHP
Apostila Tutorial CakePHPApostila Tutorial CakePHP
Apostila Tutorial CakePHP
 
Design responsivo
Design responsivo Design responsivo
Design responsivo
 
UX nas trincheiras: do insight ao protótipo
UX nas trincheiras: do insight ao protótipoUX nas trincheiras: do insight ao protótipo
UX nas trincheiras: do insight ao protótipo
 

Similaire à Introdução ao framework CakePHP com Igor Pimentel

Desenvolvendo aplicações web com o framework cakephp
Desenvolvendo aplicações web com o framework cakephpDesenvolvendo aplicações web com o framework cakephp
Desenvolvendo aplicações web com o framework cakephpRodrigo Aramburu
 
Desenvolvendo aplicacoes mobile_com_html_css_
Desenvolvendo aplicacoes mobile_com_html_css_Desenvolvendo aplicacoes mobile_com_html_css_
Desenvolvendo aplicacoes mobile_com_html_css_Rodrigo Urubatan
 
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
 
ASP.NET MVC Mini Curso
ASP.NET MVC Mini CursoASP.NET MVC Mini Curso
ASP.NET MVC Mini CursoVinicius Rocha
 
Computação Científica com Python, Numpy e Scipy
Computação Científica com Python, Numpy e ScipyComputação Científica com Python, Numpy e Scipy
Computação Científica com Python, Numpy e ScipyMarcel Caraciolo
 
Como Perder Peso (no browser)
Como Perder Peso (no browser)Como Perder Peso (no browser)
Como Perder Peso (no browser)Zeno Rocha
 
Interfaces Ricas para WEB com jQuery e jQueryUI (User Interface)
Interfaces Ricas para WEB com jQuery e jQueryUI (User Interface)Interfaces Ricas para WEB com jQuery e jQueryUI (User Interface)
Interfaces Ricas para WEB com jQuery e jQueryUI (User Interface)Evandro Klimpel Balmant
 
Edição de conteúdo web usando Javascript de ponta a ponta
Edição de conteúdo web usando Javascript de ponta a pontaEdição de conteúdo web usando Javascript de ponta a ponta
Edição de conteúdo web usando Javascript de ponta a pontaJorge Walendowsky
 
JavaScript e JQuery para Webdesigners
JavaScript e JQuery para WebdesignersJavaScript e JQuery para Webdesigners
JavaScript e JQuery para WebdesignersHarlley Oliveira
 
Google Analytics Reporting API: Bebendo água direto da fonte
Google Analytics Reporting API: Bebendo água direto da fonteGoogle Analytics Reporting API: Bebendo água direto da fonte
Google Analytics Reporting API: Bebendo água direto da fonteJohann Vivot
 
Introdução de web
Introdução de webIntrodução de web
Introdução de webSedu
 
Realize mais com HTML 5 e CSS 3 - EDTED / RS
Realize mais com HTML 5 e CSS 3 - EDTED / RSRealize mais com HTML 5 e CSS 3 - EDTED / RS
Realize mais com HTML 5 e CSS 3 - EDTED / RSLeonardo Balter
 
Backbone.js nas trincheiras
Backbone.js nas trincheirasBackbone.js nas trincheiras
Backbone.js nas trincheirasLambda 3
 
Implementação de um sistema de monitorização de processos de uma linha de pro...
Implementação de um sistema de monitorização de processos de uma linha de pro...Implementação de um sistema de monitorização de processos de uma linha de pro...
Implementação de um sistema de monitorização de processos de uma linha de pro...Washington Luiz Peroni, PMP
 

Similaire à Introdução ao framework CakePHP com Igor Pimentel (20)

Desenvolvendo aplicações web com o framework cakephp
Desenvolvendo aplicações web com o framework cakephpDesenvolvendo aplicações web com o framework cakephp
Desenvolvendo aplicações web com o framework cakephp
 
Desenvolvendo aplicacoes mobile_com_html_css_
Desenvolvendo aplicacoes mobile_com_html_css_Desenvolvendo aplicacoes mobile_com_html_css_
Desenvolvendo aplicacoes mobile_com_html_css_
 
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
 
ASP.NET MVC Mini Curso
ASP.NET MVC Mini CursoASP.NET MVC Mini Curso
ASP.NET MVC Mini Curso
 
Wicket 2008
Wicket 2008Wicket 2008
Wicket 2008
 
Computação Científica com Python, Numpy e Scipy
Computação Científica com Python, Numpy e ScipyComputação Científica com Python, Numpy e Scipy
Computação Científica com Python, Numpy e Scipy
 
Python 08
Python 08Python 08
Python 08
 
Como Perder Peso (no browser)
Como Perder Peso (no browser)Como Perder Peso (no browser)
Como Perder Peso (no browser)
 
Introdução a HTML, CSS, JS, Ajax
Introdução a HTML, CSS, JS, AjaxIntrodução a HTML, CSS, JS, Ajax
Introdução a HTML, CSS, JS, Ajax
 
Interfaces Ricas para WEB com jQuery e jQueryUI (User Interface)
Interfaces Ricas para WEB com jQuery e jQueryUI (User Interface)Interfaces Ricas para WEB com jQuery e jQueryUI (User Interface)
Interfaces Ricas para WEB com jQuery e jQueryUI (User Interface)
 
Edição de conteúdo web usando Javascript de ponta a ponta
Edição de conteúdo web usando Javascript de ponta a pontaEdição de conteúdo web usando Javascript de ponta a ponta
Edição de conteúdo web usando Javascript de ponta a ponta
 
JavaScript e JQuery para Webdesigners
JavaScript e JQuery para WebdesignersJavaScript e JQuery para Webdesigners
JavaScript e JQuery para Webdesigners
 
Google Analytics Reporting API: Bebendo água direto da fonte
Google Analytics Reporting API: Bebendo água direto da fonteGoogle Analytics Reporting API: Bebendo água direto da fonte
Google Analytics Reporting API: Bebendo água direto da fonte
 
Introdução de web
Introdução de webIntrodução de web
Introdução de web
 
Apresentando o CakePHP
Apresentando o CakePHPApresentando o CakePHP
Apresentando o CakePHP
 
Html5 workshop
Html5 workshopHtml5 workshop
Html5 workshop
 
Realize mais com HTML 5 e CSS 3 - EDTED / RS
Realize mais com HTML 5 e CSS 3 - EDTED / RSRealize mais com HTML 5 e CSS 3 - EDTED / RS
Realize mais com HTML 5 e CSS 3 - EDTED / RS
 
Backbone.js nas trincheiras
Backbone.js nas trincheirasBackbone.js nas trincheiras
Backbone.js nas trincheiras
 
Rails na prática
Rails na práticaRails na prática
Rails na prática
 
Implementação de um sistema de monitorização de processos de uma linha de pro...
Implementação de um sistema de monitorização de processos de uma linha de pro...Implementação de um sistema de monitorização de processos de uma linha de pro...
Implementação de um sistema de monitorização de processos de uma linha de pro...
 

Introdução ao framework CakePHP com Igor Pimentel

  • 2. Introdução ao framework CakePHP com Igor Pimentel www.igorpimentel.com
  • 3. Quem? Igor Pimentel Sistemas de Informação - UFC Notorion - Sites e Sistemas Web @igorpimentel www.igorpimentel.com
  • 4.
  • 5. Sites Sistemas Web
  • 6. Agenda 10/MAIO Um pouco de blá.. blá.. blá... Preparando o ambiente Mão na Massa 11/MAIO Mão na Massa Bônus* Considerações Finais
  • 7. CakePHP - é de comer? *Foto: http://www.flickr.com/photos/koyhoge O que é? CakePHP é um framework PHP, gratuito, de código aberto, para desenvolvimento ágil.
  • 8. CakePHP - Por que usar? Comunidade ativa e amigável Template flexível e rápido Licensa flexível (MIT) Helpers para HTML e Formulários, JavaScript e até AJAX CRUD integrado para interação com o banco de dados Componentes de Email, Cookies, Segurança, Sessão e manipulação de Scaffold de aplicação requisições Código gerado automáticamente (bake) Controle de Acesso (ACL) Arquitetura MVC Multiplas configurações de cache URLs amigáveis Localização e internacionalização Validação de dados Roda em qualquer servidor web, práticamente sem configuração
  • 9. <,= % %>"4)%"-$?% CakePHP - Quem usa? @$A4BCB! "##$%&&'(()'*&+',-$! Mais? http://goo.gl/Fg0wp
  • 10. <,= % %>%?"4%4"%@A%B2C%:0)%4#4D% CakePHP - O que fazer? E$F4GHG! !"#$%&'()*!"#$%$&! '(()*++,-./0'1234/12+! ! !"#$%&'(%#%'%&)*)+&'+'$#",%'-+' ./01+.2'+/'$"-"'"'/)3-"' ! 56.738!93!-:-;<.1!3!692.7! =1(1:>!?@931:>!26)6!3!! /68379;<.1!93!9.:)17.A.8.9693! B)8169!2C8(.)81!/12!A6<<6!93! )<1D<3::1!3!)<3?.3E!96!F1(1! G.(3!2-8(.H.9.126!".%I7&! J11D83!K9L676D3<!3!J11D83! L6):! *Portfólio de Thiago Belém (http://thiagobelem.net)
  • 11. CakePHP - O que fazer? <,= % %>%?"4%4"%@A%B2C%:0)%4#4D% E$F4GHG! !"#$%&'(')*+%),-! "##$%&&#'($)*+,+*-).(/.)(&! ! !"#$%&$%'()*)$(%$%+$,&'%&$% '-'.#'/$,#01%,0%2"0%&$%3',$".0% ! 01234!5)&! 6+-7'8!,'!.)7#*)8'! ! 9)#):;!(+$+!'!.+8'7,<*-)!,'! ,-:$)7-=-8-,+,'! 1*+,>?@)!A-+!B))C8'!1*+7:8+#'! B))C8'!2+$:! *Portfólio de Thiago Belém (http://thiagobelem.net)
  • 12. O que é um Framework? Um framework, em desenvolvimento de soft ware, é uma abstração que une códigos comuns entre vários projetos de soft ware provendo uma funcionalidade genérica. (Wikipedia)
  • 13. Framework Framework != CMS Framework != Padrões de Projeto Framework != IDE Framework != Biblioteca Frameworks facilitam o desenvolvimento, pois ao invés de se fazer tudo na "unha" ou "reinventar a roda" ele provê um conjunto funcionalidade prontas.
  • 14. MVC MVC == Model-view-controller É um padrão de arquitetura de aplicações que visa separar a lógica da aplicação (Model), da interface do usuário (View) e do fluxo da aplicação (Controller). Permite que a mesma lógica de negócios possa ser acessada e visualizada por várias interfaces. *Fonte: http://www.htmlstaff.org/ver.php?id=4500
  • 15. Isso é MVC: Model Controller View
  • 17. MVC em Texto Controllers Os controllers (controladores) manipulam as requisições e ajudam coordenando e preparando as respostas que serão enviadas para o cliente. Views As views (visões) formam a camada de apresentação no CakePHP. Elas geram as saídas para as requisições dos clientes transformando os dados que foram obtidos a partir dos models. Models Os models (modelos) formam o coração de sua aplicação. Tratam das validações, armazenamento e recuperação dos seus dados.
  • 22. Mão na massa... Instalando o XAMPP... Download: http://www.apachefriends.org/pt_br/xampp.html
  • 24. Mão na massa... Instalando o CakePHP... Download: http://cakephp.org
  • 27. Configurações Alterar o valor de Security.salt em APP/Config/core.php Alterar o valor de Security.cipherSeed em APP/Config/core.php Permissão de escrita no diretório APP/tmp (chmod 777) Configurar banco de dados em APP/Config/database.php
  • 30. Páginas no CakePHP APP/View/Pages
  • 31. Páginas no CakePHP Vamos criar Páginas....
  • 33. Layouts no CakePHP Layout View
  • 34. Layouts no CakePHP APP/View/Layouts/default.ctp
  • 35. Layouts no CakePHP <?php echo $title_for_layout ?>
  • 36. Layouts no CakePHP <?php echo $this->Html->css('style') ?>
  • 37. Layouts no CakePHP <?php echo $content_for_layout ?>
  • 38. Helpers <?php echo $this->Html->link( 'programação', array( 'controller' => 'pages', 'action' => 'display', 'programacao' ) ) ?>
  • 39. Rotas no CakePHP APP/Config/routes.php Router::connect('<formato da url>', array( 'controller' => '<controller>', 'action' => '<action>') );
  • 41. Cadastro de Notícias Model Noticia Arquivo: /APP/Model/Noticia.php Nome da Classe: Noticia Tabela no Banco: noticias
  • 42. Cadastro de Notícias Model Noticia <?php class Noticia extends AppModel{ } ?>
  • 43. Cadastro de Notícias Controller Noticia Arquivo: /APP/Controller/NoticiasController.php Nome da Classe: NoticiasController
  • 44. Cadastro de Notícias Controller Noticia <?php class NoticiasController extends AppController { } ?>
  • 45. Cadastro de Notícias Controller Noticia <?php class NoticiasController extends AppController { var $scaffold; } ?>
  • 46. Considerações Finais Próximos passos... 1 - Aprenda (de verdade) PHP 2 - http://book.cakephp.org/2.0/pt 3 - Faça Cursos
  • 47.
  • 49. Referências Wikipedia Cookbook Material pessoal de Thiago Belém (www.thiagobelem.net) (slides 9, 10 e 11)