10 novidades do PHP 7

O PHP 7 deve ser lançado até o final desde ano de 2015. Há muitas novidades. Mostro aqui 10 delas, inclusive a melhoria no desempenho

A versão Release Candidate (RC) do PHP 7 foi lançada no dia 21 de agosto. Sendo uma versão RC, não haverá implementações novas no PHP 7.0, apenas correções de bugs.

Vou apresentar aqui algumas novidades e recursos novos desta versão do PHP.

1. Desempenho Fantástico

O PHP 7 teve seu motor remodelado. Com isso, houve um grande ganho de desempenho.

Em alguns casos, é possível alcançar até 9 vezes mais velocidade. Mas esse número pode variar conforme a plataforma e a aplicação utilizada nos testes.

Eu utilizei o script para benchmark criado pela própria equipe do PHP, disponibilizado junto com o código-fonte da linguagem. Em comparação com a versão 5.6, consegui aproximadamente 9 vezes mais velocidade usando o PHP 7. Expliquei esse teste com mais detalhes neste meu artigo.

  1. MySQL Removido

Desde o PHP 5.5, as funções mysql_* eram consideradas obsoletas. Ou seja, tudo indicava que elas seriam removidas em um futuro bem próximo.

Pois bem. A hora chegou.

No PHP 7, as funções mysql_* (como mysql_connect(), mysql_query() e outras) deixaram de existir. Agora é preciso utilizar MySQLi ou PDO.

Recomendo utilizar PDO, por ser mais robusta e ser independente de SGBD.

  1. Funções ereg_* Removidas

Além das funções mysql_*, as funções ereg_* e eregi_* (como ereg(), ereg_replace, eregi() e outras) eram consideradas obsoletas desde o PHP 5.3.

Elas também foram removidas no PHP 7.

Agora é preciso usar as funções preg_*, da biblioteca PCRE, como preg_match e preg_replace.

As funções preg_* exigem delimitadores. Consequentemente, é possível utilizar modificadores, como “i” e “u”. O “i”, por exemplo, significa case-insensitive. Ou seja, se você usava eregi_*, passará a usar preg_*, sempre com o modificador “i”.

3. Erros Fatais e Exceções

No PHP 7, erros fatais passaram a ser Exceções. Isso quer dizer que eles podem ser tratados em bloco try/catch, sem interromper a execução do script.

Para exemplificar, vamos executar este código (no PHP 7, não no PHP 5):

ereg('^[a-z]$', 'php7');
echo "FIM";

Veremos este erro:

Fatal error: Uncaught Error: Call to undefined function ereg()...

E o texto “FIM” não será exibido. Isso ocorre pois a exceção interrompe o script.

Agora execute este script:

try
{
    ereg('^[a-z]$', 'php7');
}
catch (Error $e)
{
    echo "Ocorreu um erro: " . $e->getMessage();
}

echo "FIM";

Você verá a seguinte saída:

Ocorreu um erro: Call to undefined function ereg()
FIM

Ou seja, nossa aplicação tratou a exceção e a execução continuou normalmente.

4. Construtores do PHP 4 Obsoletos

Antes do PHP 5, os construtores recebiam o mesmo nome da classe. Por exemplo:

class ClassePHP4
{
    function ClassePHP4()
    {
        echo "Construtor chamado";
    }
}

Isso continuou funcionando no PHP 5, mas era recomendado usar o método __construct, ficando desta forma:

class ClassePHP5
{
    public function __construct()
    {
        echo "Construtor chamado";
    }
}

O PHP 7 recomenda que seja usado método __construct em vez do método com o mesmo nome da classe. Ou seja, o uso de construtores no padrão do PHP 4 continuará sendo possível, mas é um recurso obsoleto (Deprecated).

Para testar isso, vamos executar este código:

5. Indução de Tipos: Scalar Types

PHP é uma linguagem NÃO tipada.

Aos poucos ela vem ganhando alguns recursos que a torna fracamente tipada.

Isso significa que podemos criar códigos mais consistentes e menos suscetíveis a erros e problemas.

O PHP 5 já possui o recurso de Indução de Tipos.

É possível definir alguns tipos para parâmetros de métodos e funções. Mas só é possível definir dois tipos: arrays (o tipo “array”) e objetos (com o nome da classe).

A partir do PHP 7, poderemos usar outros tipos também: int, float, string e bool.

Esses tipos podem ser definidos nos parâmetros de funções e métodos, como já era feito no PHP 5. Mas agora há uma novidade: também poderemos definir o tipo do retorno.

6. Tipo de Retorno de Funções e Métodos

Seguindo a mesma ideia da Indução de Tipos que vimos anteriormente, o PHP 7 vai permitir definir o tipo de retorno de uma função ou método.

Basta seguir esta sintaxe:

function nomeFuncao() : tipo
{
    // corpo da função
}

Por exemplo:

function soma($x, $y) : float
{
    return $x + $y + 1.5;
}

E, claro, pode usar todos os tipos suportados: int, float, string, bool, array e objeto.

7. Novo Operador Spaceship (<=>)

Esse operador recebe o nome de “Spaceship” em algumas outras linguagens, e é usado para comparação numérica.

Se você já usou a função strcmp(), com certeza vai entender esse operador sem dificuldades.

Mesmo se não usou, é simples de entender.

Veja estes exemplos:

var_dump(2 <=> 3); // retorna -1
var_dump(2 <=> 2); // retorna 0
var_dump(2 <=> 1); // retorna 1

Ou seja, o operador <=> retorna um destes 3 valores:

– retorna -1 quando o primeiro operando é menor que o segundo

– retorna 0 quando os dois operandos são iguais

– retorna 1 quando o segundo operando é maior que o primeiro

9. Null Coalesce Operator (operador ??)

O nome parece complicado, mas ele faz algo bem simples.

Ele é útil para verificar a existência de variáveis, como fazemos com valores de $_GET ou $_POST, usando isset.

Ele faz com que esta linha:

$email = $_POST['email'] ?? 'valor padrão';

… seja transformada nesta:

$email = isset($_POST['email']) ? $_POST['email'] : 'valor padrão';

Super simples!

10. Classes Anônimas

O PHP, a partir da versão 5.4, permite a criação de Funções Anônimas. Elas são úteis especialmente para criação de callbacks ou para usar em parâmetros de funções, como array_map().

A partir do PHP 7, podemos criar Classes Anônimas também.

Podemos, por exemplo, fazer uma função retornar uma classe, definida ns própria expressão return:

function createObject()
{
    return new class{
        public function test()
        {
            echo "test" . PHP_EOL;
        }
    };
}

$obj = createObject();
$obj->test();

Há outros casos de uso, como em testes de software.

Você pode ver a proposta e alguns casos de uso no RFC que descreve esse recurso.

Conclusão

O PHP 7 traz diversas novidades. E, se você seguia as Boas Práticas e padrões que o PHP recomendava, a partir da versão 5.5, provavelmente terá pouquíssimos problemas (ou nenhum) para migrar para o PHP 7.

Se quiser conhecer melhor essas novidades e algumas outras, criei um curso gratuito, onde mostro com mais detalhes cada um desses novos recursos. Também mostro como instalar o PHP 7, sem afetar a sua instalação atual do PHP 5.

Clique aqui e se inscreva no meu curso gratuito do PHP 7

Bons estudos e fique de olho no PHP 7!

fonte: https://tableless.com.br/10-novidades-do-php-7/

O que é Arduíno?

Arduíno é uma placa de prototipagem eletrônica de código aberto. O projeto, surgido na cidade de Ivrea, na Itália, em 2005, inclui hardware e software livre e visa oferecer ferramentas adaptáveis e de baixo custo para a criação de projetos interativos de diversas ordens.

Fazendo uma comparação tosca, uma placa Arduíno funciona como uma base de Lego sobre a qual o desenvolvedor junta várias peças e monta um protótipo. Uma placa Arduíno é composta, basicamente, por um controlador Atmel AVR de 8 bits, uma interface serial ou USB e alguns pinos digitais e analógicos.

Assim, a partir desses componentes, ela pode servir tanto para o desenvolvimento de projetos interativos como ser conectada a um outro computador. Em suma, o Arduíno é uma plataforma sobre a qual serão construídos outros equipamentos — e ele não deve ser confundido com o Raspberry Pi, equipamento visualmente semelhante a ele, mas que funciona como um computador de placa única.

Tudo aberto

O conjunto da obra é composto não somente pela parte de hardware, mas também pelo software. Ambos em código aberto, eles podem ser modificados conforme a necessidade do usuário — e basta programar usando o software do Arduíno para contar ao equipamento o que ele deve fazer.

A parte de software é desenvolvida por meio de linguagem C/C++ — e tudo isso acontece em um ambiente gráfico escrito em Java. Ele ainda traz um firmware embutido e que é carregado na memória ROM da placa.


Faça você mesmo

A base do Arduíno é justamente a ideia do “faça você mesmo”, também conhecido pela sigla em inglês DIY (de do it yourself). Como existem placas de diferentes tamanhos, elas podem ser adaptadas aos mais variados projetos, como é o caso do uso do Arduíno Gemma, usado para a criação de um dispositivo de computação vestível.

Outra aplicação já existente da plataforma Arduíno é o Casa Jasmina, um projeto de casa inteligente do futuro totalmente desenvolvido sobre software e hardware livre — ou seja, é tudo open source.

Inicialmente, o Arduíno foi criado para fins educacionais, para servir de base de projetos interativos em escolas. O sucesso foi tanto que ele chegou a vender 50 mil unidades de cada placa e ganhou até mesmo um documentário. A partir de então, o projeto foi crescendo e tomando novas feições.

No site oficial do Arduíno há informações completas e detalhadas sobre todos os modelos de placas existentes. Além disso, há kits e acessórios que também podem ser adquiridos para incrementar o trabalho com esta plataforma no desenvolvimento de um projeto.

Fontes: Arduino.cc, AddOhms/YouTube

fonte: https://canaltech.com.br/hardware/o-que-e-arduino/