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

Scotch.io:
What's New in Laravel 5.5
Jul 07, 2017 @ 13:07:47

The Scotch.io site has posted a new article sharing some of the new features and changes that are coming with Laravel 5.5, the next major release of the framework.

At the time of this writing, Laravel 5.5 is not released yet. It is slated, as the next major release, for release in July 2017. To play around with new features and changes, you need to grab the dev release of Laravel using this Laravel Installer command: laravel new project --dev

The article starts by pointing out that this version will require at least PHP 7.0, a supported and much more performant version of the language. It then covers the changes in this version including:

  • the reintroduction of the "Whoops" library for debugging/error handling
  • a change to vendor:publish to get a new provider prompt
  • email themes
  • automatic package discovery
  • error page design improvements
  • streamlined request validation
  • exception helper functions
  • model factory generators

Each of these items comes with screenshots or code examples showing the new feature at work. It also ends with a few miscellaneous updates mentioning changes in the CSRF handling and the return of a JSON stack trace for API calls.

tagged: laravel version feature update changes php7 v55 framework

Link: https://scotch.io/tutorials/whats-new-in-laravel-55

Laravel News:
Laravel 5.5 Pivot Casting
Jul 06, 2017 @ 09:15:36

On the Laravel News site there's a new post about a feature in the v5.5 release of the popular framework: pivot casting.

A new addition to Laravel 5.5 will add support for pivot table casts when inserting & updating data on an intermediate table model.

Currently, the $casts you set on a traditional model will work in both directions; any model that extends the EloquentModel class will look for a $casts property and convert the specified attributes to a data type when reading and writing.

[...] Now with Laravel 5.5, the $casts property on the EloquentModel and EloquentRelationsPivot classes will behave the same. Laravel will “respect” your casts on both, whether you’re reading, inserting or updating data.

tagged: laravel pivot casting feature insert update

Link: https://laravel-news.com/laravel-5-5-pivot-casting

Fabien Potencier:
Symfony 4: Directory Structure Updates
Jul 05, 2017 @ 10:06:21

Fabien Potencier has a quick post to his site that may be of interests to the Symfony developers out there related to directory updates coming in Symfony 4:

After a long discussion in the community, the directory structure has been slightly changed.

etc/ was renamed to config/, and web/ to public/. My blog posts about Symfony 4 have just been updated to reflect these changes.

He also includes instructions about how, if you're already running a Symfony Flex application, you can make these changes manually including updating the Flex version.

tagged: symfony symfonyflex directory update project discussion

Link: http://fabien.potencier.org/symfony4-directory-structure-updates.html

Master Zend Framework:
How to Migrate from Zend Expressive Version 1 to 2 with Command-Line Tooling
Jun 27, 2017 @ 10:43:30

On the Master Zend Framework site Matthew Setter has written up a new tutorial showing you how to migrate from Zend Expressive v1 to v2 with the help of some command line tooling support provided as a part of recent updates to the project.

In part one of this series, we started learning about the tooling support available for Zend Expressive, provided by Zend Expressive Tooling There, we learned how we can use the package to create, register, and deregister middleware, and scaffold new modules. But that's only half of what the package can do.

Here, in part two, let's learn about the other half, which removes some of the heavy lifting required when migrating Zend Expressive applications from version one to two.

He first defines some of the main differences between the two versions, a checklist of things the tooling will help you more automagically update. He talks more specifically about migration support, moving to "programatic pipelines" in Expressive v2 and scanning for deprecated error middleware. There's also information about locating the legacy request and response handling and how they're refactored to the newer format.

tagged: tutorial zendexpressive zendframework migrate version update tooling commandline

Link: http://www.masterzendframework.com/tooling/migrating-to-version-2/

Zend Framework Blog:
Leverage Zend Component Plugin Managers in Expressive
May 19, 2017 @ 09:58:15

The Zend Framework blog has a new post from project lead Matthew Weier O'Phinney showing how you can use plugin managers in Expressive and how it can be used to integrate other components.

With the release of Expressive 2, one of the key stories was the ability to require ZF components within Expressive, and have their dependencies auto-wired into your application courtesy of the component installer.

However, we recently had a user in our Slack channel (need an invite?) indicating they were having issues with usage of custom validators, filters, and input filters. After a <a href=https://discourse.zendframework.com/t/validatormanager-not-calling-custom-validator-factory/109">more thorough writeup on our forums, I realized we'd missed something important when making these integrations, and set out to solve it.

The article then starts with the problem that they're trying to solve, mostly around configuration handling. The solution involved some work done on various packages (like zend-log, zend-filter and zend-form) to make the configuration loading a bit more automated (and with fallback handling).

tagged: zendexpressive module component manager update package

Link: https://framework.zend.com/blog/2017-05-18-plugin-managers.html

Laravel News:
Laravel 5.5 Gets Improvements with the Default Error Views
May 05, 2017 @ 10:55:31

On the Laravel News site there's a recent post showing a feature coming in version 5.5 of the framework that will help make creating error views easier:

Coming in Laravel 5.5 is a new and improved design for the error pages. The default errors will extend from an errors::layout file and get some small design additions over the current style with flexbox and a vertically centered message.

They compare the older version to the newer, cleaner one and how you can still, even in 5.5, have your own custom error pages named based on the HTTP error code (like 500.blade.php or 403.blade.php). They end the post covering the renderHttpException and how it determines which of the error templates to use.

tagged: laravel error template v55 update customize blade tutorial

Link: https://laravel-news.com/laravel-5-5-error-views

Freek van der Herten:
Dropbox will turn off v1 of their API soon. It’s time to update your PHP appli
Apr 24, 2017 @ 10:12:59

Freek van der Herten has a new post with both a reminder and a solution to an upcoming change from the Dropbox service: the disabling of their v1 API (and a PHP package you can use to be prepared).

Last year on 28th of June Dropbox deprecated v1 of their API. On the same date this year they will turn off all v1 endpoints. If you’re using using Flysystem, Laravel or the official PHP SDK to work with Dropbox, it’s the time to update.

Last week my company released a Dropbox API client and a Flysystem Dropbox adapter that both use v2 of the dropbox API. In this blogpost I’d like to explain how to install and use these packages.

He then shows you how to update your Flysystem adapters to use this new adapter for Dropbox - basically a simple code change once the package is installed. He then moves on to updating a Laravel application, configuring it's built-in file abstraction with the new adapter via a DropboxServiceProvider. The post ends with a bit talking about the update of other types of PHP applications (not using Flysystem) that could make use of other packages to make the required updates.

tagged: dropbox v1 adapter flysystem laravel tutorial update package

Link: https://murze.be/2017/04/dropbox-will-turn-off-v1-of-their-api-soon-its-time-to-update-your-php-application/

Michael Dyrynda:
Partial model updates in Laravel
Apr 06, 2017 @ 09:44:05

Michael Dyrynda has written up a post showing the Laravel users out there how to perform partial model updates making use of the "intersect" method.

Many Laravel developers would be familiar with the helpful only method found on the request object, which allows you to specify keys to pluck from the request. Not only does this simplify your workflow, it works quite nicely when completely unguarding your models by setting protected $guarded = [];

[...] For newcomers to Laravel, you might find this suggestion dangerous, but using only means you will only pass the desired input to your model irrespective of what was passed via the request itself. [...] Adam Wathan tweeted about an approach he uncovered whilst helping somebody out when approaching partial model updates.

He shows how the method works by starting with a traditional update method call that reassigns model properties based on input (using "has" checks to ensure the property exists). He then refactors it to use the intersect method and replaces about twenty lines of code with one. He talks about the differences between using only and intersect and offers a caveat to using intersect around preserving null values on properties.

tagged: partial model update intersect only request tutorial refactor

Link: https://dyrynda.com.au/blog/partial-model-updates-in-laravel

Delicious Brains Blog:
Hosting WordPress Yourself 2017 Update
Mar 01, 2017 @ 10:10:26

The Delicious Brains site has posted the latest part in their "Hosting WordPress Yourself" series (originally started back in 2015). In this latest tutorial they update things based on the current status of the WordPress project and share some of the considerations that need to be made when self-hosting versus something like WordPress.com.

It’s been 2 years since I started writing the Hosting WordPress Yourself series, and in that time a lot has changed! If you had tried following along with the series recently you will probably have noticed that a few of the steps outlined in the articles no longer worked, or were no longer relevant. A few exciting new technologies and services have also been introduced over the last few years (e.g. PHP 7.1, Let’s Encrypt, HTTP/2) which can improve both the performance and security of your sites. As such, Brad suggested that I update the entire series to reflect what’s changed over the last couple of years.

The existing articles in this series have already been updated with the changes that follow. This article serves as a changelog and documents what’s changed in each article.

They then go through the major updates that need to be made to the previous advice covering including topics like:

  • Setting Up a Virtual Server
  • Installing Nginx, PHP and MariaDB
  • Server Monitoring and Caching
  • Cron, Email and Automatic Backups
  • Nginx Security Tweaks, WooCommerce Caching, and Auto Server Updates

Check out the full post for the complete advice.

tagged: hosting wordpress update 2017 tutorial series part8

Link: https://deliciousbrains.com/hosting-wordpress-2017-update/

TutsPlus.com:
Building Your Startup: Advanced Scheduling Commands
Jan 30, 2017 @ 10:56:17

The TutsPlus.com site has updated their "Building Your Startup" series with their latest tutorial showing you how to build advanced scheduling commands allowing for things like repeating meetings, updating the meeting details and rescheduling.

I also began to realize that the ability to adjust meetings easily after they've been scheduled could make or break the Meeting Planner brand. [...] In today's tutorial, I'll cover expanding the navigation bar using Bootstrap and the basics of building some of the advanced scheduling features within Meeting Planner. Next week, I'll review building the more complex feature for participants to request change(s) and for others to accept or decline them.

He starts with the frontend, updating the navigation bar to include links to other functionality for meeting changes, repeating and showing planning activities for the meeting. He uses Bootstrap's single-button dropdowns for this and includes the code to add them to the UI with a bit of code in the view. He then gets into the main functionality of these changes showing the code to:

  • make changes to a current meeting
  • reschedule a meeting
  • repeat a meeting
  • resend invitations

The next part in the series will take a look into social engineering and UX needs for the application along with some other smaller changes.

tagged: startup tutorial series advanced scheduling commands change update meeting

Link: https://code.tutsplus.com/tutorials/building-your-startup-advanced-scheduling-commands--cms-27075