Benchmarking Laravel, Symfony, & Zend

Post (inglês) demonstrando um benchmark entre os frameworks Laravel, Symfony e Zend.

A variety of benchmarks comparing PHP frameworks float around the web. However, they are often comparing “apples” to “oranges”. In particular, I want to focus on Laravel, Symfony, and Zend and why these three frameworks are often benchmarked incorrectly against each other.

Fonte: https://medium.com/@taylorotwell/benchmarking-laravel-symfony-zend-2c01c2b270f8

Tags: benckmark, laravel, symfony, zend, framework

PHP Middleworld

PHP Middleworld é um site que facilita a busca por implementações de middleware da PSR-7 para serem utilizados em frameworks compatíveis.

What is middleware?

In the realm of web application development Middleware refers to functions wrapped around business logic. They rely upon the decorator pattern and are composed in a sort of layered stack. You could think of them as onion layers, with your business logic residing at the innermost stratum (more on Wikipedia).

Several modern PHP frameworks (such as Zend Expressive and Slim) embrace such framework-agnostic, reuse-oriented paradigm, wholly supporting PSR-7 compliant middleware.

Goal for PHP Middleworld is collecting all available PSR-7 compliant middleware and provide a unique, consistent repository, encouraging middleware reuse and exchange among PHP developers.

Visualizar todos os middlewares disponíveis: http://www.php-middleworld.com/explore

Tags: middleware, psr-7, interface, http

Mailer RCE Flaw Vulnerability

No final do ano passado foram encontradas falhas RCE (Remote Code Execution) nas seguintes bibliotecas: PHPMailer (até v5.2.20) SwiftMailer (até v5.4.4) e Zend-mail (até v2.4.10).

Maiores detalhes:

  • PHPMailer < 5.2.18 Remote Code Execution (CVE-2016-10033)
  • PHPMailer < 5.2.20 Remote Code Execution (CVE-2016-10045 / escapeshell bypass)
  • SwiftMailer <= 5.4.5-DEV Remote Code Execution (CVE-2016-10074)
  • Zend Framework / zend-mail < 2.4.11 - Remote Code Execution (CVE-2016-10034)

Tags: rce-flaw, phpmailer, swiftmailer, zend-mail, mail

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