Subscribe! Enter your email address below:

NO SPAM: We absolutely hate spam. We will not share, rent, or give away your email address to anyone.You can unsubscribe at any time. Easily!

July 20, 2017

Hello to the PHP community, and welcome to

If you want to ensure your subscribers catch every post you make, follow this tutorial on creating a custom Wordpress Plugin offering instant SMS notifications whenever you publish a new blog post.

Also this week we have the third part of the Journey Into Mautic series, this time looking at the necessary cron jobs to make Mautic run.

The Drupal Association membership campaign is happening now, and for the next few weeks, encouraging individual and organisation members to join or renew.

Plus the Sound of Symfony podcast returns, with Beau Simensen as a guest, talking Webpack Encore and Event Sourcing.

And finally, PHP TestFest 2017 will be taking place later in the year, with the aim to improve the code coverage of the test suite for the PHP programming language. Find out how to participate.

Have a great weekend,

Katie and Ade

Please help us by clicking to our sponsor:

encrypt php scriptsProtect 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.


What a Senior PHP Developer Should Know in 2017
This post is my opinion about what I think a senior PHP developer should know in 2017. The main reason for me to write this post is to help developers better understand their own knowledge and if they are missing something to hit the next level in their careers. An important note is that this post is not the universal truth about what a senior PHP developer should know. Keep this in mind and enjoy the reading.

Why You Should Learn Symfony in 2017
Understand how the Symfony project evolves and why it is always worthy to get involved, but differently.

How You Can Help During Our Membership Campaign
Join in the fun during the Drupal Association membership campaign happening now through August 4. We're providing personalised certificates of membership to individual and organisation members who join or renew during the campaign, and we need your help spreading the word.

The Theory of Constraints in PHP
There’s just something about building something that’s ineffective, that’s more relatable to me than breaking something that’s weakly built. The Theory of Constraints can be distilled to the idea that the chain is only as strong as its weakest link.

Why Developers Should Not Code
The ultimate problem with program code seems to be that no human really understands it. Sure, we can look at a short piece of code and be relatively clear on what it does, but can we still do the same thing with programs that span tens or even hundreds of thousands of lines?

10 Best CRM & Project Management PHP Scripts
As a freelancer and someone who works with a small business, I have experienced the pain points of project management. The solution is usually an ever-changing mix of various apps and services that never feel quite right. I am always interested in trying something new since there always seems to be room for improvement. However, there's one solution I haven't tried: hosting my own CRM and project management solution. Setting up your own CRM and project management system not only keeps your data completely in your control, it also consolidates everything into one place. One admin. One URL. It's a beautiful thing. In an effort to find a solution for myself, I've compiled a list of the 10 best CRM and project management PHP scripts freelancers and small businesses should consider.

Tutorials and Talks

Using Model Factory States To Create Related Models
Defining relationships in a model factory can be a great way to clean up your test code, but it is not without problems. It makes test setup implicit instead of explicit and it can interact with the save() method in unintended ways. This article quickly explores those problems and suggests a solution.

Re-Introducing Eloquents Polymorphic Relationships
You’ve probably used different types of relationships between models or database tables, like those commonly seen in Laravel: one-to-one, one-to-many, many-to-many, and has-many-through. But there’s another type of relationship that’s not so common: polymorphic. So what is a polymorphic relationship?

How to Send SMS Notifications to Readers When New WordPress Posts are Published
Make sure your subscribers see every post by offering instant SMS notifications when you publish new blog posts in WordPress. At the end of this project, you will have a custom WordPress Plugin.

Mattermost Webhooks and PHP
In a recent attempt to automate a few things even more, I was looking for a way to post messages to our Mattermost instance via the Incoming Webhook feature of Mattermost. I did a quick search on Packagist for Mattermost client libraries and, as it turns out, there are quite a few. I picked the thibaud-dauce/mattermost-php package simply because it was the first match ;)

How To Install HTTPS On Your WordPress Site – The Easy Way
HTTPS (HTTP + SSL) is a transfer protocol that ensures a secured connection between the client and the server. This article shows how to easily add HTTPS support to any WordPress website in order to make visitors more secure and enhance the average quality of your website.

Apigility on Expressive Update
We've been working on the Apigility on Expressive initiative for a couple months now, and have a bit of progress to report. First, if you're unfamiliar with the initiative, please head over and read the RFC. In this post, we'll discuss what's done and ready to review, and what pieces are in the works.

Education Station: Simple, Compact Time Range Creation with Period
For the longest time, I’ve enjoyed using PHPs DateTime library. I’ve always found it to be relatively straightforward in creating DateTime objects for use with various applications I’ve written. However, one thing that isn’t very simple, nor intuitive, is the ability to create time ranges - especially ones requiring some degree of sophistication, such as fiscal quarters, for financial reporting requirements.

Optimise Images in Laravel Apps
A while ago we released image-optimiser. In short this package can make all kinds of images smaller by stripping out metadata and applying a little bit of compression. Read this blog post to learn more about it. Although it’s pretty easy to work with the package, we felt that we could deliver a more seamless experience in Laravel apps. That’s why we created our newly released laravel-image-optimiser package.

Code Injection in Signed PHP Archives (Phar)
PHP contains an interesting but rarely used feature called Phar, which stands for PHp ARchive, that allows developers to package entire applications as a single executable file. It also boasts some additional security benefits by signing archives with a digital signature, disallowing the modification of the archives on production machines. 

Laravel 5.5 Custom Validation Rule Objects
Laravel 5.5 will introduce support for custom validation rule objects as an alternative to using Validator::extend for custom validation rules.

How Can PHP Compare Two Images for Similarity
Some applications need to be able to tell if two images are similar in the sense that they show the same thing. The PHP Compare Images Similarity class can be used for that purpose. Read this article to learn about this class and how you can use it in PHP applications for checking if two images are the same or not.

Bouncer: A Laravel Package for Role and Ability Authorisation
An authorisation package which allows role and ability checks at Laravels authorisation gate, Bouncer makes it trivial to quickly create roles and abilities with a fluent API that creates them automatically.

Create a Messenger Bot with a WordPress Backend
Bots are all the rage these days. They call us while we’re eating dinner, they merge our data for us, they take part in our elections, and they’re taking over Facebook Messenger. As a wannabe bot creator myself, I couldn’t resist the hype any longer, so I started tinkering with Facebooks Messenger Platform to see what it would take to start chatting with my own code.

How to Register & Use Laravel Service Providers
If you've ever come across the Laravel framework, it's highly unlikely that you haven't heard of service containers and service providers. In fact, they're the backbone of the Laravel framework and do all the heavy lifting when you launch an instance of any Laravel application. In this article, we're going to have a glimpse of what the service container is all about. Following that we'll discuss the service provider in detail.

Mautic Step 2 – Cron Jobs
This is the third post on “My Journey into Mautic”. I’m getting Mautic – a Marketing Automation Tool – setup and running on my own server. Along the way I’m sharing what I’ve learned in hopes that it helps someone, or at least helps me the next time I go down the road. This time we are talking about the cron jobs necessary to make Mautic run.
News and Announcements

Announcing PHP TestFest 2017
For those who’ve been around the PHP community for a while, you’ll recall the successful PHP TestFest events that began after a discussion at PHP Quebec in 2008. Many user groups and mentors signed on to host and help with events, and a lot of folks became first-time contributors to the PHP project, helping improve our code coverage. It ran strong in a global sense from 2008 to 2010. After that, various groups (particularly the Brazilian groups) have continued the tradition. A few months ago, at php[tek] in Atlanta, I mentioned to Michelangelo that I’d love to bring back PHP TestFest. Sammy had given an excellent talk on writing PHPT tests, and Gemma tweeted a link to the old PHP TestFest wiki page. From there, things snowballed.

JsonMapper v1.2.0
Yesterday I released JsonMapper version 1.2.0, adding support for multi-dimensional arrays: int[][][]. ‚Äč

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. Tickets are on sale now.

PHP Developer Day - September 22nd 2017 Dresden Germany
We - the PHP USERGROUP DRESDEN e.V. - are proud to present the PHP Developer Day for the 3rd time in a row. Just like the past two events in 2015 and 2016, top talks, free exchange of knowledge, community and fun stand in the foreground of the event again. Tickets are on sale now.

PHPCE - November 3rd-5th 2017 Rawa Mazowiecka, Poland
phpCE is the first edition of a community conference for PHP programmers and enthusiasts. The meeting was established by merging two nation-wide events: PHPCon Poland and Brno PHP Conference. The Call for Papers is now open.

Scotland PHP Conference - November 4th 2017, Edinburgh
The Scotland PHP Conference is back for a second time, where community members from around the world come together to learn and share information about the latest trends and technologies in professional PHP development. The Call for Papers is still open, and Blind Bird tickets are on sale now. 


Sound of Symfony Podcast: Episode 18 - Event Sourcing
 In this episode we talk a little bit about Webpack Encore, and a lot about Event Sourcing, with our guest, Beau Simensen.

Changelog Podcast #256: Ubuntu Snaps and Bash on Windows Server
We talked with Dustin Kirkland (Head of Ubuntu Product and Strategy at Canonical) at OSCON about 12.04s end of life, the death of the Ubuntu phone, Snaps and snapd, and Bash on Ubuntu on Windows Server. This is the second installment of our mini-series from the expo hall floor of OSCON 2017. Special thanks to our friends at O'Reilly for inviting us to OSCON.

MageTalk Magento Podcast BONUS EPISODE - “Quality Content, Terrible Audio”
We recorded this conversation we had on the phone on our respective drives home from work. The audio quality is awful, the content is awesome!

Laravel News Podcast LN42: Laracon Sessions with Taylor Otwell, Jeffrey Way, Matt Stauffer, and Adam Wathan
In the final Laracon Sessions episode for 2017, Jake and Michael are joined by Taylor Otwell, Jeffrey Way, Matt Stauffer, and Adam Wathan to get the final word on the upcoming Laracon US conference in New York City.

The Laracasts Snippets Episode 66: The Interview Question I Would Ask
Developers have come to dread interviews. What sort of silly, gotcha question that has nothing to do with building web apps whatsoever will I have to stress about this time? If I were hiring a new coder, I'd asking them an almost laughably simple question: "Is it okay to send an email from a controller? Explain why." It's such a basic question, yet I guarantee the answer you are given will speak volumes about the type of developer you're interviewing.

Zend Framework Quick Bites Episode 32 -  Is This The Right Way to Develop a Zend Expressive Module?
In this episode, I have a question that I hope you can help me answer: Is this the right way to develop a Zend Expressive Module? Have a listen to the episode and let me know because I’m keen for your thoughts. I’m creating a new module which will handle rendering static pages in a Zend Expressive project.

PHP Ugly Podcast #64: Bad Apples
Recorded June 8th, 2017. Topics include WWDC 2017, PHP Internals Book Open-Source License for Seeds, and PHP 7.2.0 Alpha 1 Release.

Three Devs and a Maybe Podcast - RFC Showdown, Round 2 with Joe Watkins
In this weeks episode we catch up with Joe Watkins, discussing all things PHP. We start off the discussion with how his role as release-manager is going for PHP 7.1, highlighting how Security bugs are defined and handled within internals. Following this we chat about several RFCs that are under-discussion (Retry Keyword, UUID) and accepted (Libsodium, Object Typehint) for the next release. Finally, we mention a recent small extension Joe has been working on to provide user verified types within the language.

Reading and Viewing

Compiling PHP From Source, by Sammy Kaye Powers
If you've ever wanted to get involved with PHP internals, writing tests is a great way to get your foot in the door. The tests are written in PHP so you don't even need to know C to get started. The first step to writing tests for PHP source is downloading and compiling the PHP source code.

Cloudways Interview - Darshit Parmar On Magento 2 And Store Optimisation
Darshit Parmar is an expert in Project Management and SEO. He has more than a decade of experience of working with ecommerce business owners and improving the overall store performance. Darshit is a certified Google Analytic Individual and has extensive experience with Oracle 9i.

TDD Is Dead. Long Live Testing
At the April 2017 PHP SA Meetup, Sam Greenwood did an introductory talk on test driven development. He had a pretty mixed audience but a good introduction into the topic. Watch the video here.

100 Best WordPress Plugins: Let your WordPress website rock (by Ratliff Puccinits, published 9th June 2017)
Here are 100+ WordPress plugins, categorised under social, security, e-commerce, sliders galleries, speed optimisation, SEO optimisation, comment and form builders and much more.

Mastering PHP 7 (by Branko Ajzele, published 27th June 2017)
PHP is a server-side scripting language that is widely used for web development. With this book, you will get a deep understanding of the advanced programming concepts in PHP and how to apply it practically. The book starts by unveiling the new features of PHP 7 and walks you through several important standards set by PHP Framework Interop Group (PHP-FIG). 


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 [email protected]

Interesting Projects, Tools and Libraries

Dumper based on Laravel for non Laravel projects.

This plugin allows you to send notifications to Slack channels when certain events in WordPress occur.

A Content Management System (CMS) which allows you to build websites for any purpose. Yes, from blog to corporate mega portal.

HtmlElement is a library to make dynamic HTML rendering more managable.

Simple, modern & fast web-based email client.

An open-source content management platform based on the Symfony PHP framework. Use it as a CMS to develop and manage enterprise multi-sites or as a development environment to create reliable and high-performant web-apps.

An open source game server management panel, designed for both small networks and game server providers.

This package provides a handy way to work with strings in PHP.

PHPCheckstyle is an open-source tool that helps PHP programmers adhere to certain coding conventions. 

Lightnings mission is to enable developers to create great authoring experiences and empower editorial teams.

The multipurpose rss reader, live stream, mashup, aggregation web application.

Add tags and taggable behaviour to a Laravel app.

Please help us by clicking to our sponsor:

encrypt php scriptsProtect 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.

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 

Subscribe! Enter your email address below:

NO SPAM: We absolutely hate spam. We will not share, rent, or give away your email address to anyone.You can unsubscribe at any time. Easily!

Talk to us!

If you have some news, want to share a link with us or chat with us feel free to email us.

And we also have an RSS feed that you can use.

Like us on FacebookFollow us on Twitter

Copyright ©