Symfony 500million

Desde o lançamento do Symfony 2.0 (28 de julho de 2011) os pacotes dos componentes do framework já foram baixados mais de 480 milhões de vezes. E para acompanhar essa marca chegar a 500mi foi lançada uma página com o contador de downloads (apenas downloads via Composer):

https://symfony.com/500million

De acordo com a página, seguindo a taxa de download atual, a marca de 500 milhões de downloads será alcançada no dia 26 deste mês às 06h34 (horário de Brasília).

E as melhores fotos publicadas no Twitter com a hashtag #500million serão premiadas (conforme publicação no blog oficial).

Fonte: http://symfony.com/blog/the-road-to-500-million-symfony-downloads

Crunz

Crunz é um agendador de tarefas periódicas escrito em PHP. Possibilitando configurar as tarefas a serem executadas através de uma API fluente.

<?php

use Crunz\Schedule;

$schedule = new Schedule();
$schedule->run('cp project project-bk')       
         ->daily()

return $schedule;

E por fim adicionar uma única entrada na crontab para para executar o Crunz a cada minuto:

* * * * * /project/vendor/bin/crunz schedule:run

Para visualizar maiores informações sobre a biblioteca é só acessar a página do projeto no Github.

PHP 7.1 Alpha

Ontem foi lançada a primeira versão alpha do PHP 7.1.0.

The PHP development team announces the immediate availability of PHP 7.1.0 Alpha 1. This release marks the beginning of the first minor release in the PHP 7.x series. All users of PHP are encouraged to test this version carefully, and report any bugs and incompatibilities in the bug tracking system.

Lembrando sempre que é uma versão prévia e que não deve ser utilizada em produção.

Fonte: http://php.net/archive/2016.php#id2016-06-09-1

Mudanças PHP 7.1

Entre as alterações previstas para a versão 7.1 do PHP, as que mais me chamaram atenção são:

Catching Multiple Exception Types

Atualmente caso queira tratar mais de um tipo de exceção, deve replicar o bloco catch:

<?php

try {
   // Some code...
} catch (ExceptionType1 $e) {
   // Code to handle the exception
} catch (ExceptionType2 $e) {
   // Same code to handle the exception
} catch (Exception $e) {
   // ...
}

Já de acordo com a RFC aprovada, em cada catch é possível interceptar mais de um tipo de exceção:

<?php

try {
   // Some code...
} catch (ExceptionType1 | ExceptionType2 $e) {
   // Code to handle the exception
} catch (\Exception $e) {
   // ...
}

Void Return Type

Essa alteração é praticamente uma estenção do que foi introduzido no PHP 7.0, que é a definição de tipo de retornos em funções. Só que agora estendendo para void, que deixa explícita uma função sem retorno.

function should_return_nothing(): void {
    return 1; // Fatal error: A void function must not return a value
}

function lacks_return(): void {
    // valid
}

Generalize support of negative string offsets

Habilita acesso a um caracter individual da String através de valores negativos.

$str='abcdef';
var_dump($str[-2]); // => string(1) "e"

$str{-3}='.';
var_dump($str);     // => string(6) "abc.ef"

var_dump(isset($str{-4}));  // => bool(true)

var_dump(isset($str{-10})); // => bool(false)

Support Class Constant Visibility

Permite adicionar modificador de acesso nas constantes da classe. Caso o modificador seja ocultado o valor padrão será public.

class Token {

    // Constants default to public
    const PUBLIC_CONST = 0;

    // Constants then also can have a defined visibility
    private const PRIVATE_CONST = 0;
    protected const PROTECTED_CONST = 0;
    public const PUBLIC_CONST_TWO = 0;

    //Constants can only have one visibility declaration list
    private const FOO = 1, BAR = 2;
}

Para mais detalhes sobre as mudanças no PHP 7.1:

Deptrac

No início do mês foi anunciado no blog do Symfony uma nova ferramenta da Sensio Labs. Trata-se do Deptrac, que é um analisador de código que verifica as dependências entre as camadas da sua aplicação e alerta em caso de quebra de alguma regra definida.

ModelController1

Deptrac is a static code analysis tool that helps to enforce rules for dependencies between software layers.

For example, you can define a rule like "controllers may not depend on models". To ensure this, deptrac analyzes your code to find any usages of models in your controllers and will show you where this rule was violated.

Fonte: http://symfony.com/blog/clean-software-architecture-with-deptrac

NFePHP

API para comunicação entre o emitente de NFe e os serviços dos SEFAZ estaduais. Inteiramente construído em PHP, roda em qualquer sistema operacional. NFePHP é uma API para gerenciamento das comunicações entre o emitente de NFe e os serviços dos SEFAZ estaduais. Inteiramente construído em PHP para rodar sob qualquer sistema operacional.

Fonte: https://github.com/nfephp-org/nfephp

Piwik

Piwik é uma alternativa opensource ao Google Analytics, escrito em PHP e que utiliza MySQL como base de dados.

Piwik is a full featured PHP MySQL software program that you download and install on your own webserver. At the end of the five minute installation process you will be given a JavaScript code. Simply copy and paste this tag on websites you wish to track and access your analytics reports in real time.

Piwik aims to be a Free software alternative to Google Analytics, and is already used on more than 1,000,000 websites. Privacy is built-in!