Looking for more information on how to do PHP the right way? Check out PHP: The Right Way

Matthew Weier O'Phinney:
The Future of Zend Framework
Oct 22, 2018 @ 09:42:07

Matthew Weier O'Phinney, (former) lead developer on the Zend Framework and Expressive projects, has a new post to his site looking at the future of the Zend Framework and how priorities have shifted.

For the past thirteen years, I've been either consuming Zend Framework or directly contributing to it. Since 2009, I've operated as project lead, and, since then, shepherded the version 2 and 3 releases, added Apigility to the ZF ecosystem, and helped bring middleware paradigms to the mainstream by assisting with the creation of Stratigility and coordination of the Expressiveproject.

[...] In the last three years, I have performed this work under the umbrella of Rogue Wave Software, who acquired Zend in 2015. However, Rogue Wave has recently made a strategic decision to focus its efforts on the Zend Server product of the Zend portfolio.

He also points out that the team largely responsible for the framework and building it over the years (himself, Enrico Zimuel, Zeev Suraski and Dmitry Stogo) will be leaving Rogue Wave and looking for other employment. Don't worry Zend Framework fans - they're going to do everything they can to keep the framework and its ecosystem alive! They're already looking for other sponsors (corporate or otherwise) so let Matthew know if you might be able to help!

tagged: zendframework future roguewave refocus framework ecosystem

Link: https://mwop.net/blog/2018-10-17-long-live-zf.html

Symfony Blog:
New in Symfony 4.2
Oct 05, 2018 @ 12:06:50

Over the past several weeks the Symfony project blog has released a series of posts detailing new features in the 4.2 release of the framework. Here's the current listing of those posts:

Each post includes a summary of the changes or additions and some example code and configuration showing it in use.

tagged: symfony framework feature component update addition list

Link: https://symfony.com/blog/

TJ Miller:
Verifying Laravel Version Compatibility
Sep 24, 2018 @ 10:45:58

TJ Miller has written up a post for his site sharing a method he's created to verify the compatibility of a package in Laravel based on the version of Laravel installed.

I’ve been working with Honeybadger to build a new set of PHP integrations. I would like to write more about that soon, however, I feel like I’ve stumbled across something that could be useful to others. I wanted to share it as soon as I could.

For the Laravel package, I was aiming for Laravel 5.5 and newer support as it is the latest LTS version. [...] In hindsight, I don’t think that I actually ever tested it against a 5.5 install. I relied on the CI process to make those verifications for me.

[...] As Laravel 5.7 is now out, I needed to add support to both the package’s composer configuration and verification in CI. [...] Now that I am supporting three versions I felt that I needed a more specific way of verifying compatibility with different versions of Laravel.

He shares his initial version of his Travis-CI configuration, running tests on PHP 7.1 and 7.2 with the prefer-lowest flag. In order to make it easier, he updated this based on what he'd seen in other packages: adding a matrix that runs PHP 7.1 through 7.3 against versions 5.5.x, 5.6.x and 5.7.x to ensure compatibility across all variations. His resulting build looks something like this.

tagged: verify laravel version compatibility travisci multiple language framework

Link: https://blog.tjmiller.me/verifying-laravel-version-compatibility

Laravel News:
Laravel 5.7 Guest User Gates
Sep 06, 2018 @ 10:49:45

On the Laravel News site they highlight a change in the way that the "gates" handling works in the v5.7 release of the popular framework. In this change you can now allow "guest" users into certain parts of your system.

In Laravel 5.6 and below authorization gates and policies automatically return false for unauthenticated users. New in Laravel 5.7, you can now allow guests to go through authorization checks by using a nullable type-hint or setting the default value as null:

[...] By using a nullable type hint the $user variable will be null when a guest user is passed to the gate, and you can then make decisions about authorizing the action. If you allow nullable types and return true, then the guest will have authorization.

The post includes a code snippet showing how to put it to use and the resulting 403 page they would get otherwise. You can find out more about other new features of Laravel v5.7 in this other article.

tagged: laravel gate user tutorial nullable feature framework

Link: https://laravel-news.com/laravel-5-7-guest-user-gates-policies

Laravel News:
Laravel Nova is Now Available
Aug 23, 2018 @ 09:15:15

As is mentioned in this new post from the Laravel News site, the latest product in the Laravel ecosystem - Laravel Nova - is now available for purchase.

We expected a Nova release at Laracon EU 2018 around the same time that Laravel 5.7 is due out. In an unexpected move (and in light of many people wanting to get their hands on Nova early) Taylor decided to ship Nova.

[...] Laravel Nova works with both Laravel 5.6 and the upcoming release of Laravel 5.7, so rest assured that it works with the latest stable version.

So what's Nova? It describes itself as "a beautifully designed administration panel for Laravel. Carefully crafted by the creators of Laravel to make you the most productive developer in the galaxy." It provides most of the functionality you'd expect from an administration panel including user management, model (resource) details, metrics and the ability to extend via custom functionality. The per-site pricing is relatively affordable and has two levels: Solo for $99 and Pro for $199.

tagged: laravelnova laravel administration panel framework product release

Link: https://laravel-news.com/laravel-nova-release

Laravel News:
Security Release - Laravel v5.6.30 and v5.5.42 have been released
Aug 09, 2018 @ 09:34:59

On the Laravel News site they've posted an announcement recommending all Laravel 5.6.x and 5.5.x users upgrade to the latest release (5.6.30 & 5.5.42) due to a security issue dealing with the APP_KEY value.

Laravel 5.6.30 and Laravel 5.5.42 have both been released to fix a security issue and is recommended that all users upgrade as soon as possible.

This update also includes changes to cookie encryption and serialization logic. In addition to the upgrade, they also recommend rotating the key if you believe any malicious user (or former developer/employee) had access to it. The upgrade guide has the information you need to make the update to your application.

tagged: laravel security release appkey cookie update framework

Link: https://laravel-news.com/laravel-5-6-30

Symfony Blog:
Creating and updating Symfony projects much faster
Jul 13, 2018 @ 09:58:58

On the Symfony blog there's a post covering some of the recent improvements in the framework that can help to make creating and updating Symfony projects faster via some recent changes speeding up the Composer installation.

A few years ago, we introduced the Symfony Installer as the fastest way to create new Symfony projects. While Composer took up to several minutes to create a new project, Symfony Installer did the same in less than ten seconds.

The trick was that the installer downloaded a ZIP archive with all the dependencies required by the specific Symfony version you were installing, so it was not necessary that Composer resolved the project dependencies.

However, with the release of Symfony 4 we deprecated the Symfony Installer in favor of Composer, because we wanted to use standard development tools as much as possible. Sadly this made creating new Symfony projects slower and, in some cases, it triggered "out of memory" exceptions while Composer was resolving the dependencies.

The post talks about the changes they made to the Composer installation process, mentioning the two major changes: including a composer.lock to prevent version resolution and removal of all legacy Composer tags. They also share some benchmarks for the installation both before and after the changes showing a jump of at least ten seconds post-changes.

tagged: symfony project speed install composer lock tags framework

Link: https://symfony.com/blog/creating-and-updating-symfony-projects-much-faster

Matt Sparks:
Building a PHP Framework: Part 7 – The Container
Jul 09, 2018 @ 12:33:16

Matt Sparks has posted the next tutorial in his "Building a PHP framework" series to his site today. In this latest article (part seven in the series) he focuses on building the container to handle dependencies.

Part 6 began our discussion of PHP containers. Today, I’ll be going into greater detail of the subject and, along with that, I’ll run down the work done so far on the Analyze container.

A huge debt of gratitude goes how to the folks behind the PHP League Container and others. I’ve learned a ton studying their code.

He then walks through the use of the container he created, Analyze/Container, to create and extract a Carbon instance. He then covers how the container is working behind the scenes to initialize the instance complete with dependencies (and optional arguments).

tagged: series part7 build framework container dependency tutorial

Link: https://developmentmatt.com/building-a-php-framework-part-7-the-container/

Christoph Rumpel:
Using Facebook Messenger Quick Replies with BotMan
Jul 03, 2018 @ 10:53:08

Christoph Rumpel, lead developer on the BotMan chatbot project, has a new tutorial posted to his site showing how to use Facebook Quick Replies with a BotMan instance.

I guess you already used quick replies for text buttons, right? But did you know that you can ask the user for email, phone number, and current location? It is time to give you a refresh of Facebook Messenger quick replies and how they work in the BotMan chatbot framework.

The post includes a video of the process of integrating these quick replies but also steps through all of the code required. Adding the replies is as easy as using the Button functionality included with the package and adding listeners. The tutorial also shows how to use them in conversations (rather than just one-off calls). It also provides a more "real world" example of asking the user for location, phone number and email with quick replies.

tagged: botman chatbot framework tutorial facebook messenger quickreply button

Link: https://christoph-rumpel.com/2018/07/using-facebook-messenger-quick-replies-with-botman

Matthieu Napoli:
Serverless Laravel
Jun 05, 2018 @ 11:53:36

In a new post to his site Matthieu Napoli shows how, with the help of the Bref package, to run a serverless Laravel instance. This is a continuation from his previous post covering the use of serverless functionality for running plain PHP.

Serverless basically means “Running apps without worrying about servers”. The main difference with a traditional hosting is that you do not maintain the servers and reserve their capacity. They are scaled up or down automatically and you pay only for what you use.

[...] Serverless hosting has the advantages of scaling very well since there are (theoretically) no limits. It can also help optimize costs by avoiding paying for unused server resources. You can read more about advantages and drawbacks here.

After briefly introducing what "serverless" computing is, he dives right into the creation of the first lambda on AWS. He then goes through the process of creating the new Laravel project, installing and configuring Bref, and wrapping the Laravel functionality in its HTTP handler. Next, he shares an example of the serverless.yml configuration, how to set up the file storage (for things like sessions and cache) and configure the application to run correctly on the lambda. The post finishes out with a look at setting up the logging, session handling and routing before finally deploying the app using Bref's own command.

tagged: laravel serverless tutorial bref framework application lambda aws

Link: http://mnapoli.fr/serverless-laravel/