Curso PHP UNIFACS 2014.1 – 1a Aula

Post on 04-Jul-2015

371 views 4 download

description

Slides da primeira aula do curso PHP 2014.1.

Transcript of Curso PHP UNIFACS 2014.1 – 1a Aula

Curso PHPBaby Steps

@JonataWeber2014

2

Quem sou eu?

3

Quem são vocês?

4

Conteúdo Programático• Preparando o Ambiente

• PHP Básico

• PHP Orientado a Objetos

• PSR's

• Gerenciamento de

Dependência

• PHP em Linha de Comando

• Classes SPL

• Banco de Dados

• Caching

• Segurança

• Testes Automatizados

Sobre o Curso

Carga Horária: 32 horas

Custo: 2 kg por aula

10:30h às 17:30h (1 hora de almoço)

6

10/05/2014!

17/05/2014

24/05/2014

31/05/2014

07/06/2014

14/06/2014

Nossas Aulas

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 primeiraversã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/FI1996

• Deixou de ser BETA1997

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

• PHP 3 – 70.000 domínios

1998

• PHP 4 – Zend Engine2000

• 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 – Traits2012

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

2014

"HHVM is an open-source virtual machine designed for executing programs written in Hack and PHP. HHVM uses a just-in-

time (JIT) compilation approach to achieve superior performance while

maintaining the development flexibility that PHP provides."

hhvm.com

21

!class MyClass {! public function alpha(): int {! return 1;! }!! public function beta(): string {! return 'hi test';! }!}!!function f(MyClass $my_inst): string {! // Fix me!! return $my_inst->alpha();!}

Hack Language

Por que 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 Tipada!Assim como Javascript, Ruby e Python

Namespaces!PHP >= 5.3

Traits!PHP >= 5.4

Composer!Gerenciador de Dependência para PHP

Servidor Web Embutido!

PHP >= 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!

http://windows.php.net/download.php!

Performance Entre Versões!(menor é melhor)

No WindowsBaixar arquivo ZIP!

Descompactar na pasta c:\php55!Adiciona-lo à variável de ambiente PATH

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:8000

Criar o Script PHP

2º Passo

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

Salvar na pasta “c:\php55\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³ !

String!Aspas 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';

String!Aspas Simples

<?php !!$variavel = 'Legal'; !// Outputs: Variáveis funcionam assim: Legal echo “Variaveis funcionam assim: $variavel”;

String!Aspas 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ônimas!

Lambda e Closure

Operadores Aritméticos

Operadores Lógicos

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'.

Loja de Tintas

Faça um programa para uma loja de tintas. O programa deverá pedir o tamanho em metros quadrados da área a ser pintada. Considere que a cobertura da tinta é de 1 litro para cada 3 metros quadrados e que a tinta é vendida em latas de 18 litros, que custam R$ 80,00. Informe ao usuário a quantidade de latas de tinta a serem compradas e o preço total. !Obs.: Somente são vendidos um número inteiro de latas.

Sequência de Fibonacci

A sequência de Fibonacci é a seguinte: 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, ... Sua regra de formatação é simples: os dois primeiros elementos são 1; a partir de então, cada elemento é a soma dos dois anteriores. Faça um algoritmo que leia um número inteiro calcule o seu número de Fibonacci. F(1) = 1, F(2) = 1, F(3) = 2, F(4) = 3, etc.

• 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