SIMCIT 2013 - Mini-curso PHP

Preview:

DESCRIPTION

SIMCIT 2013 - UNIFACS Campus Feira

Citation preview

PHP

Por Jonata Weberjonataa@gmail.com

Quem são vocês?

Sobre mim...

falconreviews.com

becker.com

PHPHypertext Preprocessor

Um pouco de história...

Antes, tudo era estático!

Criado em 1994Por Ramus Lerdorf

Common Gateway Interface (CGI)Binário escrito em C

Rastreamento de visitasem seu currículo on-line

Rasmus LerdorfÉ um programador canadiano-dinamarquês e o autor da primeira

versão da linguagem de programação PHP. (Wikipédia)

• Personal Home Page Tools “PHP Tools”

1994

• Tornou-se público• Forms Interpreter - “FI”• PHP Construction Kit

1995

• PHP 2.0 – PHP/FI

1996

• Deixou de ser BETA

1997

• 60.000 domínios com PHP – 1% da Internet

• PHP 3 – 70.000 domínios

1998

• PHP 4 – Zend Engine

2000

• PHP 5 – Zend Engine 2.0 e• Sólido modelo de OO

2004

• PHP 5.3 – Funções Anônimas e• Namespaces

2009

• PHP 5.4 – Traits

2012

Ok, chega de história... Vamos falar do HOJE!

2013

“I love Google’s stat, that 75 percent of the web runs PHP. No one knows the web better

than Google.”

http://venturebeat.com/2013/05/17/google-app-engine-finally-supports-php-the-language-that-runs-75-of-the-web/

Andi Gutmans - Zend

Google App Engine finally supports PHP

Porque PHP?

PHP é Open Source

Executado no Servidor

Programação Funcional

Suporte Completo a Programação OO

PHP usa uma mistura de interpretação e compilação

Fracamente TipadaAssim como Javascript, Ruby e Python

NamespacesPHP >= 5.3

TraitsPHP >= 5.4

ComposerGerenciador de Dependência para PHP

Servidor Web EmbutidoPHP >= 5.4

Ok, chega de teoria...

Vamos praticar!!

Preparar o Ambiente

1º Passo

Use a última versão estávelhttp://www.php.net/downloads.php

Performance entre versões

PHP 5.1.6 PHP 5.2.17 PHP 5.3.14 PHP 5.4.40

1

2

3

4

5

3.9732 4.1048

2.8

2.2511

No WindowsBaixar arquivo ZIP

Descompactar no c:\phpAbrir “Bloco de Notas” e digitar:

C:\php\php –S localhost:8000 –t c:\wwwSalvar arquivo na “Área de Trabalho” com o nome “servidor.bat”

(Não esquecer de alterar para todos os arquivos ao salvar no bloco de notas)

No LinuxNo console:

$ apt-get update$ apt-get install php55

Inicializar o Servidor WebNo console, acesse a pasta dos scripts php, depois digite:

> php -S localhost:8080

Criar o Script PHP

2º Passo

Bloco de Notas<?php echo ‘Hello World’; ?>

Salvar na pasta “www” como “index.php”

Executar o Script PHP

3º Passo

Navegador WebAcessar:

http://localhost:8000/index.php

PHP Básico

Tipos Primitivos

• Boolean• Integer• Float• String• Array• NULL• Object

Boolean

<?php

$variavel = true;$variavel = false;

$variavel = (50 == '50'); // true $variavel = (50 != '50'); // false

$variavel = (50 === '50'); // false$variavel = (50 !== '50'); // true

Integer e Float<?php

$variavel = 50; // decimal $variavel = -123; // número negativo $variavel = 0123; // octal $variavel = 0x1A; // número hexadecimal (26 decimal)

$variavel = 1.234; // ponto flutuante$variavel = 1.2e3; // 1,2³

StringAspas Simples

<?php

echo ‘essa é uma simples string';

echo ‘Além disso, você pode embarcar novas linhas nas strings, esse é um caminho legal de fazer';

// Outputs: Arnold once said: "I'll be back" echo 'Arnold once said: "I\'ll be back"';

<?php

// Outputs: Você deletou C:\*.*? echo ‘Você deletou C:\\*.*?';

// Outputs: Você deletou C:\*.*? echo ‘Você deletou C:\*.*?';

// Outputs: Isso não vai criar: \n uma nova linha echo ‘Isso não vai criar: \n uma nova linha';

// Outputs: Variáveis não funcionam $expand $either assim echo ‘Variáveis não funcionam $expand $either assim';

StringAspas Simples

<?php

$variavel = 'Legal';

// Outputs: Variáveis funcionam assim: Legal echo “Variaveis funcionam assim: $variavel”;

StringAspas Duplas

Array

<?php

$array = array("foo", "bar", "hello", "world");$array = ["foo", "bar", "hello", "world"]; // PHP >= 5.4

ArraySintaxe:

array( key => value, key2 => value2, key3 => value3, ...)

<?php

$variavel = array(      "chave1" => "valor1",      "chave2" => "valor2", );

// as of PHP 5.4 $variavel = [      "chave1" => "valor1",      "chave2" => "valor2", ];

Array

<?php

$array = array(      "foo" => "bar",      "bar" => "foo",      100 => -100,      -100 => 100, ); var_dump($array);

Saída:

array(4) { ["foo"]=> string(3) "bar" ["bar"]=> string(3) "foo" [100]=> int(-100) [-100]=> int(100)

}

Array<?php

$variavel = array(5 => 1, 12 => 2); $variavel[] = 56 // Isso é o mesmo que $variavel[13] = 56; $variavel["x"] = 42; // Isso adiciona um novo elemento // com a chave "x"

unset($variavel[5]); // Isso remove o elemento do array unset($variavel); // Isso delete o array

NULL

<?php

$variavel = NULL;$variavel = Null;$variavel = null;

Constantes

Funções<?php

function helloWorld() { echo 'Hello World'; } helloWorld(); // Hello World

function maiusculo($texto) { return strtoupper($texto); } echo maiusculo('jonata weber'); // JONATA WEBER

Funções AnônimasLambda e Closure

Operadores Aritméticos

Operadores Lógicos

Operadores de String

Operadores de Atribuição

Incremento / Decremento

Exercício 1

Faça um script em PHP que leia três notas de um aluno e calcule a média aritmética deste aluno.

• Deverá ser uma função que receba três parâmetros float (ou um array)

• A função deverá retornar a média aritmética do aluno em float

Exercício 2

Faça um script em PHP que converta HORAS em SEGUNDOS.

• Deverá ser uma função que recebe um número inteiro em horas, ex: 20

• A função deverá retornar um inteiro em segundos, ex: 72000.• O script deverá imprimir o resultado no seguinte formato:

• 20 horas têm 72000 segundos

IF / ELSEIF / ELSE

Operador Ternário

WHILE / DO-WHILE

FOR / FOREACH

FOREACH

SWITCH

Include / Requirearquivo1.php

arquivo2.php

IncludeExibe um “Warning” e não interrompe a execução

Warning: include(arquivo3.php): failed to open stream: No such file or directory in /Users/jweber/dev/projects/php/arquivo2.php on line 3

Warning: include(): Failed opening 'arquivo3.php' for inclusion (include_path='.:') in /Users/jweber/dev/projects/php/arquivo2.php on line 3

Fatal error: Call to undefined function dobrar() in /Users/jweber/dev/projects/php/arquivo2.php on line 5

RequireExibe um “Fatal Error” e interrompe a execução

Warning: require(arquivo3.php): failed to open stream: No such file or directory in /Users/jweber/dev/projects/php/arquivo2.php on line 3

Fatal error: require(): Failed opening required 'arquivo3.php' (include_path='.:') in /Users/jweber/dev/projects/php/arquivo2.php on line 3

Prática!

FizzBuzz

Neste problema, você deverá exibir uma lista de 1 a 100, um em cada linha, com as seguintes exceções:

• Números divisíveis por 3 deve aparecer como 'Fizz' ao invés do número;

• Números divisíveis por 5 devem aparecer como 'Buzz' ao invés do número;

• Números divisíveis por 3 e 5 devem aparecer como 'FizzBuzz' ao invés do número’.

Prática!

• Site oficial do PHP – http://php.net• PHP The Right Way - http://www.phptherightway.com/• Wikipédia - http://pt.wikipedia.org• TuxRadar - http://www.tuxradar.com/practicalphp• Servidores da Web - http://informatica.hsw.uol.com.br/servidores-da-web.htm• http://www.lornajane.net/posts/2012/php-5-4-benchmarks

Referências