Por que PHP?

41
Por que PHP? Para estudar, para trabalhar, para viver… Duodraco (a.k.a Anderson Casimiro)

Transcript of Por que PHP?

Page 1: Por que PHP?

Por que PHP?Para estudar, para trabalhar, para viver…

Duodraco (a.k.a Anderson Casimiro)

Page 2: Por que PHP?

Por que?

Fácil?

Robusta?

Não dói no bolso?

Plataforma?

Comunidade?

Page 3: Por que PHP?

Mas antes de começarmos…

Page 4: Por que PHP?

“Tecnologias de Desenvolvimento vão muito

além do Código, devendo ser avaliadas pelo Ecossistema que

as suporta”

Page 5: Por que PHP?

8 de Junho de 1995Nascia o Personal Home Page Tools(a.k.a PHP 1)

Pouco mais de um ano, o PHP tornou-se o PHP/FI (Forms Interpreter)

Page 6: Por que PHP?
Page 7: Por que PHP?

Rasmus (O Criador), juntou-se a Zeev e Andi em 1997 e no ano seguinte lançaram o PHP 3

Page 8: Por que PHP?

Em 2000 foi lançado o PHP4 e com ele todo um ecossistema, com QA, extensões, documentação...

Page 9: Por que PHP?

Obviamente, nem tudo eram flores...

Page 10: Por que PHP?

Mas isso é passado...

Page 11: Por que PHP?
Page 12: Por que PHP?

Abstract Syntax TreeSuporte completo a 64bitsGerenciamento de MemóriaThread Safety

PerformanceRemoção de problemas de APINovos OperadoresString UnicodeManipulação de ErrosClasses anônimasType HintingReturn Types

.1

Page 13: Por que PHP?

PHP é facil de aprender?

Page 14: Por que PHP?

<?php$var = [ "Salve", "Hacker", "House"];echo implode(" ", $var);

localhost

http://localhost

Salve Hacker House

Page 15: Por que PHP?

<?php

$variavel = new stdClass();

$array = [

"string" => 'string',

"int" => 123,

"float" => 1234.99,

"bool" => false

];

const IMPOSSIBLE = "impossível!";

if ($array['string'] === $variavel) {

echo IMPOSSIBLE, PHP_EOL;

}

Page 16: Por que PHP?

<?php

function soma($operador, $operando){

return $operador + $operando;

}

Page 17: Por que PHP?

<?php

$multiplicacao = function (int $multiplicando, int $multiplicador): int {

return $multiplicando * $multiplicador;

};

$fatorial = function (int $numero) use ($multiplicacao): int {

for($nExclamacao = 1;$numero > 0; $numero--){

$nExclamacao = $multiplicacao($numero,$nExclamacao);

}

return $nExclamacao;

};

echo $fatorial(7); //5040

Page 18: Por que PHP?

<?phpdeclare(strict_types = 1);namespace HackerHouse\Duodraco\Sistema\Data;

class Contato implements \JsonSerializable{ protected $id; protected $nome; public function __construct(int $id, string $nome) { $this->id = $id; $this->nome = $nome; } public function jsonSerialize() { return (object)["id" => $this->id, "nome" => $this->nome]; }

use LoggerTrait;}

Page 19: Por que PHP?

<?phpdeclare(strict_types = 1);namespace HackerHouse\Duodraco\Sistema\Data;

trait LoggerTrait{ public function log(string $message):bool { return syslog(LOG_CRIT, $message); }}

Page 20: Por que PHP?

Fazendo uma aplicação PHP

Page 21: Por que PHP?

$ mkdir ~/Workspace/hh & cd ~/Workspace/hh$ mkdir -p web application library/HH/Duodraco/Command$ touch web/index.php$ touch application/bootstrap.php$ touch library/HH/Duodraco/Command/Index.php$ vim composer.json…

Page 22: Por que PHP?
Page 23: Por que PHP?

{ "name": "duodraco/hh", "type": "project", "license": "MIT", "require": { "php": "^7.0", "respect/rest": "0.6.0" }, "autoload":{ "psr-4":{ "HH\\":"library/HH" } }}

composer.json

Page 24: Por que PHP?

<?phprequire __DIR__."/../application/bootstrap.php";

web/index.php

Page 25: Por que PHP?

<?phprequire_once __DIR__.'/../vendor/autoload.php';$router = new Respect\Rest\Router;$router->any('/',"HH\\Duodraco\\Command\\Index");

application/bootstrap.php

Page 26: Por que PHP?

<?phpdeclare(strict_types = 1);

namespace HH\Duodraco\Command;

use Respect\Rest\Routable;

class Index implements Routable{ public function get(): string { return "Olá Hacker House"; }}

library/HH/Duodraco/Command/Index.php

Page 27: Por que PHP?

$ mkdir ~/Workspace/hh & cd ~/Workspace/hh$ mkdir -p web application library/HH/Duodraco/Command$ touch web/index.php$ touch application/bootstrap.php$ touch library/HH/Duodraco/Command/Index.php$ vim composer.json…$ composer update -o --no-dev...$ php -S localhost:32768 -t webPHP 7.0.13 Development Server started at Sun Nov 27 22:35:33 2016Listening on http://localhost:32768Document root is /home/duodraco/Workspace/hh/webPress Ctrl-C to quit.[Mon Nov 14 22:35:39 2016] ::1:59506 [200]: /

Page 28: Por que PHP?

localhosthttp://localhost:32768

Olá Hacker House!

Page 29: Por que PHP?

Linguagem madura e poderosa

Paradigma Procedural

Paradigma Orientado a Objetos

Namespaces, Visibilidade, Traits

Paradigma Funcional

Lambdas, Closures, Currying

Generators (yield)

Type Hinting + Return types

Userland API

HTTP/2

Suporte completo a sistemas 64bits

Abstração para BD (PDO)

Streams

Unicode Escaping

Error Handling (Throwable)

Abstract Syntax Tree

Servidor Web embutido

Page 30: Por que PHP?

Servidor Web

Page 31: Por que PHP?
Page 32: Por que PHP?

Aplicações

Page 33: Por que PHP?

Empresas

Page 34: Por que PHP?

Comunidade

Page 35: Por que PHP?

Laravel Brasil

Page 36: Por que PHP?
Page 37: Por que PHP?

Page 38: Por que PHP?
Page 39: Por que PHP?
Page 40: Por que PHP?

Blood has the same color for everyone

Page 41: Por que PHP?

[email protected]/duodraco

#somostodosphp#comunidadefunciona

#manadapoderosa