|Hello and Welcome Back!
Is isolated testing dead? Some argue integration and acceptance testing is better. Brandon Savage discusses how there’s a place in the PHP world for both.
Over the years there have been a number of different channels for the Zend Framework community to use, each with its own merits and problems. After re-evaluating how to better engage with the community, an announcement has been made this week on the Zend blog.
Also this week, on the Full Stack Radio podcast, Adam is joined by David Hemphill as co-host, discussing his new project Crondog.
Plus in a Lightning Talk on NomadPHP, Kenneth Schabrechts suggests that, as well as improving technical skills, it is important to focus some of your time on training and learning to use your soft skills to help you be a better developer.
And finally, online conference PHP Unicorn takes place next month, with talks from Adam Culp, Freek Van Der Herten and Lorna Jane Mitchell, to name a few. Get your ticket now and watch live or save it for later!
Have a great weekend,
Katie and Ade
Please help us by clicking to our sponsor:
Now in Early Access — JawsDB is out of the tank and in the wild.
Our MySQL-as-a-Service makes database deployment and management simple. Get started with a free month of our 2.5GB MySQL Blacktip database by signing up through Manifold using this promotional URL. JawsDB will be generally available next week, so reel in the offer before it swims away on April 12th.
Working Through The Concerns Of Our Community
This is a joint statement from project lead Dries Buytaert and Megan Sanicki, Drupal Association Executive Director.
Is Isolated Testing Dead?
Recently there’s been a great deal of discussion as to the merits of isolated testing versus integration and acceptance testing. Some proponents argue that integration testing far outweighs the value of isolated testing. While this is a perfectly valid position, I feel it oversimplifies the complexity of testing in the same way that the “isolated testing only” crowd does.
Command-Line Output: Consider Logging Over Streams
When writing command-line applications for PHP, consider using a using logger for screen output. This is something I’ve done with great success in several projects.
Loving Legacy Code
Many developers want to "rewrite the whole application" and "get rid of all that sh*t". Most of them are pretty blank when I tell them that I really like working on such code bases, even if I just jumped into the code. I recently talked about that to the other Qafoo members and all of them agreed to my views. Therefore I want to explain our love of legacy code in this post.
Discontinuing the Community Translations
In October 2015, we discontinued the translations of Symfony docs (French and Italian at that time) and we decided to only publish documentation in English. The main reason behind this decision was that translations were not in sync with the original contents, so we couldn't guarantee our readers that the non-English docs were correct. Now it's time to do the same with the rest of translations of symfony.com.
Tutorials and Talks
Upgrading from PThreads v2 to V3: What to Look out For
A fair amount has changed for the pthreads extension with the release of pthreads v3. This article aims to cover the necessary information for those who are looking to upgrade their applications from pthreads v2 to v3.
How to Program With Yii2: Running Cron Services
In this Programming With Yii2 series, I'm guiding readers in use of the Yii2 Framework for PHP. In today's tutorial, I'll share with you how to take advantage of Yii's console capacity to run cron jobs.
Building Maintainable PHP apps Using Composer
Composer has made big waves in the PHP community in recent years. Thanks to Composer’s creators, Jordi Boggiano and Nils Adermann, Composer has become the absolute backbone of PHP’s package infrastructure today. In this blog post, we shall be introducing Composer, from the ground up. We will see what packages are, how they should be versioned, and how to install them into your application. Learn about Composer and never look back!
How to Use Queue in Laravel 5.4 For Email Verification
Today, I will demonstrate how you can use Queue in Laravel 5.4 for email verification by using integrated auth RegisterController. In addition, I will also show you how to add the email sending process to a queue to make your app processes faster. In this article, I am going to use a database for the queue jobs.
PHP and cURL: How WordPress Makes HTTP Requests
cURL is the workhorse of the modern internet. As its tagline says, cURL is a utility piece of software used to ‘transfer data with urls‘. According to the cURL website, the library is used by billions of people daily in everything from cars and television sets, to mobile phones. It’s the networking backbone of thousands of applications and services. Unsurprisingly, it’s also a core utility used by WordPress’ own Requests API as well as our own WP Migrate DB Pro. If you’re curious about the power of the cURL library, how it works with WordPress and what to watch out for (especially on macOS), then you’re in the right place.
Docker Build Patterns
As a programmer you may know the Gang-of-Four Builder design pattern. The Docker builder pattern has nothing to do with that. The builder pattern describes the setup that many people use to build a container.
In Laravel 5.5 You Can Render Mailables to the Browser
When you are building custom HTML email templates, it’s typically a chore to test them across all the email clients, and testing them over and over. There are a few tools like Litmus which help solve this problem, but the service is expensive.
Game Development with ReactJS and PHP: How Compatible Are They?
“I’d like to make a multiplayer, economy-based game. Something like Stardew Valley, but with none of the befriending aspects and a player-based economy”. I started thinking about this the moment I decided to try and build a game using PHP and ReactJS. The trouble is that I knew nothing about the dynamics of multiplayer games, or how to think about and implement player-based economies. I wasn’t even sure that I knew enough about ReactJS to justify using it.
Using a JSON Web Token in PHP
JSON Web Token (JWT) is a JSON-based open standard used to create access tokens that assert some number of claims. In a palpable example, the JWT represents a key between a server-client relation: the server generates a token that has the claim "logged in as admin" and give it to a client, which could use that token to prove that is logged in as admin. The tokens are designed to be compact, URL-safe and can also be authenticated or encrypted.
Building Your Startup: Completing Group Scheduling
Welcome! This is the follow-up episode to Building Your Startup: Meetings with Multiple Participants. Today, I'll be completing the work that we began in that episode: scheduling multiple participant meetings.
Control Humidity With a Raspberry Pi and IoT Devices
I’ve got a Wemo switch and a BeeWi temperature/humidity sensor. I’ve use them in previous projects. Today I want a control humidity level in a room. The idea is switch on/off a dehumidifier (plugged to Wemo switch) depending on the humidity (from BeeWi sensor). Let’s start.
Simple React Native Forms With redux-form, immutable.js and styled-components
How to easily integrate user input into your state management on the mobile platform.
Dealing With Date Range
In this tutorial, we walk through a few different scenarios of using league/period. The package league/period is from PHP League and its purpose is to make handling date range in PHP easier for developers.
Running Dusk tests on Travis CI and CircleCI
|News and Announcements
Community Corner: Newsletter and Slack!
Over the years, we've had a number of different channels for the Zend Framework community to use. Each has had its merits, and each has its problems, ranging from discoverability to usability. As such, we've been re-evaluating what we're doing, and focusing on how to better engage with the community, but also allow community members to better engage amongst each other. We're now announcing the first two changes!
Lumen v5.4.6 Released
Version 5.4.6 of Lumen has been released this week with several issue fixes.
PHP Unicorn - 13:00 BST May 4th 2017
The PHP Unicorn Conference is an online conference dedicated to the programming language PHP. You’ll see talks from some of the world’s more recognizable PHP experts; speaking talent so rare, we call them Unicorns. It is true there are many great PHP conferences happening around the world and you should go to as many as can, but if you have a hard time getting to one or can’t spare the time, why not let the conference come to you? The PHP Unicorn Conference comes streaming right to your computer, wherever in the world you might be. So, join us online on May 4, 2017 for an all-day, can’t miss PHP event and hang out with some PHP Unicorns!!!
Day Camp 4 Developers - 9am CDT June 2nd 2017
Save The Date! Nope, we aren’t going to tell you the topic yet. Nope, we aren’t going to give you the list of speakers yet. All we are giving you right now is the date. Mark it on your calendar today. Get ready to learn. Day Camp 4 Developers. Invest a day in your career.
Dutch PHP Conference - 29-30th June-1st July 2017, Amsterdam
Ibuildings is proud to organise the eleventh Dutch PHP Conference on June 30th and July 1st, plus a pre-conference tutorial day on June 29th. Both programs will be completely in English so the only Dutch thing about it is the location. Keywords for these days: Know-how, Technology, Best Practices, Networking, Tips & Tricks. Tickets are on sale now.
Nomad PHP US - May 18th 2017 20:00 CDT
MySQL: Analysis, Understanding, and Optimisation of Queries, presented by Michael Moussa. Your new database query ran quickly when you tested it, but seconds after deploying it, alarms are blaring and you’re scrambling to rollback before the site goes down. What happened?!? I can “EXPLAIN”. Queries that perform well under development load with limited datasets can easily bring a database to its knees under production load. In this talk, you will learn to decipher MySQL query execution plans, recognise portions that can be improved, and take the necessary steps to optimise your queries – all without starting any fires!
Nomad PHP EU - May 18th 2017 20:00 CEST
Code Coverage for Total Security in Application Migrations! Presented by Dana Luther. So the time has come to take the leap and upgrade your application to a new major version of the underlying framework, or, perhaps, to an entirely different framework… how do you ensure that none of your functionality or usability is impacted by a potentially drastic rewrite of the underlying systems? How can you move forward with 100% confidence in your migrated codebase? Testing, testing and more testing. Using a combination of unit, functional and acceptance tests can give you the certainty you need. In this talk, we will go over key strategies for ensuring that you begin with full code coverage and move forward with confidence.
dev/hell Podcast Episode 89: Selling Out Never Felt So Good
Chris and Ed decided to push themselves out of their comfort zone and talked to Laravel community superstar Matt Stauffer. We talked about Matt’s experience writing a book for a major publish (with an animal on the cover and everything), asked the question “does consistency in code matter for OSS projects” and Chris sadly muted his mic while Matt and Ed discussed the Analogue NT Mini gaming console.
North Meets South Web Podcast Episode 25 - WordPress, UUIDs, and Testing Revelations
This episode, Jake and Michael speak about working with UUIDs in Laravel, Wordpress, and testing mindsets.
Three Devs and a Maybe Podcast - The Tale of State and Behaviour, Part 2 with Scott Wlaschin
In this weeks show we follow on from our previous episode’s discussion with Scott Wlaschin. We delve into separating out the client from the behaviour and state, initially highlighting the Batch Command approach. From here, we move on to discuss the Actor Modal, Event Sourcing and Functional Reactive Programming solutions. Finally we touch upon handling the behavioural dependencies, followed by creating an Interpreter and Capability-based implementations.
Voices of the ElePHPant - Interview with Matthew Weier O'Phinney
This week Cal Evans interviewed Chief Architect of Zend Framework, Matthew Weier O'Phinney, discussing Zend Framework 3 and Apigility.
Full Stack Radio Podcast Episode 61: We're Building Products!
Adam welcomes David Hemphill back to the show, but this time as a co-host! David introduces Crondog, the new product he's working on to help developers manage dynamic recurring tasks in their applications. Adam introduces KiteTail, an app that let's you create webhook-driven hosted checkout pages; something he wishes he'd had when he launched his course. From here on out, Full Stack Radio will follow David and Adam's journey building these new products; discussing interesting technical, design, and business challenges they face along the way.
The Changelog Podcast #242: The Burden of Open Source
James Long joined the show to talk about his recent post, "Why I'm Frequently Absent from Open Source". He shared several points in his blog post that struck a chord with us, so we invited him on the show to talk through the gritty details and peel back the layers of open source — the people involved, sustainability, the responsibility, the guilt, and the balance it takes to keep it all together.
MageTalk Magento Podcast #122 - #roadtoimagine Series Part 1: “The American League of Samurais”
The guys rap about Phillip's Imagine talk and the new Community Engineering initiative.
PHP Ugly Podcast #54: Tractor Hacking
Topics include Lone Star PHP 2017 and Teach Yourself Computer Science.
The Power of the Soft Skill, presented by Kenneth Schabrechts
Every day developers ask themselves what they can do to improve their technical expertise. Which comes to no surprise seeing the nature of this industry. However it is important to focus some of your time on training and learning to use your soft skills. This will help you be a better developer. Skills like communication, collaboration and problem solving skills will give you an edge when trying to get into a certain company or when trying to obtain that contract you always wanted. During this talk you will be shown some of the most vital skills needed for developers to reach that goal. Besides the overview we will also dive into methods by which you can actively work on improving said skills.
7 Reasons Why Developers Need to Create their Own Software Product Businesses
Many developers are not happy with working for other companies. They do not have much autonomy to work on projects they want, they cannot work from home, they cannot work any time they want, and in the end they get paid a limited amount of money. Watch this short video to learn about why creating your own products is the right step to be a happier developer, as well how you can attend a free online workshop that will teach the essential steps to achieve that goal.
Acquia Podcast: Mumbai Memories - Abhishek Anand
My trusty microphone, camera, and I recorded a few great conversations in Mumbai that have never been released until now. Today, talking about full-time contribution to Drupal 8 while building the Acquia Lightning distribution, passion for community and paying it forward in open source, and Drupal in India with Abhishek Anand.
Cloudways Interview - The Digital Journey Of Magento UX Design Manager, Ann Hudspeth
Ann Hudspeth is the UX Design Manager at Magento Inc. She joined Magento in 2016 after spending four years at Dell where she was leading the user experience of their sales platform. Before that, Ann spent 13 years at Microsoft where she looked after the products ranging from MSN.com to Windows OS. Ann is also a District Leader for the Humane Society of the United States. She is usually followed by a posse of small dogs and also known as the “Crazy Dog Lady.”
Do you have a position that you would like to fill? PHP Weekly is ideal for targeting developers and the cost is only $50/week for an advert. Please let me know if you are interested by emailing me at firstname.lastname@example.org
Interesting Projects, Tools and Libraries
PHPQA all-in-one Analyzer CLI tool
This project bundles together all the usual PHP quality control tools, and then some. It simplifies the installation and configuration of the tools and helps developers to push up the quality control bar on their projects.
Use this library to report background jobs or long running scripts to New Relic APM.
The hassle-free way to integrate analytics into any PHP application.
The C based gRPC (C++, Node.js, Python, Ruby, Objective-C, PHP, C#)
Lightweight Asterisk configuration utility written in PHP.
Library to create classes following the State pattern in PHP. This can be a cleaner way for an object to change its behaviour at runtime without resorting to large monolithic conditional statements, and this improve maintainability.
An open-source web IP address management application, with a goal to provide light and simple IP address management application.
The fast pure PHP database framework with a powerful static code generator, designed for PHP7.
eCommerce PHP framework built on top of Symfony with component-based architecture and format-agnostic rendering.
A PHP powered project manager and issue tracker featuring multiple projects, milestones, custom fields, per-project permissions, email notifications and much more.
Lightweight PHP framework for php 5.3+. For development of small to middle size web applications.
Composer helps you declare, manage and install dependencies of PHP projects, ensuring you have the right stack everywhere.
Non-standard PHP Library (NSPL) is a collection of modules that are meant to solve common day to day routine problems.
PHP web app for planning poker. It includes a master view for the ScrumMaster and a simple responsive card view for the team.
So, how did you like this issue?
Please help us by clicking to our sponsor:
Protect your PHP Code
Why not try SourceGuardian 11. Click here to download a 14 Day Trial copy. Protect your code using Windows, Linux or Mac and run everywhere with our free Loaders.
Our Synergy solutions will change the way you do business. Whether you do corporate partnerships on a large scale, small scale or medium scale, Synergy will streamline your communications and take your brand's success to the next level. Check them out in the Generitech store.