PHPWeekly January 19th 2017

PHPWeekly January 19th 2017

#outlook a{
padding:0;
}
body{
width:100% !important;
}
.ReadMsgBody{
width:100%;
}
.ExternalClass{
width:100%;
}
body{
-webkit-text-size-adjust:none;
}
body{
margin:0;
padding:0;
}
img{
border:none;
height:auto;
line-height:100%;
margin:0;
outline:none;
padding:0;
text-decoration:none;
}
#backgroundTable{
height:100% !important;
margin:0;
padding:0;
width:100% !important;
}
h1,.h1{
color:#303030;
display:block;
font-family:Arial;
font-size:20px;
font-weight:bold;
line-height:100%;
margin-top:0;
margin-right:0;
margin-bottom:10px;
margin-left:0;
text-align:left;
}
h2,.h2{
color:#991B4A;
display:block;
font-family:Arial;
font-size:16px;
font-weight:bold;
line-height:100%;
margin-top:0;
margin-right:0;
margin-bottom:10px;
margin-left:0;
text-align:left;
}
h3,.h3{
color:#303030;
display:block;
font-family:Arial;
font-size:12px;
font-weight:bold;
line-height:100%;
margin-top:0;
margin-right:0;
margin-bottom:10px;
margin-left:0;
text-align:left;
}
h4,.h4{
color:#303030;
display:block;
font-family:Arial;
font-size:14px;
font-weight:bold;
line-height:100%;
margin-top:0;
margin-right:0;
margin-bottom:10px;
margin-left:0;
text-align:left;
}
#templatePreheader{
background-color:#c2537b;
border-bottom:0;
}
.preheaderContent{
color:#FFFFFF;
font-family:Arial;
font-size:9px;
line-height:100%;
text-align:left;
}
.preheaderContent a:link,.preheaderContent a:visited,.preheaderContent a .yshortcuts {
color:#FFFFFF;
font-weight:normal;
text-decoration:underline;
}
#templateHeader{
background-color:#F5F5F5;
border-top:0;
border-bottom:0;
}
.headerContent{
color:#303030;
font-family:Arial;
font-size:14px;
font-weight:bold;
line-height:100%;
padding:0;
text-align:left;
vertical-align:middle;
}
.headerContent a:link,.headerContent a:visited,.headerContent a .yshortcuts {
color:#991B4A;
font-weight:normal;
text-decoration:underline;
}
#headerImage{
height:auto;
max-width:400px !important;
}
.leftColumnContent{
color:#505050;
font-family:Arial;
font-size:12px;
line-height:150%;
text-align:left;
}
.leftColumnContent a:link,.leftColumnContent a:visited,.leftColumnContent a .yshortcuts {
color:#991B4A;
font-weight:normal;
text-decoration:none;
}
.centerColumnContent{
color:#505050;
font-family:Arial;
font-size:12px;
line-height:150%;
text-align:left;
}
.centerColumnContent a:link,.centerColumnContent a:visited,.centerColumnContent a .yshortcuts {
color:#991B4A;
font-weight:normal;
text-decoration:none;
}
.rightColumnContent{
color:#505050;
font-family:Arial;
font-size:12px;
line-height:150%;
text-align:left;
}
.rightColumnContent a:link,.rightColumnContent a:visited,.rightColumnContent a .yshortcuts {
color:#991B4A;
font-weight:normal;
text-decoration:none;
}
.leftColumnContent img,.centerColumnContent img,.rightColumnContent img{
display:inline;
height:auto;
max-width:180px !important;
}
#templateBody{
background-color:#F5F5F5;
border-top:0;
border-bottom:0;
}
.contentBlock{
background-color:#FFFFFF;
}
.bodyContent{
color:#303030;
font-family:Arial;
font-size:13px;
line-height:150%;
text-align:left;
}
.bodyContent a:link,.bodyContent a:visited,.bodyContent a .yshortcuts {
color:#991B4A;
font-weight:normal;
text-decoration:underline;
}
.bodyContent img{
display:inline;
height:auto !important;
max-width:580px !important;
}
#templateFooter{
border-top:0;
}
body,#backgroundTable{
background-color:#DDDDDD;
}
.footerContent{
color:#505050;
font-family:Arial;
font-size:11px;
line-height:125%;
text-align:left;
}
.footerContent a:link,.footerContent a:visited,.footerContent a .yshortcuts {
color:#505050;
font-weight:normal;
text-decoration:underline;
}
.footerContent img{
display:inline;
}
#monkeyRewards img{
max-width:190px;
}


Curated news all about PHP.  Here's the latest edition

PHP Weekly 19th January 2017

<!–

–>

In This Issue

Introducing Business Class Products

Synergy Solutions Available Now

Website Refresh

We refreshed our public website! Did you notice? Check out our new look at Generitech.biz.

Keep Up With Us

Friend on Facebook Facebook
Follow on Twitter Twitter
Hi PHP fans, and thank you for joining us.

Since the successful release of WordPress 4.7 last month, it has been downloaded over 10 million times. The first security release is out now, with the immediate availability of WordPress 4.7.1.

Also this week, with the start of the new year, the Symfony blog takes a look back at the highlights of 2016 for the Symfony project.

The PHP Town Hall podcast is back after a six month hiatus, waving goodbye to one co-host and welcoming in a new one!

Plus, we take a look at a way of getting rid of static, to help simplify your testing.

And finally, the official European Laravel conference for 2017 has just been announced. Laracon EU will take place in August, in Amsterdam. Blind Bird tickets are on sale now.

Have a great weekend,

Cheers
Katie and Ade

We love our sponsors. Why not try them?

 From our sponsors:

Hire Top Designers Faster The search is over. Let Toptal connect you with the world’s most talented web and UX designers. Get started today.

(ads by LaunchBit) 

Articles

What Are Scrum Rituals?
The practice of working on a scrum team is organised into a series of rituals. The rituals mark key events in the process of carrying out the work of a sprint. It’s the responsibility of the scrum master to host each of the rituals, and make sure that they focus on their objectives, and produce the desired results for the benefit of the entire team.

Seven Tips to Learn Laravel More Effectively
As the community grows, there are many resources available to help you learn Laravel. That’s great! But, how do you choose the best one? Which will be the best use of your time to read or watch? For those new to the framework, I’m sure these questions are on your mind, so here are seven tips to help you learn Laravel more effectively. Some of these tips will be specific to Laravel, while others are more general for learning any programming language or framework. Let’s get started.

Recognising More Types of Contribution in the Drupal.org Marketplace
Within weeks of introducing the contribution credit system on Drupal.org we realised we had created something powerful. Like all open source projects, Drupal has a behind-the-scenes economy of contribution in which individuals, organisations and end users work together to maintain the software as a public good. That behind-the-scenes economy was brought to the fore when we chose to rank the Drupal Marketplace by issue credits. For the first time, Drupal.org gave businesses a direct financial incentive to contribute code.

Trust
Stop and take a moment to think about how much trust is required to live your everyday life. Every single aspect of your life is built up on layer after layer of trust, it's nothing short of staggering. Different aspects of life will contain different levels of trust, with some being very guarded and some being very lax. We don't often talk about this trust and we often make the blind assumption that trust is inherently a bad thing. That's most definitely not the case. Let's explore why.

Symfony 2016 Year in Review
The beginning of a new year is the best moment to review all that happened during the previous year. These are some of the highlights of the 2016 year for the Symfony Project.

Tutorials and Talks

Smart Guide On Creating a Complete PHP Package Using Composer
Composer is also used to create custom packages from open source packages and/or private packages. These custom packages could then be installed using the above mentioned command. In this article, I will demonstrate the package creation capability of Composer by creating a package for Twitter search API. I will then register it and install it on my server.

Building Your Startup: The Dashboard Foundation
This tutorial is part of the Building Your Startup With PHP series on Envato Tuts+. In this series, I'm guiding you through launching a startup from concept to reality using my Meeting Planner app as a real-life example. In today's episode, we'll build the foundation for our administrative dashboard and take on and create some of the initial live and historical reporting.

Containerising a Static Website With Docker, Part II
In the previous post we looked at the process of designing a build container, consisting of all the required build tools for generating a static website from source files. In order to see the result of the build process, we still need to design another container, which runs a simple web server, serving the static website (mainly .html, .css, .js and .jpg files).

Dynamic Git Branch Subdomains With Laravel Envoyer and Apache
Let’s say you have a staging environment that usually has the latest commit of the master branch deployed. Sometimes though you might want to stage multiple branches at the same time.

Fire Up BDD Inside Docker With Cucumber and BDDfire
BDDfire allows you to set up the entire framework with code quality, browser testing, cloud testing, API testing and Docker integration, by running three simple commands.

Home-Made Twitter and Gmail Notifications with PHP and Arduino
I am a little obsessed with Twitter. It’s how I communicate with most of the developers I’m not fortunate to live in the same city as. I’m a little less obsessed with IoT projects, but then it’s harder to find the time to work on them than it is to check Twitter. Unless I can do both at the same time. Ever since the IoT week, I’ve been meaning to work on a project that will let me know when someone wants to speak to me. Something that looks cool, and is at the same time non-invasive. This is what I’ve come up with…

How to Build a Multilingual App: A Demo With PHP and Gettext
Whether you are building a website or a full-fledged web application, making it accessible to a wider audience often requires it to be available in different languages and locales. Fundamental differences between most human languages make this anything but easy. The differences in grammar rules, language nuances, date formats and more, combine to make localisation a unique and formidable challenge.

Implement JSON-RPC with zend-json-server
zend-json-server provides a JSON-RPC implementation. JSON-RPC is similar to XML-RPC or SOAP in that it implements a Remote Procedure Call server at a single URI using a predictable calling semantic. Like each of these other protocols, it provides the ability to introspect the server in order to determine what calls are available, what arguments each call expects, and the expected return value(s); JSON-RPC implements this via a Service Mapping Description (SMD), which is usually available via an HTTP GET request to the server.

Voyager – Can an Admin UI Make Laravel Even More Approachable?
Today, we are talking about Voyager! Voyager is a Laravel package that provides a full administration system for the framework in its “skeleton app” form. Let’s take a closer look at it.

All Hail Xdebug And Lets Let Var Dump Die
How many times have you been working in Magento or any other PHP application and hit an error, exception or something not quite right? For me it's a lot. I’ve been that developer that debugs by fire and throws echo var_dumps and dies around like a western gunslinger. It’s easy and provides quick feedback cycles but, lets be honest, it's lazy, inefficient, rarely provides all of the data you need to solve the problem on the first try and it's not something you want to boast about by the coffee machine. Before we look at the future let's take a trip into the past and well present for some people. What can go wrong and what are we missing by adding these “debug” statements to our code?

Programming With Yii2: Helpers
In the Programming With Yii2 series, I'm guiding readers in use of the Yii2 Framework for PHP. In this tutorial, I'll provide a brief overview of helpers. In Yii, helpers are modules which group commonly useful libraries for string, file, image, URL and HTML management amongst other things, and they are easy to extend.

Getting Rid of Static
When people start (unit-)testing their code one of the worst problems to tackle is static calls. How can we refactor static calls out of an existing application without breaking the code and while producing new features? How can we get rid of this big test impediment?

Homestead Per-Project Crib Sheet
I wanted a drop-dead simple way to try and replicate a problem someone was having on the Slim forums. I couldn't reproduce with php -S which is my go-to for this sort of thing, so I thought I'd try Homestead. I had recently listened to a Voices of the ElePHPant episode with Taylor Otwell & Joe Ferguson where Joe mentioned that Homestead worked on a per-project basis too. I didn't know this, so tried it out. The docs are fine, but there's a lot there that covers the global installation option when I just want to get up and running on a per-project basis.This is my crib sheet.

Crate: Eventual Consistency
Some projects at work use a Crate database as a kind of caching layer for aggregated, unnormalised data that helps reducing requests from front-end servers. Because of its eventual consistency model, filling data into it has some issues.

Simple Tutorial On Using MySQL With PDO That Works With PHP 7
Most PHP applications use MySQL databases, but since PHP 7 was introduced the old MySQL extension was discontinued. Developers need to migrate either to using MySQLi or PDO. Using PDO makes your code usable also with other types of databases besides MySQL. Read this tutorial to learn how to perform simple common database queries, as well perform table schema management operations, using the PHP PDO database class.

Optimising Your PHPUnit Workflow in Sublime Text
Convincing yourself to skip writing tests is easy when your testing workflow is slow and painful. Here's some tools and tricks I use to make sure testing doesn't slow me down.

PHP Likes Sorting Too Much
PHP likes to sort. Of course, there is sort(), ksort() and all the cousins. But, PHP actually sorts too much. My first encounter with the problem is the infamous array_unique(). Now, this is also affecting glob() and scandir(). I’m looking for others. Until then, check your code.

News and Announcements

WordPress 4.7.1 Security and Maintenance Release
WordPress 4.7 has been downloaded over 10 million times since its release on December 6, 2016 and we are pleased to announce the immediate availability of WordPress 4.7.1. This is a security release for all previous versions and we strongly encourage you to update your sites immediately.

Nominations Are Now Open For The 2017 Aaron Winborn Award
The Drupal Community Working Group is pleased to announce that nominations for the 2017 Aaron Winborn Award are now open. This annual award recognises an individual who demonstrates personal integrity, kindness, and above-and-beyond commitment to the Drupal community. It will include a scholarship and stipend to attend DrupalCon and recognition in a plenary session at the event.

Beta2 of pds/skeleton Now Available!
I am excited to announce that pds/skeleton 1.0.0beta2 has been released. (The pds/skeleton publication describes a standard PHP package skeleton, as backed by research into the PHP package ecosystem.) Among other things, this release incorporates some command-line tooling to validate, and generate, your PHP package skeleton.

Midwest PHP Conference – March 17-18th 2017, Minnesota
Midwest PHP is the FUN conference. This is our fifth annual conference, and each year it gets better and better. Our goal is to share best practices, ideas, and techniques about building state-of-the-art software applications. Early Bird tickets are on sale now.

CoderCruise – July 16th-23rd 2017, New Orleans
CoderCruise is the spiritual successor to php[cruise] that was run in 2016. The PHP community had so much fun that we decided we needed to expand the idea to the greater web tech community! This will be a 7-day cruise out of the port of New Orleans that will include 3 days of conference (while at sea) and 3 days at the ports of Montego Bay, Grand Cayman, and Cozumel. We are looking for a broad range of submissions covering a wide range of web technology topics including coding, design, content, and more. Given the scope of this conference, emphasis will be given to talks that appeal to all web technologists regardless of their programming language of choice (or lack thereof). Tickets are on sale now.

Laracon EU – 28-30th August 2017, Amsterdam
Are you a developer who has a passion for building web-applications? Do you love Laravel or are just in the process of getting started? Do you want to meet the community members that help make it all happen? Then this is the place to be. Laracon EU is a unique international Laravel event with over 600 attendees. The conference has multiple tracks and is focusing on in-depth technical talks. Come learn about the state of the industry while networking with like-minded and diversely experienced developers. Blind Bird tickets are on sale now.

Podcasts

Lately in PHP Podcast Episode 79 – PHP 5 End of Life for Active Support
December was the month for which the last version of PHP 5.6 series had support for regular bug fixes. From now on only security bugs will be fixed. This was one of the main topics discussed by Manuel Lemos and Arturs Sosins in this episode of the Lately in PHP podcast. They also talk about an article that shows the whole evolution in terms of performance since PHP 5.0 through PHP 7.1 and PHP 8 or 7.2 version, as well as the usual proposals for the next PHP version like magic casting, decorator classes, throwable error code types, C# property like accessors, etc..

PHP Town Hall Podcast Episode #51: Good Riddance
In this episode Ben and Phil discuss what’s new in their pathetic little lives, the state of the PHP-FIG, and bid an ecstatic.. ahem.. sad farewell to Phil as he departs the podcast. Starting with Episode 51 Amanda Folson will be taking over as co-host. Ben is staying so don’t worry, we know he’s your favourite. Phil, thanks for 51 fucking fantastic episodes, 5 years of podcasting together, way too much booze, and a lot of fun.

The Laracasts Snippets Episode 55: Unique to the PHP Community
Over the years, I've been part of many programming communities. And in all that time, I've found one thing that is entirely unique to the PHP world…

PHP Ugly Podcast #43: Facial Hair
Topics include Laravel Dust and Symfony Live San Francisco.

Laravel News Podcast LN29: Welcome Jacob Bennett and Michael Dyrynda As The New Hosts
Jacob Bennett and Michael Dyrynda will be taking over as hosts of the show going forward, and this episode is a farewell from Jack and Eric and introductions of Jake and Michael. Apologies in advance for the audio on Eric's end. He had his computer set to use the wrong mic.

LaraChat Live – Episode #18 
Today we sit down to kick off the new year with Taylor Otwell, the founder of the Laravel Framework. We will be talking about staying current with new practices/code and about what's coming up this year for Laravel and Taylor.

North Meets South Web Podcast Episode 20 – Holiday Catchups, CSS Frameworks, and A Big Announcement
Jake and Michael return in 2017 catching up after the holiday season, talk about various CSS frameworks, and make a big announcement!

Three Devs and a Maybe Podcast – Programming Like Functions Matter with Jimmy Burrell and Scott Wlaschin
In this weeks episode we are joined by Jimmy Burrell and Scott Wlaschin to discuss all things functional. We start off the show highlighting how Scott got into programming, the reasons why he is a big fan of Smalltalk, what he means by ‘Enterprise OO’ and being a Humanistic programmer. From here we discuss how he got into FP, how the paradigm came to being, what FP is to Scott and why you should consider it. Finally, we mention the differences between types in FP over langauges such as C, the railway track metaphor he uses to help explain FP concepts and architectural patterns that are more or less suited to FP.

Reading and Viewing

The State of PHP in 2017
What are PHP developers doing and what are they worried about? Taking the results of our recent Developer Pulse survey, this infographic pulls out the statistics, trends, and lessons of over 1200 PHP developers to help understand where we are today and what 2017 will bring.

Voices of the ElePHpant – Interview with Shawn Mayzes
This week Cal Evans spoke to Shawn Mayzes of LaraChat. Watch the interview here.

Book Review: Frontend Architecture for Design Systems
Being a backend developer, my focus is usually on server side issues – languages, databases etc. However, as a web developer in general, a good knowledge of front-end design is also necessary as this enables one to work more effectively with the design and front-end development team. Luckily I found a book that quickly covers the latest design and development trend in front-end design. ‘Front-end Architecture for Design Systems: A Modern Blueprint for Scalable and Sustainable Websites‘ by Micah Godbolt is a short and to the point book that distils the latest front-end design knowledge so that you can quickly get updated on various issues in the field.

PHP Objects, Patterns, and Practice Paperback (by Matt Zandstra, published 5th January 2017)
The 5th edition of this popular book has been fully updated for PHP 7, including replacing the PEAR package manager with Composer, and new material on Vagrant and PHP standards. It provides a solid grounding in PHPs support for objects, it builds on this foundation to instill core principles of software design and then covers the tools and practices needed to develop, test and deploy robust code.

PHP Arrays: Single, Multi-dimensional, Associative and Object Arrays in PHP 7 Paperback (by Steve Prettyman, published 6th January 2017)
Gain an in-depth understanding of PHP 7 arrays. After a quick overview of PHP 7, each chapter concentrates on single, multi-dimensional, associative and object arrays. PHP Arrays is a first of its kind book, using PHP 7, that demonstrates inserting, appending, updating, and deleting array data.

Jobs

Software Engineer – PHP – trivago – Leipzig, Germany
Join our dynamic Software Engineering department as a PHP Developer and help shape the future of the world's largest hotel search. With around 3 billion requests per month, we are operating on a large scale in a complex and rapidly evolving IT landscape. We encourage all team members to question established processes and give them the freedom to experiment with new technologies in order to drive trivago to the next level.

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 katie@phpweekly.com

Interesting Projects, Tools and Libraries

stream-php
PHP client for Stream.

swap
Exchange rates library for PHP 5.3+. Swap allows you to retrieve currency exchange rates from various services such as Fixer or Yahoo and optionally cache the results.

libsodium-php
A simple, low-level PHP extension for libsodium.

betterreflection
Better Reflection is a reflection API that aims to improve and provide more features than PHPs built-in reflection API.

lionframe
Rapid API development framework for PHP.

expression
Implementation of the Specification pattern and logical expressions for PHP.

flintstone
A key/value database store using flat files for PHP.

peridot
The highly extensible, highly enjoyable, PHP testing framework.

php-spider
A configurable and extensible PHP web spider.

spress
Spress is a static site generator built with Symfony components.

gravel
A PHP Gravatar.com library enabling developers to easily access, display and manipulate user avatars in their applications.

hhvm
A virtual machine designed for executing programs written in Hack and PHP.

Please help us by clicking to our sponsor:

 From our sponsors:

Hire Top Designers Faster The search is over. Let Toptal connect you with the world’s most talented web and UX designers. Get started today.

(ads by LaunchBit) 

So, how did you like this issue?

Like us on FacebookFollow us on Twitter
We are still trying to grow our list. If you find PHP Weekly useful please tweet about us! Thanks.
Also, if you have a site or blog related to PHP then please link through to our site.

unsubscribe from this list | update subscription preferences 
 

Protect your PHP code with SourceGuardian 10. Free trial.

 

Copyright © 2017 PHP Weekly, All rights reserved. Email Marketing Powered by MailChimp

Source: PHPWeekly January 19th 2017“>phpWeek

Tags:

Leave a Reply

Your email address will not be published. Required fields are marked *