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!

September 15, 2016

A very warm welcome to you out there in the PHP community, and thank you for joining us :)

It's been over five years since Symfony was released and, since then, an incredible 500 million Symfony packages have been downloaded by the PHP community. You're all invited to take part in celebrating this fantastic achievement.

Also this week, we have the latest part of a series on how to launch a startup with PHP, from concept to reality. This weeks tutorial focuses on the custom features in your meeting planner needed to provide different meeting invitation views.

We take a look at code quality and the best way to maintain it, starting with static analysis tools.

Plus find out what's been happening with Drupal in the August edition of What's New on

And finally, PHP Benelux has been announced, taking place over two days in January, in Antwerp. The Call for Papers is now open.

Have a great weekend,

Ade and Katie

We love our sponsors. Why not try them?

 From our sponsors:
Turn Errors into Awesome Over 50,000 developers rely on Rollbar to track 11,788,093,522 errors...

(ads by LaunchBit) 


The Road to 500 Million Symfony Downloads
Symfony 2.0 was released on July 28th, 2011. Five years later, we're on the verge of achieving an incredible milestone: 500 million Symfony packages downloaded by the PHP community (made with Composer). We're thrilled about this event and we want all the community to take part in its celebration.

Geeks Giving for Aids: 2016
For the third time, Phil Sturgeon will be doing a three-day ride from Boston to New York, along with hundreds of amazing people. Everyone is at various levels of fitness and with various levels of interest in cycling, but everyone will come together with the aim of helping raise a shitload of money to help those living with HIV/Aids. Looking to donate? There are some great rewards to be had.

The Six Commandments of Good Code: Write Code that Stands the Test of Time
The following are some things I’ve discovered in my career as an engineer at big companies and small, in the USA and abroad, that seem to correlate with maintainable, “good” software.

When It Comes to Submitting Talks, How Many is Too Many?
CFP season is once again upon us. Sunshine PHP’s CFP is open, and the early conferences for next year will open soon. PHP developers, regular speakers and potential speakers all around the world are opening up documents and thinking through which talks they should submit, and which they should retire. Cal Evans draws on his own experience to give some top tips on the best course of action.

Laravel Shift - 1,000 Applications Upgraded
A retrospective on creating Laravel Shift as it reaches its milestone of 1,000 Laravel applications upgraded.

What's New on - August 2016
Our latest update about comes as the Drupal Association has moved out of our central office in Portland, OR, and gone to an all-distributed team. A move of that sort always creates some upheaval, but amidst the move we've continued to push forward on several initiatives to improve At the same time we've been pushing forward towards DrupalCon Dublin at the end of September - and we hope to see you there!

Tutorials and Talks

Solidify Fragile Tests
On my first week at the new job I was tasked to fix some tests that were logging data. While the fix was simple enough, by using `Psr\Log\NullLogger as Logger` instead of `Monolog\Logger` in the test, during the process I ran into another test that appeared quite fragile.

The Art of Using Repositories in Laravel 5.3
While this article has been prepared for Laravel 5.3, it’s still valid for 5.2, and 5.1 releases as well. It’s an easy to read, simple to implement tutorial about using repositories and granular caching for models.

Building Your Startup: Customising the Meeting View
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 this tutorial, we'll cover the custom features that are needed to provide different views depending on who is looking at meeting invitations. Before we begin emailing the invitation to participants, we need to have a view ready with potentially restricted functionality to share with them. Essentially, we're making sure the meeting view is exactly what's needed for the meeting owner and the meeting participant. Follow along to learn what's needed.

Static Analysis with PHPSA: PHP Smart Analyser
One requirement that never changes whether you are working on your projects alone or in a team, on small projects or big, is Code Quality. The bigger the project and the team, the harder it gets to maintain it. A good way of slowing this increase in difficulty down is to use static analysis tools. 

Custom CSS in TYPO3 backend
To be able to adjust some non-configurable menu items I wanted to inject my own CSS into the TYPO3 backend.

Avoiding Quasi-Immutable Objects in PHP
Immutability in PHP is most practical when the object properties are scalars or nulls. Using streams, objects, or arrays as properties makes it very difficult, sometimes impossible, to preserve immutablity.

Building a Search Engine Friendly Sitemap XML with Laravel
A few years ago search engines recommended submitted sitemaps to help with indexing your website and now the importance of this is debatable. I’m of the mindset creating and submitting can’t hurt, so I spent a little time putting one together and wanted to share how easy this is in Laravel.

PHP: Using class_alias To Maintain BC While Moving/Renaming Classes
Sometimes you want to rename a class or move it to a different namespace. But as soon as it is used anywhere outside the package, this is breaking backwards compatibility and should not be done lightheartedly. Luckily there is a way in PHP to have both, the old class and the new class, while deprecating the old one: class_alias().

Laravel Quick Tip: Model Route Binding
One of the great things that Laravel provides is the easy to use routing component. It offers simple URLs, parameters, grouping, naming and event guarding route groups, to name a few of the different options. Let’s pretend we have a list of categories in a database, and the admin can manage categories from the back end.
News and Announcements

WordPress 4.6.1 Security and Maintenance Release
WordPress 4.6.1 is now available. This is a security release for all previous versions and we strongly encourage you to update your sites immediately.

Drupal 8.2.0-rc1 is Available For Testing
The first release candidate for the upcoming Drupal 8.2.0 release is now available for testing. With Drupal 8, we made major changes in our release process, adopting semantic versioning and scheduled releases. This allows us to make significant improvements to Drupal 8 in a timely fashion while still providing backwards compatibility. Drupal 8.2.0 is the second such update, expected to be released October 5.

WordPress Announces the Twenty Seventeen Theme
WordPress 4.7 will launch with a brand new theme – Twenty Seventeen. Designed by Mel Choyce (@melchoyce), Twenty Seventeen sports a modern look and will make a good base for any business website or product showcase.

Laravel 5.3.8 is Released with New Fakes for Events, Jobs, Mail, and Notifications
Laravel 5.3.8 is now released with new improvements for testing by included new fakes for events, jobs, mail, and notifications. Here is a quick look at how these new testing features work.

WordCamp - September 17-18th 2016, Nashville
Camps of years’ past have happened all in one day, but this year we’re expanding to two. The first day will be familiar to attendees from previous years – 8 hours of sessions that fall into three tracks targeted at different types of users, followed by the always-popular after party. The second day will be a contributor day where attendees can learn how to contribute to WordPress in a variety of ways from code to community organising, supplemented with small classes that will allow attendees to go in-depth on three different topics. Tickets are on sale now.

PHP North West Conference - 30th September - 2nd October 2016, Manchester
For the ninth year running, the community run PHPNW Conference will be ready to welcome over 500 delegates to the Manchester Conference Centre in October. Our conference has the reputation within the PHP community as a ‘go to’ conference, with our friendly style, inspiring content and valuable community network. Join us for 2016 for our biggest event yet! Tickets are on sale now.

Forum PHP - October 27-28th 2016, Paris
The annual conference organised by the French PHP-users group, gathering all PHP and Open Source communities, pros and PHP lovers. Tickets are on sale now.

DrupalSouth - October 27-28th 2016, Queensland
DrupalSouth is the largest conference in Australia and New Zealand dedicated to the Drupal content management system. With three conference tracks focusing on Planning, Building and Inventing, tickets are on sale now.

SymfonyCon Germany - December 1st-3rd 2016, Berlin
SensioLabs is proud to organise the fourth edition of the SymfonyCon, the international Symfony conference. This year, to celebrate Symfony, we decided to bring the entire community to Germany to discover Berlin, a very special vibrant city. We look forward to welcoming you to Berlin for talks, workshops, discussions and other serious work around Symfony and its environment, then sharing this very special German atmosphere… And of course, celebrating the community reunion! Tickets are on sale now.

ConFoo - December 5-7th 2016, Vancouver
ConFoo Vancouver is a multi-technology conference for web developers. 100 presentations by popular international speakers, focused on pragmatic solutions for web developers, with great content and amazing experience. Early Bird tickets are on sale now.

PHP Benelux Conference - January 27-28th 2017, Antwerp
The conference and tutorials will take place at Hotel Ter Elst in Antwerp (Belgium). Friday morning January 27th we have a set of tutorials. The conference is spread over 2 days: Friday afternoon (after the tutorials) and Saturday. Tutorials as well as the conference itself are spread over several parallel tracks. On Friday and Saturday evening, we’re having the conference social. This will include drinks and all the cool side activities. The Call for Papers is open now.


Lately in PHP Podcast - PHP Articles Report August 2016 Edition
This is the August edition of the podcast hangout recorded by Manuel Lemos and Arturs Sosins to comment on the latest outstanding PHP Articles published recently. They commented on articles about using the HTTPoxy vulnerability that affects some well known PHP applications, how to use the pthreads extension, and several articles and videos to help developers create software product businesses.

Three Devs and a Maybe Podcast - The Vinyl Experience
In this weeks episode we start off discussion on the latest Apple event, what we think the next big product will be (the Apple Hat?!) and phone battery life woes. We then move on to chat about immutable design considerations, controlling mutation to aid performance and being bit by values vs. references. From here we highlight how profilers such as Blackfire are a great way of benchmarking/profiling your application - providing statistics over only your own intuitive claims. Finally, we mention database backup strategies, AVL trees and adding AirPlay support to your Vinyl deck.

dev/hell Podcast Episode 82: Open 24 Hours, Just Not All in One Day
In this scintillating episode Chris and Ed shift gears and talk about their own experiences working “in the open”. Chris is very fortunate that everything he does at Mozilla gets open-sourced while Ed talks about his experiences back when he was running Spaz.

MageTalk Magento Podcast #99.1 -“So Basically You Hate Your Kids and You Can’t Stand Your Wife”
The guys talk about social networks, Alan Storm's blog, deployment strategies,, and Magento Cloud.

Voices of the ElePHPant - Interview with Gary Hockin
This week Cal Evans talks to Gary Hockin, PHP Storm developer at JetBrains.

LaraChat Live - Episode #13
The thirteenth episode from the Slack Channel devoted to learning about Laravel.

The Laracasts Snippets Episode 41: False Alarms
A few nights ago, I was fast asleep when, all of the sudden, the building's fire alarm went off. It definitely woke me up, but I didn't respond in the way you might think. My instinct was to ignore it entirely. How come? And why is this also often true for the tests you write?

Zend Framework Quick Bites Episode 14 - Announcing The Zend\Db Deep Dive Course
After many months of hard work, Zend\Db Deep Dive is ready! SQL’s long been a part of modern web applications, especially those created using PHP. But SQL’s not a skill that sits at the top of most developers key skills list. Nor is it one that we’re often itching to learn. So I created this course to help bridge the gap. If you know the basics of SQL, but want to do it in an object-oriented, reusable, flexible, and maintainable way, then this is the course for you! In this episode, I’m sharing a bit about it, why the course was created, and what you can get out of it.

Reading and Viewing

Joyful Development With Symfony 3
Get your first application off on the right foot by coding along with a real application, using the right tools and learning the best practices from the lead author of the Symfony documentation. These fundamentals will get you ready for everything else you'll need to do with Symfony in the future. In this screencast, we start building an application from the ground-up, exploring the most fundamental parts of the application.

Cloudways Interview with Basilis Kanonidis
Basilis Kanonidis, is a WordPress developer and designer. He is the co-founder of He works as a freelance designer and prefers WordPress when it comes to development. He lives in Thessaloniki, Greece. In this interview, he discusses his views on WordCamps and working on client-side projects.

Non Obvious MySQL Index Optimisation Tricks Part 1
Every developer knows that adding indexes to database tables may speed up database queries. However, in several circumstances this may not be the case, and your application may actually run slower when you add indexes. Watch this short video, the first part of a talk that teaches what are indexes under the hood, how to determine when you should and shouldn't add indexes to your database tables, and alternative solutions to optimise MySQL based applications without adding indexes that could slow down your application.

Learn CakePHP: With Unit Testing Kindle Edition (by Rādhārādhya Dāsa, 22nd August)
Accelerate your development of PHP applications using the popular CakePHP web application development framework and unit testing. This short book shows you how to carry out test-driven development with fixtures, model tests, controller tests, mocks, and test suites.


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

PHP-powered weblog application which gives the user an easy way to maintain an online diary, weblog or even a complete homepage. 

PHP-based open source enterprise management system that can be used with several databases.

PHP package that aims to generate automated texts from data.

PHP frontend for Anope/Denora IRC statistics.

An authentication library that allows PHP applications to easily authenticate users via a Central Authentication Service (CAS) server.

A popular open-source bulletin board written in PHP. This repository also contains the history of version 2.

Powerful implementation of the Specification pattern in PHP.

Math PHP is the only library you need to integrate mathematical functions into your applications. It is a self-contained library in pure PHP with no external dependencies.

CodeIgniter is a PHP full-stack web framework that is light, fast, flexible, and secure.

This PHP library will help you to work with your Pinterest account without using any API account credentials.

PHP library that does almost everything PHP's getimagesize() does but without the large overhead of downloading the complete file.

Open source newsletter and permission email-marketing manager.
Please help us by clicking to our sponsor:

 From our sponsors:
Turn Errors into Awesome Over 50,000 developers rely on Rollbar to track 11,788,093,522 errors...

(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.


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 ©