FSM, vetores e funções em PHP

Post on 05-Jul-2015

1.686 views 3 download

Transcript of FSM, vetores e funções em PHP

FSM, vetores e funções em PHP

Breno VitorinoSeminários III

PUC Minas Contagem

No último seminário...● Vimos o que são operações do tipo

CRUD.● Entendemos as funções isset() e

empty() no contexto de validação de formulários.

● Revisamos as funções PHP para criar uma página de inserção (CRUD).

Alterar● Comando SQL:

UPDATE <tabela> SET <campo = valor> WHERE <condição>;

● Exemplo:UPDATE portfolio SET experiencia = 'Nenhuma';

Alterar em PHP

Podemos aproveitar o formulário de criação?

Alterar em PHPSim, podemos aproveitar:● Leiaute da página● Validação dos campos

Alterar em PHPEntretanto, há diferenças também:● Ao abrir a página, deve carregar os

dados do portfólio.● Ao clicar em Enviar, deve executar

um UPDATE ao invés de INSERT

Alterar em PHP

Solução: implementar uma máquina de estados (FSM – Finite State Machine)

Exemplo: máquina de estados finita

Solteiro Casado

DivorciadoViúvo

casar

morrer

morrer

morrer

morrer

casar

cônjuge morre

divorciar

casar

FSM para a página de inserção / atualização

Criar

abrir página

Atualizarabrir página

Formulário preenchido

inserir no BD

Formulário preenchido

atualizar no BD

enviar form.

enviar form.

Formulário em branco

Formulário preenchidode acordo com o ID do portfólio.

Máquina de estados em PHP$estado = obter_estado_pagina();switch($estado) { case INSERCAO_NOVO: // Algum processamento ... break; case ALTERACAO_NOVO: // Outro processamento ... break;}

Sintaxe de funções

function nome_da_função( parâmetro1, parâmetro2, … ) {

bloco_de_comandos;

return valor; // Opcional

}

Funções em PHP<?php

function fibonacci ($n) {

if ($n == 1 || $n == 2) {

return 1;

} else {

return fibonacci($n - 1) + fibonacci($n - 2);

}

}

?>

Geração dinâmica de caixas de seleção

● 2 vetores:–Um para armazenar a lista de

opções–Outro para armazenar a opção

selecionada

Vetores em PHP● Armazenam uma coleção de valores.● Podem ser declarados como: <? frutas = array ( "banana", "pêra", "maçã" ); ?>

ou <? chamada = array (

"alberto" => "317345"

"bianca" => "792652"

); ?>

Vetores para caixas de seleção

$estado_options = array(

'MG', 'RJ', 'RS', 'SP'

);

$estado_selected [ $estado ] = 'selected = "selected" ';

Caixa de seleção dinâmica<select name="estado" id="estado">

<option value="" <?= $estado_selected['']

?>>Escolha</option>

<? foreach( $estado_options as $option ) { ?>

<option <?= $estado_selected [ $option ]

?>><?= $option ?></option>

<? } ?>

</select>

Alterar: Demo

Obrigado!

Breno Vitorinohttp://brenovitorino.wordpress.com