PsySH

PsySH é um console interativo para desenvolvimento PHP muito semelhante ao console do Python.

psysh

A runtime developer console, interactive debugger and REPL for PHP.

Instalação

$ wget https://git.io/psysh
$ chmod +x psysh

Uso

$ ./psysh

Após executar o comando psysh iniciará o console interativo. Para saber mais sobre as funcionalidades acesse o site do projeto: http://psysh.org/#features

Tags: psysh, console, repl, debugger

Design Patterns PHP

Esta é uma coleção de padrões de projetos conhecidos e alguns códigos de exemplo de como implementá-los em PHP. Todo padrão tem uma pequena lista de exemplos (muitos deles vindos do Zend Framework, Symfony2 ou Doctrine2 já que tenho mais familiaridade com eles

Eu acredito que o problema com os padrões é que muitas pessoas os conhecem mas não sabem quando aplicá-los

Tags: design, pattern, doc

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

Tags: symfony, components, 500million

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.

Tags: crunz, cron, job

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

Tags: php, php71, release

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:

Tags: php, php7.1