Por que PHP?
-
Upload
anderson-casimiro -
Category
Technology
-
view
81 -
download
1
Transcript of Por que PHP?
Por que PHP?Para estudar, para trabalhar, para viver…
Duodraco (a.k.a Anderson Casimiro)
Por que?
Fácil?
Robusta?
Não dói no bolso?
Plataforma?
Comunidade?
Mas antes de começarmos…
“Tecnologias de Desenvolvimento vão muito
além do Código, devendo ser avaliadas pelo Ecossistema que
as suporta”
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)
Rasmus (O Criador), juntou-se a Zeev e Andi em 1997 e no ano seguinte lançaram o PHP 3
Em 2000 foi lançado o PHP4 e com ele todo um ecossistema, com QA, extensões, documentação...
Obviamente, nem tudo eram flores...
Mas isso é passado...
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
PHP é facil de aprender?
<?php$var = [ "Salve", "Hacker", "House"];echo implode(" ", $var);
localhost
http://localhost
Salve Hacker House
<?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;
}
<?php
function soma($operador, $operando){
return $operador + $operando;
}
<?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
<?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;}
<?phpdeclare(strict_types = 1);namespace HackerHouse\Duodraco\Sistema\Data;
trait LoggerTrait{ public function log(string $message):bool { return syslog(LOG_CRIT, $message); }}
Fazendo uma aplicação 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…
{ "name": "duodraco/hh", "type": "project", "license": "MIT", "require": { "php": "^7.0", "respect/rest": "0.6.0" }, "autoload":{ "psr-4":{ "HH\\":"library/HH" } }}
composer.json
<?phprequire __DIR__."/../application/bootstrap.php";
web/index.php
<?phprequire_once __DIR__.'/../vendor/autoload.php';$router = new Respect\Rest\Router;$router->any('/',"HH\\Duodraco\\Command\\Index");
application/bootstrap.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
$ 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]: /
localhosthttp://localhost:32768
Olá Hacker House!
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
Servidor Web
Aplicações
Empresas
Comunidade
Laravel Brasil
❤
Blood has the same color for everyone