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

Jumpstart Your PHP Testing with Codeception
May 26, 2016 @ 12:41:35

The Toptal.com blog has posted a new tutorial that wants to help you make the most of your application via testing. They show you how to use Codeception to create a set of tests to ensure your application is working as expected.

Before moving on to Codeception and PHP, we should cover the basics and start by explaining why we need testing in applications in the first place. Perhaps we could complete a project without wasting time on tests, at least this time?

Sure, you don’t need tests for everything; for example, when you want to build yet another homepage. [...] However, you definitely do need testing when: your team uses BDD/TDD, your Git repo contains more than a couple commits, [and] you are a proper professional, working on a serious project.

They start with a look at the kinds of things testing solves in your development process and the different kinds of tests you can create. From there they introduce Codeception, an alternative testing tool to the widely used PHPUnit. The tutorial helps you get it installed and shows you how to make a simple, first test. It helps you execute the test, debug issues that might pop up and the different assertions you can use. With the fundamentals in place, they move on to more details on using it for functional and unit testing.

tagged: jumpstart testing codeception tutorial functional unit

Link: https://www.toptal.com/php/php-testing-with-codeception

PHP 5.5.36 & 7.0.7 Released
May 26, 2016 @ 11:16:14

The PHP project has officially released the latest versions of the language in the PHP 5.5.x and PHP 7.0.x series: PHP 5.5.36 and PHP 7.0.7:

The PHP development team announces the immediate availability of PHP 5.5.36. This is a security release. Several security bugs were fixed in this release. All PHP 5.5 users are encouraged to upgrade to this version.

As always, you can download these latest releases from either the main downloads page (source) or from the windows.php.net site for the Windows binaries. For a full list of the changes, you can check out the Changelogs for each release.

tagged: language release bugfix security php55 php70

Link: http://php.net/archive/2016.php#id2016-05-26-2

SitePoint PHP Blog:
Finding Differences in Images with PHP
May 26, 2016 @ 10:56:33

The SitePoint PHP blog has posted a new tutorial from author Christopher Pitt on an interesting topic that could come in very handy in the right situations: finding differences in images with PHP.

I recently stumbled across a fascinating question: how could I tell whether an image had changed significantly? As PHP developers, the most troublesome image problem we have to deal with is how to resize an upload with an acceptable loss of quality. In the end I discovered what many before me have – that this problem becomes relatively simple given the application of some fundamental mathematical principles.

He starts off by talking about images as "bitmaps", basically a collection of pixels composed in a grid. He also mentions images as sets of vectors, but in PHP the bitmap approach is simpler and more understandable. He includes some code showing the breakdown of an image into its RBG colors values and what the data represents. He then moves into measuring the distance "in three dimensions" with a bit of geometry and applies them to a simple State class. This class breaks down the image given into RBG details then, eventually, compares the other image based on the euclidean distance between the points on the original and the ones from the new image. He filters some of these results through a standard deviation view to weed out problems with almost identical images.

tagged: image difference evaluation tutorial gd similar euclideandistance standarddeviation

Link: https://www.sitepoint.com/finding-differences-in-images-with-php/

/Dev/Hell Podcast:
Episode 77: Escaping to the Canadian Hellscape
May 26, 2016 @ 09:41:30

The /Dev/Hell podcast, hosted by PHP community members Chris Hartjes and Ed Finkler, has posted their latest show - Episode #77: Escaping to the Canadian Hellscape.

On the 77th episode of you favourite comedy podcast about technology and aging programmers, Chris and Ed spoke with Tracy Osborn about her new job in developer relations, living the sweet rent-free life in the Bay Area and how she is making the smart move of relocating with her Kanuckistanian husband to Toronto.

You can listen to this latest show either through the in-page audio player or by downloading the mp3 directly. If you enjoy the episode, be sure to also subscribe to their feed to get the latest news on new episodes as they're released.

tagged: devhell podcast ep77 canadian hellscape chrishartjes edfinkler tracyosborn

Link: http://devhell.info/post/2016-05-24/escaping-to-the-canadian-hellscape/

SitePoint Web Blog:
Please: Automated CMS and Framework Installs in Vagrant
May 25, 2016 @ 10:29:08

On the SitePoint.com site's "Web" category they're posted a tutorial showing off an interesting piece of software that helps make automated installs of CMS/frameworks easy: a simple bash script tool called Please.

If you’re a web developer, possibly one of your most boring and repetitive tasks is the configuration of the basic setup for every new project. Configuring your my-project.dev domain, creating the database, installing WordPress (or any other CMS/Framework) for the thousandth time: you already know how to do it. What if you could automate all of that?

Well, actually, you can. Please is a simple bash script that helps to automate the installations of many CMSs and Frameworks by configuring them automatically into your Vagrant box, adding a development domain name into your host file, and even a database if needed.

They start off by helping you get a Vagrant box up and running to use for the Please handling. You then clone the Please repository locally and can use the command line tool to set up the process for multiple CMS/framework types including WordPress, Laravel and React. There's also a section covering the creation of your own environment if you need something more custom. Please is currently in beta at the time of this post so be aware that there may still be issues that need resolving before it becomes stable.

tagged: please automated installation tool commandline cms framework vagrant

Link: https://www.sitepoint.com/please-automated-cms-and-framework-installs-in-vagrant/

Free the Geek:
Episode 18 - Talking Conferences and Mental Health with Matthew Turland
May 25, 2016 @ 09:25:26

The Free the Geek podcast hosted by PHP community member Matthew Setter has posted its latest episode. In this new show Matthew talks with Matt Turland about conferences and mental health.

In this episode I wonderful chat with Matthew Turland about what it’s like speaking at conferences and mental health - especially within the IT community.

It’s a chat which I feel privileged to have had, primarily because it can be such a sensitive topic for so many people around the world. Matthew was very kind to open up to me and share with me some of his struggles, and how he’s dealt with them over the years.

He also shared a host of links to some excellent resources, should you or someone you know, be in the same position; links which you can find in the related links section.

You can listen to this latest episode either through the in-page audio player or by downloading the mp3 directly. If you enjoy the show and want to hear more chats with members of the PHP community, be sure to subscribe to their feed and follow the show on Twitter to get the latest updates when new episodes are released.

tagged: freethegeek podcast matthewsetter ep18 matthewturland conference mentalhealth

Link: http://freethegeek.fm/episode/episode-0018

Community News:
Recent posts from PHP Quickfix (05.25.2016)
May 25, 2016 @ 08:05:01

Recent posts from the PHP Quickfix site:



Using Let's Encrypt SSL With Your WordPress Project
May 24, 2016 @ 12:53:11

The TutsPlus.com site has posted a tutorial for the WordPress users out there about using Let's Encrypt and SSL certificates to easily secure your installation.

For years, purchasing, renewing, installing and managing SSL certificates overwhelmed me with expense and complexity. Now, Let's Encrypt makes it fairly simple and free.

Let’s Encrypt is an emerging, free, automated, and open certificate authority brought to you by a California public benefit corporation called the Internet Security Research Group—it also has nonprofit status. [...] In this tutorial, I'll walk you through installing Let's Encrypt on a few of my websites, including my WordPress consulting website, http://lookahead.io, soon to be https://.

You'll need a be a bit comfortable working at the command line to use the Let's Encrypt client, but they walk you through each step of the process explaining everything along the way. They start with a basic list of features the Let's Encrypt service provides and the requirements you'll need to get started. Screenshots of the setup wizard are included and the "one small difference" you'll need to make when using it with WordPress. They link to the SSL Labs site to help you verify the certificate is working as expected and finish with setting up the auto-renewal of the certificate via a simple cron job.

tagged: wordpress letsencrypt install setup configure ssl certificate free

Link: http://code.tutsplus.com/tutorials/using-lets-encrypt-ssl-with-your-wordpress-project--cms-22303

Marc Scholten:
Accidental Complexity Caused By Service Containers In The PHP World
May 24, 2016 @ 11:25:30

In this post to his site Marc Scholten talks about something that's become a side effect of using the inversion of control design pattern in PHP applications (specifically related to dependency injection): added accidental complexity.

Modern PHP development favors the use of inversion of control to keep software more configurable and flexible. This leads to the problem that one now has to create a big graph of objects to use the application. As a solution to avoid redundant setup code, service containers like the symfony2 dependency injection component are used.

The goal of a service container is to centralize the construction of big object graphs. [...] Simple, right? Actually it’s not. Commonly used service containers are complex solution for simple problems.

He illustrates with an example using the Symfony services container, a piece of the framework that allows the definition of dependency relationships via a YAML formatted file. While this configuration seems simple enough, he points out that more complex dependencies (ones that could easier be set via a "set" method) become more difficult to define when limited by the service container config structure. He also points out that it makes static analysis of the code much more difficult with dependencies being dynamically fetched from the container instead of directly related. He offers an alternative to this complex container setup, however: a simple method (or methods) inside of a factory class that creates the objects, injects the required dependencies. This makes it much easier to call from the service container instance and configuration and even a "create container" call to set all of the dependencies up at once. He ends the post with some advantages of this approach and a takeaway or two to keep in mind when managing your object dependencies.

tagged: complexity service container accidental configuration simplex complex example symfony

Link: https://www.mpscholten.de/software-engineering/2016/05/21/accidental-complexity-caused-by-service-containers-in-the-php-world.html