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.
Server SidePHP, MVC, MySQL E AJAXProf: Sérgio Souza Costa
RoteiroLinguagens e framework    PHP e um simples MVCA linguagem PHP    PHP + MySQLPHP + MySQL + MVC    PHP + MySQL + MVC ...
Linguagens são compostas por sintaxe,semântica e pragmática. Em computaçãoele deve ser universal e implementável.
Linguagens são compostas por sintaxe,semântica e pragmática. Em computaçãoele deve ser universal e implementável.Framework...
Linguagens             Framework    JAVA               J2EE (JSF, STRUTS...)    RUBY                   ON RAILS    PHP    ...
Frameworks●   Disciplina●   Simplificação●   Agilidade / Rapidez●   Padrões de desenvolvimento / Design    Pattern●   Orga...
Frameworks                             Similar as metodologias de●   Disciplina               engenharia de software, se  ...
Frameworks nos “ensinam” a boa prática dedesenvolvimentoFramework é muito mais que uma biblioteca,é o resultado da experiê...
Qual melhor ?
Qual melhor ?Em muitos casos, escolhemos uma tecnologia pelatendência e não por critérios quantitativos.Não existe a melho...
PHP é a tecnologia base:               Wikipedia Facebook     Yahoo            IBM            Apple     Nasa
Java != PHP
Java != PHP    São duas tecnologias bem distintas.●    Java vai muito além do que se propõe o PHP.●    Java pode substitui...
Tiobe index não representa a realidade,nenhum indicador na verdade é capazdisso. Ele apenas é um indicador quepode mostrar...
Java era “modismo” ?   O “mundo”                       é mais que                       java e php,                       ...
ServersideClientside
Mantenham a cabeça aberta, livrem-se de seuspreconceitos Prendam se a conceitos, não a linguagens e frameworks
Mantenham a cabeça aberta, livrem-se de seuspreconceitos                                       Aprender                   ...
PHP               Guia rápidohttp://www.php.net/manual/pt_BR/
Ciclo de vida
PHP (um acrônimo recursivo para PHP: HypertextPreprocessor) é uma linguagem de script open source deuso geral, muito utili...
PHP (um acrônimo recursivo para PHP: HypertextPreprocessor) é uma linguagem de script open source deuso geral, muito utili...
Imprimir HTML tags em PHP = bad style
PHP expression block: good wayFormato: <?= expression ?><!DOCTYPE html><html><head>                           ola.php<meta...
PHP FrameworksMVC            Objeto relacional   TestesCakePHP                            PHPUnit                    CakeP...
Antes de vermos detalhes da LINGUAGEM, veremos um exemplo simples de um MVC sem o auxilio de frameworks.Baixem o arquivo.
Exemplo usado de: http://php-html.net/tutorials/model-view-controller-in-php/     Model View Controler   Simplificado, pre...
Index.php<?php  include_once("controller/Controller.php");     $controller = new Controller();     $controller->invoke();?>
controller.phpclass Controller {    public $model;    public function __construct() {     $this->model = new Model();     ...
book.phpclass Book {     public $title;     public $author;     public $description;     public function __construct($titl...
model.php                                                  Simulando umclass Model {                                     b...
booklist.php….<tr><td>Title</td><td>Author</td><td>Description</td></tr><?php foreach ($books as $title => $book) { ?><tr>...
PHP - Linguagem
Imperativa               DinâmicaOrientada a objeto        Estilo funcional
VariáveisAs variáveis no PHP são representadas por um cifrão($) seguido pelo nome da variável. Os nomes devariável no PHP ...
Variáveis e atribuição<?php   $var = Bob;   $Var = Joe; // case sensitive, $var e diferente de $Var   echo "$var, $Var";  ...
ConstanteConstantes são valores que são declarados e não podemser alterados durante a sua execução. Para definir umaconsta...
Valores e tiposPrimitivos   Especiais   Compostos:boolean      resource    arrayinteger      NULL        ObjectFloatstring
BooleanosEste é o tipo mais simples. Um booleano expressaum valor verdade. Ele pode ser TRUE ou FALSE.Para especificar um ...
Ponto flutuanteNúmeros de ponto flutuante (também conhecidos como"floats", "doubles" ou "números reais") podem serespecifi...
StringUma string é uma série de caracteres.PHP não impõe limite de tamanho de umastring; o único limite é o de memória dis...
ArrayUm array no PHP é um mapa ordenado.Um mapa é um tipo que relaciona valores para chaves. array( chave => valor     , ....
ObjetoUm Objeto pode ser criado com o construtor delinguagem new <?php class foo {    function do_foo() {      echo "Doing...
Objeto                             Veremos sobre                                   classes em                             ...
ResourcesUm recurso é uma variável especial, que mantémuma referência a um recurso externo.Recursos são criados e usados p...
NullValor especial NULL representa que a variável nãotem valor. NULL é o único valor possível do tipoNULL.A variável é con...
Type castingA conversão de tipos no PHP funciona como no C: onome de um tipo desejado é escrito entre parêntesesantes da v...
Recebendo dados de umarequisiçãoPara receber os dados de uma requisição, usamosvariáveis pré-definidas pelo PHP ($_POST ou...
Respondendo umarequisiçãoUma resposta do servidor será em geral um texto,estruturado no formato HTML, XML, JSON, texto pur...
Operadores unáriosOperadores   Descrição++$a         Pré-incremento. Incrementa $a em um e, então, retorna             $a;...
Operadores aritméticosOperadores          Descrição+                   Adição-                   Subtração*               ...
Operadores relacionaisOperadores   Descrição==           Igual. Resulta verdadeiro (TRUE) se expressões forem             ...
Operadores lógicosOperadores    Descrição($a and $b)   E: Verdadeiro (TRUE) se tanto $a quanto $b forem              verda...
Controle de fluxoSeleção                            Iteração<?php                             $i = 1;if ($a > $b) {       ...
“Incluindo” arquivosInclude, inclui e avalia o arquivo informado. Se oarquivo não existir produzirá uma mensagem deadvertê...
PHP Orientado a objetos
Estilo orientado a objeto# construi um objeto$name = new ClassName(parameters);# acessando um atribtuo$name->fieldName# ch...
Sintaxe para declaração de classeclass ClassName {    # atributos da classe    public $name;          # atributos públicos...
Sintaxe para declaração de classeclass ClassName {    # atributos da classe    public $name;          # atributos públicos...
Exemplo<?php     class Point {         public $x;         public $y;         # equivalent of a Java constructor         pu...
Herançaclass ClassName extends ClassName {   ...}class Point3D extends Point {    public $z;    public function __construc...
Interfaceinterface InterfaceName {    public function name(parameters);   public function name(parameters); ...}class Clas...
Interface                       Possui similaridades,                                porem classesinterface InterfaceName ...
Integrando com o banco de dadosPHP + MySQLBaixem o arquivo.
MySQLCriem um banco chamado "bib", com umatabela chamada "books", com trêsatributos (title, author and description)
Acessando MySQL                                  book.php<body>    <p> livros </p>    <table>    <?php    $mysqli = new my...
PHP + MVC + MySQLVoltando ao simples MVC ....Só mudaremos o Model.php,o restante se mantêmBaixem o arquivo.
Incluir umUsando o MySQL                                        construtor, que                                           ...
PHP + MVC + MySQL + AJAX     Baixem o arquivo.
PHP + MVC + MySQL + AJAXUsando o mesmo banco e projeto, podemos usarapenas uma view. Ao clicar em um livro, fazemos umareq...
PHP + MVC + MySQL + AJAXIncluimos um script, "bookdetail.php", que seráresponsável por receber a solicitação e encaminhar ...
PHP + MVC + MySQL + AJAX                                                      Associado ao                                ...
Controle de SessãoBaixem o arquivo
Controle de SessãoSuporte a sessões no PHP consiste de uma maneirade presevar dados através de acessos subsequentes.Isso p...
sempre deverá ser chamada                                   para tratar as variaveis deVariáveis de sessão                ...
Variáveis de sessão: Criando e acessandosessao1.php<?php   session_start();   $_SESSION[nome] = "sergio";   echo $_SESSION...
Variáveis de sessão: Destruindo<?php   session_start();   session_destroy();?>
Nos exemplo, em sessao.zip,encontraram um exemplo simples, deuso de sessão para validar um login.
CookiesCookie, são dados no fomato (chave, valor) que podem serenviado para o cliente e que serão transmitidos entre todas...
Cookies                                Em um dado contexto, um                                       cookie pode ser envia...
Cookies                                    Em um dado contexto, um                                           cookie pode s...
Cookies              O cookie pode ter um tempo pre-                     definido para expirar, um mês neste              ...
Conclusão PHP é uma linguagem leve, ágil, muito utilizada na web, e com muitos recursos que permite desenvolver software d...
Serversidephp pptx2-120418140114-phpapp01
Serversidephp pptx2-120418140114-phpapp01
Upcoming SlideShare
Loading in …5
×
Upcoming SlideShare
Palestra Flisol 2012 - Campinas
Next
Download to read offline and view in fullscreen.

0

Share

Download to read offline

Serversidephp pptx2-120418140114-phpapp01

Download to read offline

Related Audiobooks

Free with a 30 day trial from Scribd

See all
  • Be the first to like this

Serversidephp pptx2-120418140114-phpapp01

  1. 1. Server SidePHP, MVC, MySQL E AJAXProf: Sérgio Souza Costa
  2. 2. RoteiroLinguagens e framework PHP e um simples MVCA linguagem PHP PHP + MySQLPHP + MySQL + MVC PHP + MySQL + MVC + AJAXControle de sessão e cookies
  3. 3. Linguagens são compostas por sintaxe,semântica e pragmática. Em computaçãoele deve ser universal e implementável.
  4. 4. Linguagens são compostas por sintaxe,semântica e pragmática. Em computaçãoele deve ser universal e implementável.Framework é um conjunto de objetos quecolaboram com o objetivo de atender umconjunto de responsabilidades para umaaplicação específica ou um domínio de aplicação(Erick Gamma, 1995)
  5. 5. Linguagens Framework JAVA J2EE (JSF, STRUTS...) RUBY ON RAILS PHP Zend, CakePHP...C#, Visual Basic ... .NET Perl Catalyst C++ CppCMS Python Django, Zope Haskell SNAP,Happstack
  6. 6. Frameworks● Disciplina● Simplificação● Agilidade / Rapidez● Padrões de desenvolvimento / Design Pattern● Organização● Menos código● Conjunto de utilitários
  7. 7. Frameworks Similar as metodologias de● Disciplina engenharia de software, se ficar muito “burocratico”,● Simplificação pode tornar lento o● Agilidade / Rapidez processo. Isso será mais perceptível em pequenos● Padrões de desenvolvimento / Design projetos Pattern● Organização● Menos código● Conjunto de utilitários
  8. 8. Frameworks nos “ensinam” a boa prática dedesenvolvimentoFramework é muito mais que uma biblioteca,é o resultado da experiência de variasprofissionais, concretizada em um software.Esta experiência é descrita através dospadrões de projetos, que nos ENSINOU adesenvolver. Porem usar padrões requereexperiência, os frameworks nos ajudamnisso.
  9. 9. Qual melhor ?
  10. 10. Qual melhor ?Em muitos casos, escolhemos uma tecnologia pelatendência e não por critérios quantitativos.Não existe a melhor.Grandes empresas usam muito mais que umatecnologia, usualmente se baseiam em soluçõeshibridas, java, php, c++ ....
  11. 11. PHP é a tecnologia base: Wikipedia Facebook Yahoo IBM Apple Nasa
  12. 12. Java != PHP
  13. 13. Java != PHP São duas tecnologias bem distintas.● Java vai muito além do que se propõe o PHP.● Java pode substituir o PHP, o contrário não é● possível
  14. 14. Tiobe index não representa a realidade,nenhum indicador na verdade é capazdisso. Ele apenas é um indicador quepode mostrar uma “tendência”.
  15. 15. Java era “modismo” ? O “mundo” é mais que java e php, ☺ "Ninguém" queria usar PHP, observa que isso era em 2002, 10 anos atrás.
  16. 16. ServersideClientside
  17. 17. Mantenham a cabeça aberta, livrem-se de seuspreconceitos Prendam se a conceitos, não a linguagens e frameworks
  18. 18. Mantenham a cabeça aberta, livrem-se de seuspreconceitos Aprender novas linguagens é uma boa forma de treinar e se prepararem para aprender. Prendam se a conceitos, não a linguagens e frameworks
  19. 19. PHP Guia rápidohttp://www.php.net/manual/pt_BR/
  20. 20. Ciclo de vida
  21. 21. PHP (um acrônimo recursivo para PHP: HypertextPreprocessor) é uma linguagem de script open source deuso geral, muito utilizada e especialmente guarnecida para odesenvolvimento de aplicações Web embútivel dentro doHTML.
  22. 22. PHP (um acrônimo recursivo para PHP: HypertextPreprocessor) é uma linguagem de script open source deuso geral, muito utilizada e especialmente guarnecida para odesenvolvimento de aplicações Web embútivel dentro doHTML.O código PHP é delimitado pelas tags<?php....?>Ou<?= expressao ?>
  23. 23. Imprimir HTML tags em PHP = bad style
  24. 24. PHP expression block: good wayFormato: <?= expression ?><!DOCTYPE html><html><head> ola.php<meta charset="utf-8" /><title></title></head><body> <p> <?= "Ola Mundo" ?> </p></body></html>
  25. 25. PHP FrameworksMVC Objeto relacional TestesCakePHP PHPUnit CakePHP limeZend PROPELSimphony2 DoctrineCode igneter
  26. 26. Antes de vermos detalhes da LINGUAGEM, veremos um exemplo simples de um MVC sem o auxilio de frameworks.Baixem o arquivo.
  27. 27. Exemplo usado de: http://php-html.net/tutorials/model-view-controller-in-php/ Model View Controler Simplificado, pressuposto -> cliente através da Web.
  28. 28. Index.php<?php include_once("controller/Controller.php"); $controller = new Controller(); $controller->invoke();?>
  29. 29. controller.phpclass Controller { public $model; public function __construct() { $this->model = new Model(); MODEL } public function invoke() { if (!isset($_GET[book])) { // no special book is requested, well show a list of all availablebooks $books = $this->model->getBookList(); include view/booklist.php; View 1 } else{ // show the requested book $book = $this->model->getBook($_GET[book]); include view/viewbook.php; } View 2 }}
  30. 30. book.phpclass Book { public $title; public $author; public $description; public function __construct($title, $author, $description) { $this->title = $title; $this->author = $author; $this->description = $description; }}
  31. 31. model.php Simulando umclass Model { banco public function getBookList() { return array( "Jungle Book" => new Book("Jungle Book", "R. Kipling", "A classicbook."), "Moonwalker" => new Book("Moonwalker", "J. Walker", ""), "PHP for Dummies" => new Book("PHP for Dummies", "SomeSmart Guy", "") ); } public function getBook($title) { Simulando um $allBooks = $this->getBookList(); “select” return $allBooks[$title]; }}
  32. 32. booklist.php….<tr><td>Title</td><td>Author</td><td>Description</td></tr><?php foreach ($books as $title => $book) { ?><tr><td><a href="index.php?book=<?=$book->title?>"><?=$book->title?></a></td> <td><?=$book->author?></td> <td><?=$book->description?></td></tr><?php } ?>…. Baixem e experimente estesviewbook.php códigos.<html><head></head><body><p> Title: <?= $book->title ?> </p><p> Author: <?= $book->author ?> </p><p> Description: <?= $book->description ?> </p></body></html>
  33. 33. PHP - Linguagem
  34. 34. Imperativa DinâmicaOrientada a objeto Estilo funcional
  35. 35. VariáveisAs variáveis no PHP são representadas por um cifrão($) seguido pelo nome da variável. Os nomes devariável no PHP fazem distinção entre maiúsculas eminúsculas.Um nome de variável válido se inicia com uma letra ousublinhado, seguido de qualquer número de letras,algarismos ou sublinhados.
  36. 36. Variáveis e atribuição<?php $var = Bob; $Var = Joe; // case sensitive, $var e diferente de $Var echo "$var, $Var"; // exibe "Bob, Joe" $4site = not yet; // inválido; começa com um número $_4site = not yet; // válido; começa com um sublinhado $täyte = mansikka; // válido; ä é um caracter ASCII (extendido) 228 $var = 10; // dinamico $var += 5; // soma o valor de $var a 5 e atribui a $var $var /= 2; // divide o valor de $var por 2 e atribui a $var?>
  37. 37. ConstanteConstantes são valores que são declarados e não podemser alterados durante a sua execução. Para definir umaconstante utilizamos a função define <?php define("CONSTANTE", "Alô Mundo."); define("SALARIOMINIMO", 1000); define("DIRETORIOHOME", "/home"); ?>
  38. 38. Valores e tiposPrimitivos Especiais Compostos:boolean resource arrayinteger NULL ObjectFloatstring
  39. 39. BooleanosEste é o tipo mais simples. Um booleano expressaum valor verdade. Ele pode ser TRUE ou FALSE.Para especificar um literal booleano, use aspalavras-chave TRUE ou FALSE. Ambas sãocase-insensitive.<?php $variavel = True; // atribui o valor True para$variavel?>
  40. 40. Ponto flutuanteNúmeros de ponto flutuante (também conhecidos como"floats", "doubles" ou "números reais") podem serespecificados utilizando qualquer uma das seguintessintaxes:<?php $a = 1.234; $b = 1.2e3; $c = 7E-10;?>
  41. 41. StringUma string é uma série de caracteres.PHP não impõe limite de tamanho de umastring; o único limite é o de memória disponíveldo computador no qual o PHP está sendoexecutado.<?php echo isto é uma string comum; echo Você pode incluir novas linhas em strings, dessamaneira que estarátudo bem;?>
  42. 42. ArrayUm array no PHP é um mapa ordenado.Um mapa é um tipo que relaciona valores para chaves. array( chave => valor , ... ) // chave pode ser tanto string ou um integer // valor pode ser qualquer coisa <?php $arr = array("foo" => "bar", 12 => true); echo $arr["foo"]; // bar echo $arr[12]; // 1 ?>
  43. 43. ObjetoUm Objeto pode ser criado com o construtor delinguagem new <?php class foo { function do_foo() { echo "Doing foo."; } } $bar = new foo; $bar->do_foo(); ?>
  44. 44. Objeto Veremos sobre classes em PHP mais aUm Objeto pode ser criado com o construtor de frentelinguagem new<?phpclass foo{ function do_foo() { echo "Doing foo."; }}$bar = new foo;$bar->do_foo();?>
  45. 45. ResourcesUm recurso é uma variável especial, que mantémuma referência a um recurso externo.Recursos são criados e usados por funçõesespeciais.<?php $result = mysql_connect("localhost", "username", "pass");?>
  46. 46. NullValor especial NULL representa que a variável nãotem valor. NULL é o único valor possível do tipoNULL.A variável é considerada null se: 1. ela foi assimilada com a constante NULL. 2. ela não recebeu nenhum valor ainda. 3. ela foi apagada com unset().
  47. 47. Type castingA conversão de tipos no PHP funciona como no C: onome de um tipo desejado é escrito entre parêntesesantes da variável em que se deseja a moldagem.(int), (integer) - molde para inteiro(bool), (boolean) - converte para booleano(float), (double), (real) - converte para número deponto flutuante(string) - converte para string(array) - converte para array(object) - converte para objeto(unset) - converte para NULL (PHP 5)
  48. 48. Recebendo dados de umarequisiçãoPara receber os dados de uma requisição, usamosvariáveis pré-definidas pelo PHP ($_POST ou$_GET), conforme o método de envio utilizado noformulário.<?php //neste caso temos no formulário um campo chamado nome e método de envio POST $nome = $_POST[nome]; //neste caso temos no formulário um campo chamado nome e método de envio GET $nome = $_GET[nome]; $nome = $_REQUEST[nome]; // contem ambos?>
  49. 49. Respondendo umarequisiçãoUma resposta do servidor será em geral um texto,estruturado no formato HTML, XML, JSON, texto puroe etc<?php $nome = $_REQUEST[nome]; echo "respondendo ao ". $nome;?>
  50. 50. Operadores unáriosOperadores Descrição++$a Pré-incremento. Incrementa $a em um e, então, retorna $a;$a++ Pós-incremento. Retorna $a e, então, incrementa $a em um.--$a Pré-decremento. Decrementa $a em um e, então, retorna $a;$a-- Pós-incremento. Retorna $a e, então, decrementa $a em um.
  51. 51. Operadores aritméticosOperadores Descrição+ Adição- Subtração* Multiplicação/ Divisão% Módulo (resto da divisão)
  52. 52. Operadores relacionaisOperadores Descrição== Igual. Resulta verdadeiro (TRUE) se expressões forem iguais=== Idêntico. Resulta verdadeiro (TRUE) se as expressões forem iguais e do mesmo tipo de dados.!= ou <> Diferente. Resulta verdadeiro se as variáveis forem diferentes.< Menor que.> Maior que.<= Menor ou igual.>= Maior ou igual.
  53. 53. Operadores lógicosOperadores Descrição($a and $b) E: Verdadeiro (TRUE) se tanto $a quanto $b forem verdadeiros($a or $b) OU: Verdadeiro (TRUE) se $a ou $b forem verdadeiros($a xor $b) XOR: Verdadeiro (TRUE) se $a ou $b forem verdadeiros, de forma exclusiva.(! $a) NOT: Verdadeiro (TRUE) se $a for false.($a && $b) E: Verdadeiro (TRUE) se tanto $a quanto $b forem verdadeiros($a || $b) OU: Verdadeiro (TRUE) se $a ou $b forem verdadeiros
  54. 54. Controle de fluxoSeleção Iteração<?php $i = 1;if ($a > $b) { while ($i <= 10) { echo "a is bigger than b"; echo $i++;} elseif ($a == $b) { } echo "a is equal to b";} else { echo "a is smaller than b"; for ($i = 1; $i <= 10; $i++) {} echo $i;?> }switch ($i) { case 0: foreach ($arr as $key => $value) { echo "i equals 0"; echo "Key: $key; Value: $value<br />n"; case 1: } echo "i equals 1"; case 2: echo "i equals 2";}
  55. 55. “Incluindo” arquivosInclude, inclui e avalia o arquivo informado. Se oarquivo não existir produzirá uma mensagem deadvertência (warning).include_once, garante que será avaliado apenasuma vês.require, similar ao include, porem produz umamensagem de Fatal Error caso o arquivo não exista.require_once, garante que será avaliado apenasuma vês.
  56. 56. PHP Orientado a objetos
  57. 57. Estilo orientado a objeto# construi um objeto$name = new ClassName(parameters);# acessando um atribtuo$name->fieldName# chamando um método$name->methodName(parameters);$zip = new ZipArchive();$zip->open("moviefiles.zip");$zip->extractTo("images/");$zip->close();
  58. 58. Sintaxe para declaração de classeclass ClassName { # atributos da classe public $name; # atributos públicos private $name; # atributos privados # construtor da classe public function __construct(parameters) { statement(s); } # métodos – comportamento de cada objeto public function name(parameters) { statements; }}
  59. 59. Sintaxe para declaração de classeclass ClassName { # atributos da classe public $name; # atributos públicos private $name; # atributos privados # construtor da classe public function __construct(parameters) { statement(s); } # métodos – comportamento de cada objeto public function name(parameters) { statements; }}
  60. 60. Exemplo<?php class Point { public $x; public $y; # equivalent of a Java constructor public function __construct($x, $y) { $this->x = $x; $this->y = $y; } public function distance($p) { $dx = $this->x - $p->x; $dy = $this->y - $p->y; return sqrt($dx * $dx + $dy * $dy); } # equivalent of Javas toString method public function __toString() { return "(" . $this->x . ", " . $this->y . ")"; } } $p1 = new Point (2,4); echo $p1;?>
  61. 61. Herançaclass ClassName extends ClassName { ...}class Point3D extends Point { public $z; public function __construct($x, $y, $z) { parent::__construct($x, $y); $this->z = $z; }}$p2 = new Point3D (4,5,6);
  62. 62. Interfaceinterface InterfaceName { public function name(parameters); public function name(parameters); ...}class ClassName implements InterfaceName{ ...Classe abstrataabstract class ClassName { abstract public function name(parameters); ...}
  63. 63. Interface Possui similaridades, porem classesinterface InterfaceName { abstratas podem public function name(parameters); atribtutos e possuir public function name(parameters); ... Ambas construtores.} nao são instanciaveisclass ClassName implements InterfaceName{ ...Classe abstrataabstract class ClassName { abstract public function name(parameters); ...}
  64. 64. Integrando com o banco de dadosPHP + MySQLBaixem o arquivo.
  65. 65. MySQLCriem um banco chamado "bib", com umatabela chamada "books", com trêsatributos (title, author and description)
  66. 66. Acessando MySQL book.php<body> <p> livros </p> <table> <?php $mysqli = new mysqli("localhost", "root", "", "bib"); $result = $mysqli->query("SELECT * FROM books"); while ($row = $result->fetch_object()) { ?> <tr> <td><?=$row->title ?></td> <td><?=$row->author ?></td> <td><?=$row->description ?></td> <?php } ?> </ul></body>
  67. 67. PHP + MVC + MySQLVoltando ao simples MVC ....Só mudaremos o Model.php,o restante se mantêmBaixem o arquivo.
  68. 68. Incluir umUsando o MySQL construtor, que inicializa um objeto para conexao com o bancopublic function __construct(){ $this->mysqli = new mysqli("localhost", "root", "", "bib");}public function getBookList(){ $result = $this->mysqli->query("SELECT * FROM books"); $result_array ; while ($row = $result->fetch_object()) { $result_array[$row->title] = new Book ($row->title, $row->author, $row->description); } return $result_array;} Array de objetos é montado a partir do resultado da consulta ao banco.
  69. 69. PHP + MVC + MySQL + AJAX Baixem o arquivo.
  70. 70. PHP + MVC + MySQL + AJAXUsando o mesmo banco e projeto, podemos usarapenas uma view. Ao clicar em um livro, fazemos umarequisição, que retornará o objeto no formato JSON. O conteúdo irá variar de acordo com a seleção.
  71. 71. PHP + MVC + MySQL + AJAXIncluimos um script, "bookdetail.php", que seráresponsável por receber a solicitação e encaminhar aresposta.<?php require_once("../model/Model.php"); $model = new Model(); $book = $model->getBook($_REQUEST[book]); echo (json_encode ($book));?> requisição o titulo resposta JSON do livro
  72. 72. PHP + MVC + MySQL + AJAX Associado ao click do texto $(".title").click( function () { $.getJSON( Requisição com "view/bookdetails.php", parametros {book:$.trim($(this).text())}, function (response) { var $book_detail = $("<div/>") Resposta, de $.each (response, function (i, item) { JSON já convertida para $("<p/>",{ objeto JavaScript text: (i + " : " + item) }).appendTo($book_detail) ; }); // each $("#viewbook").html($book_detail) }) })})
  73. 73. Controle de SessãoBaixem o arquivo
  74. 74. Controle de SessãoSuporte a sessões no PHP consiste de uma maneirade presevar dados através de acessos subsequentes.Isso permite a criação de aplicações maispersonalizadas e aumenta o apelo do seu web site. Variáveis de sessão
  75. 75. sempre deverá ser chamada para tratar as variaveis deVariáveis de sessão sessõessessao1.php<?php session_start(); Crio uma $_SESSION[nome] = "sergio"; variavel de echo $_SESSION[nome]; sessão?>
  76. 76. Variáveis de sessão: Criando e acessandosessao1.php<?php session_start(); $_SESSION[nome] = "sergio"; echo $_SESSION[nome];?> sempre deverá ser chamada para tratar as variaveis de sessõessessao2.php<?php acessando uma session_start(); variável criada echo $_SESSION[nome]; em outro?> contexto
  77. 77. Variáveis de sessão: Destruindo<?php session_start(); session_destroy();?>
  78. 78. Nos exemplo, em sessao.zip,encontraram um exemplo simples, deuso de sessão para validar um login.
  79. 79. CookiesCookie, são dados no fomato (chave, valor) que podem serenviado para o cliente e que serão transmitidos entre todasas futuras conexões, enquanto ele existir.
  80. 80. Cookies Em um dado contexto, um cookie pode ser enviado.<?php setcookie ("nome", "sergio"); echo "te mandei um cookie (nome, sergio)"?>
  81. 81. Cookies Em um dado contexto, um cookie pode ser enviado.<?php setcookie ("nome", "sergio"); echo "te mandei um cookie (nome, sergio)"?><?php echo $_COOKIE[nome]." voce por aqui :)";?> Acessado em outro contexto.
  82. 82. Cookies O cookie pode ter um tempo pre- definido para expirar, um mês neste exemplo.<?php $expire=time()+60*60*24*30; setcookie("user", "Alex Porter", $expire);?>
  83. 83. Conclusão PHP é uma linguagem leve, ágil, muito utilizada na web, e com muitos recursos que permite desenvolver software de qualidade. A agilidade do PHP, é o fato dela ser uma linguagem interpretada, tornando o processo de "implantação" muito mais fácil.PHP deve ser considerada em projetos de aplicações Web,principalmente em pequenos projetos e em protótipos. Contudo, mesmo em grandes projetos PHP continua sendo usado, por exemplo, Facebook. Dependendo das necessidades, existem diversos frameworks completos, para persistência, MVC e testes de unidade. Similarmente ao Java, possuem um conjunto de regras, arquivos de onfiguração ....

Views

Total views

465

On Slideshare

0

From embeds

0

Number of embeds

2

Actions

Downloads

3

Shares

0

Comments

0

Likes

0

×