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

Stefan Koopmanschap:
Sculpin and Docker
Mar 22, 2017 @ 12:49:05

Stefan Koopmanschap has written up a tutorial on his site introducing the use of Docker and Sculpin to create an easily reproducible and manageable blogging setup.

I've been running this blog on Sculpin for quite a while now, and I'm quite happy with how that works. We've been in a process of migrating some of our websites off a standard VPS towards a setup with Docker, Gitlab CI and Rancher. I've now migrated some websites, which is relatively easy, but most of those sites were dynamic PHP websites. Migrating a site that generates static HTML and running that is a slightly different thing. Here's how I ended up doing it.

First he covers his old setup - essentially the manual run of a shell command to generate the latest version of a the static Sculpin site. He decided to update the process and help makes things more automatic using Docker and a Gitlab pipeline flow. He then documents his attempts and configuration options as he built up the Docker configuration he wanted. This ultimately resulted in a Docker setup that installed PHP and Nginx to serve up the site, Composer to load in the required dependencies (like Sculpin) and the commands to "deploy" the latest version of the site publicly.

tagged: sculpin docker setup configuration tutorial dockerfile php7

Link: https://leftontheweb.com/blog/2017/03/18/sculpin-and-docker/

Simon Holywell:
PHP and immutability
Mar 22, 2017 @ 11:21:37

In a recent post to his site Simon Holywell covers immutability in PHP. PHP, by default, uses weak typing and doesn't support much in the way of immutability but Simon shows you a few ways you can get around this and make immutable objects you can use and extend.

Being a weakly typed dynamic language, PHP has not really had the concept of immutability built into it. We’ve seen the venerable define() and CONSTANTS of course, but they’re limited. Whilst PHP does ship with an immutable class as part of it’s standard library, DateTimeImmutable, there is no immediately obvious method to create custom immutable objects.

[...] It is possible to write your own immutables using some simple and sneaky PHP techniques though. We’re going to use a simplistic data requirement to make the examples in this article easier to follow. I’ll be using professional skateboarders and the tricks that they brought to the world.

He starts the article talking about immutability and how it relates back to the current (as of PHP 7) values supported in constants - scalars and arrays (no objects). He then starts on the code to create the base Immutable class that sets its values via the constructor. He then points out some of the common "work arounds" people use when trying to work with immutable objects and some techniques to help prevent it: the use of final, a "flag" preventing another constructor call, etc.

tagged: immutable tutorial technique php7 constant

Link: https://www.simonholywell.com/post/2017/03/php-and-immutability/

Zend Framework Blog:
PHP and SQL Server for Linux
Feb 15, 2017 @ 11:21:52

The Zend Framework blog has a new post from Enrico Zimuel talking about the use of SQL Server for Linux from inside a PHP-based application. This makes use of the preview release of SQL Server for Linux directly from Microsoft.

This week we tested the public preview of Microsoft SQL Server for Linux using PHP 7 with our component zendframework/zend-db.

Microsoft announced the availability of a public preview of SQL Server for Linux on the 16th of November, 2016. [...] Moreover, the performance of the new DBMS seems to be very impressive. Microsoft published a case study with 1.2 million requests per second with In-Memory OLTP on a single commodity server.

The tutorial shows you how to get the SQL Server software installed on a Ubuntu-based system and install it via apt-get. They also show how to install the command line tool for SQL Server and get the msodbcsql driver needed to make the connection. Finally they show how to set up the driver with PHP 7 (via PDO) and running the Zend/Db integration tests using a Vagrant-created and configured VM instance.

tagged: sqlserver linux tutorial php7 install configure vagrant microsoft

Link: https://framework.zend.com/blog/2017-02-14-php-sql-server-linux.html

Refactoring to PHP 7
Jan 31, 2017 @ 10:52:42

On thePHP.cc blog today there's a new post sharing some helpful hints related to refactoring your application to PHP 7 written up by a friend of the group, Tim Bezhashvyly.

Recently I have migrated a relatively large codebase from PHP 5.6 to PHP 7 and would like to share some of my learnings. To get the most out of this article, you should be familiar with scalar type declarations (and return type declarations). To learn about these and other features of PHP 7, I recommend the "PHP 7 Explained" eBook.

He makes the recommendation of a bold first step: enabling the strict typing on every file in your application to enforce the typing of all values. Next he recommends running your current test suite to see where the failures are. Changes are pretty high that you'll find issues with type switching and magic method handling. He suggests a method for migrating your code effectively to PHP 7: a test-driven migration. This focus works fine if your coverage is good but unless you're exercising all parts of your codebase things will unfortunately be missed.

He also points out some other changes you can make with this update including the removal of some PHPDoc annotations (you'll know the type for sure now) and modifications that may need to be made to current mock objects in your tests. There's a few other smaller things he recommends looking out for as well including the use of the "silencer" operator and exception changes.

tagged: refactoring php7 testdriven unittest testing migration strict types

Link: https://thephp.cc/news/2017/01/refactoring-to-php7

9 Things You Should Need to Know About PHP 7
Jan 27, 2017 @ 11:20:50

The Arpatech.com blog has a new post sharing their list of top nine things to know about PHP 7 with some brief explanations for each. It's not an in-depth coverage of the features in this latest major release of the language but it does give a nice overview for those not familiar with what really changed.

If you are a web developer or a website owner, and you love to use CMS that are PHP-enabled like WordPress, Drupal, Joomla or PHP timetable, PHP 7 which was released on 3 December 2015, is now ready for the production use.

Yes you heard it right! PHP 7 is out to use. We are going to tell all the great things you need to know about PHP 7.

They've included several types of topics in their list, both code and performance related:

  • PHPNG, the New Core
  • Double the Speed
  • New Spaceship (<=>) and Null Coalescing (??) Operators
  • Enables Accurate Type Declarations
  • Imports from the Same Namespace

Each item on the list comes with a brief summary of what the improvement offers and, in the case of code-related items, a quick snippet showing it in action.

tagged: php7 top9 list major release features improvements summary

Link: http://www.arpatech.com/blog/9-best-things-you-should-know-about-php7/

Derick Rethans:
Good Bye PHP 5
Jan 11, 2017 @ 10:13:53

On his site Derick Rethans has posted an announcement about a major change in the Xdebug project (a widely used PHP debugger) he leads, saying goodby to PHP 5.

A few days ago I merged a patch into on GitHub. Maintaining PHP 5 and PHP 7 support in one code base is not particularly easy, and even more complicated for something like Xdebug, with its deep interactions with PHP's internals.

As PHP 5.6's active support has ended on December 31st, I also felt it no longer needed to support PHP 5 with Xdebug any more. It saves more than 5000 lines of code.

He shares some of the responses to the change (via Tweets) from the community ranging from full support to outcry over the change. He points out that the current version of Xdebug (2.5) will continue to operate on PHP 5 systems but when Xdebug 2.6 rolls around, the 2.5 branch will only receive bugfixes and no new features. You can find out about those upcoming features here.

tagged: xdebug debugging tool php7 php5 upgrade support

Link: https://derickrethans.nl/xdebug-php5.html

PHP 5: Active Support Ends. Now what?
Jan 02, 2017 @ 12:54:03

The final day of 2016 has come and gone and with it came the end of active support for the PHP 5.6 series of releases. This also marks the end of active support for anything in the PHP 5.x major release and pushing on with PHP 7. In this post to thePHP.cc blog Sebastian Bergmann talks about what this means for you and the tools you use.

The active support by the PHP project for PHP 5.6, the final release series of PHP 5, ends today. What is "active support"? And what does it mean for you? To answer this, you need to understand PHP's release process.

He starts with the release schedule and when it shifted from the "consensus based model" over to an official process, introducing more formality to the whole process (in 2012). He mentions two key terms to the process: "active support" and "security support". PHP 5.6 has moved past active support and is now in the the security support phase with only security fixes to be released from here on out. Sebastian then talks about what this means for your current code and, if you're still running on PHP 5.6, what you should do to come up to speed with PHP 7.x. He lists some of the projects that are moving into the world of PHP 7 only including PhpSpec 4.0, Laravel 5.5 and Symfony 4.

tagged: php5 active support end security php7 migration upgrade

Link: https://thephp.cc/news/2016/12/php-5-active-support-ends-now-what

Freek Van der Herten:
Symfony and Laravel will require PHP 7 soon
Dec 19, 2016 @ 10:36:19

As Freek Van der Herten mentions in this recent post to his site, it was announced by both Fabien Potencier (Symfony) and Taylor Otwell (Laravel) that the upcoming versions of the frameworks - Symfony 4 and Laravel 5.5 - will require PHP 7 by default.

According to Fabien Potencier, lead of the Symfony project, the next major version of Symfony, to be released at then end of 2017, will require PHP 7. But Laravel will drop PHP 5 support even sooner. Taylor Otwell, the creator of Laravel, announced that Laravel 5.5, to be released in June 2017, will leave PHP 5 behind.

Freek talks some about the improvements that come with PHP 7 and which he thinks will show up in the different frameworks' codebase. He sees this as "a message" to the PHP community as a whole that the migration to PHP 7 should happen sooner rather than later (and some of his own work to help reinforce this).

tagged: symfony laravel php7 requirement framework package

Link: https://murze.be/2016/12/laravel-5-5-will-require-php-7-0/

Blackfire.io Blog:
PHP 7 performance improvements (5 Part Series)
Dec 13, 2016 @ 11:54:21

The Blackfire.io blog has just wrapped up their series of posts covering some of the performance improvements that came along with PHP 7. In each post of the series they get into detail on one area, sharing some brief code samples and screenshots from the service showing the performance different between PHP 7 and PHP 5.

Julien Pauli, PHP contributor and release manager, details what changed between PHP 5 and PHP 7, and how to migrate and make effective use of the language optimizations. All statements are documented with specific examples and Blackfire profiles.

The topics covered are:

While some of the examples are (sort of) Symfony related, they're mostly about generic language level features and include some other considerations to think about when using the feature and the performance impact on your application.

tagged: blackfireio php7 performance improvement series

Link: https://blog.blackfire.io/category/tech

Upgrading Your Linux Server to PHP 7.0
Dec 07, 2016 @ 11:47:25

The TutsPlus.com site has a new tutorial posted showing you how to upgrade your Linux server to run PHP 7.0, the latest major release of the PHP language.

PHP 7 was released last December. Once you've tested your code locally to run on it, it's time to upgrade your production server. Generally, I found that most of my sites run well on it.

However, I suspect that not many sites have upgraded yet. It's often safer and easier to stay on older releases. [...] But PHP 7 has now been out for nearly a year.

In today's episode, I'll walk you through my recommended approach to upgrading to PHP 7 on Ubuntu 14.x and resolving problems with PHPMyAdmin, which a lot of early upgraders ran into.

He starts by helping you identify any customizations that you might have related to PHP 5, specifically related to configuration options. He then provides the commands to remove PHP 5 packages from the system and add in the "ondrej/php" PPA for apt-get as the source for the PHP 7 packages. After a quick apt-get cleanup, he includes the commands to install the "php7" packages, enable a few extra modules and getting phpMyAdmin back up and in working order.

tagged: upgrade server php7 php5 ppa aptget phpmyadmin tutorial

Link: https://code.tutsplus.com/tutorials/upgrading-your-linux-server-to-php-7--cms-27583