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!

August 20, 2015

Hi there PHP fans,

Ever wanted to pass on your PHP expertise to a less experienced developer? Or just starting out in PHP development and could do with some guidance? The PHP Mentoring Organisation helps you to form great personal development relationships with your peers.

Also this week, we have the first article in a series about using Traits to share common methods across multiple unrelated classes.

The Free The Geek Podcast, released this week, features an interview with Cal Evans about being a professional developer.

Plus, we have a beginners guide to WooCommerce, starting with an introduction to adding and managing products.

And finally, Northeast PHP is only a couple of days away. Taking place in Massachusetts, there is still a handful of tickets left.

Have a great weekend everyone,

Katie and Ade

We love our sponsors. Why not try them?


 From our sponsors:

MongoDB Courses Taught by the Experts Learn how to use MongoDB, the leading non-relational database. Our online courses are taught by the engineers who build the database.
(Ads by LaunchBit


Why Drupal's Bug Bounty is Important
The Drupal project has just announced a bug bounty program where they’re offering sums between $50-1000 USD for anyone who finds and reports a security issue with Drupal 8. One thing to note, they’re only looking for Drupal 8 issues here, not problems in past editions.

PHP Mentoring Application Launched
Mentorship is a personal developmental relationship in which a more experienced or more knowledgeable person helps to guide a less experienced or less knowledgeable person. We are a formal, personal, long term, peer to peer mentorship organisation focused on creating networks of skilled developers from all walks of life. If you are interested in becoming either a mentor or an apprentice, this article tells you how to get started.

6 Rules of Thumb to Build Blazing Fast Web Server Applications
In this post I will try to highlight some of the most common principles that you have to take under consideration when you want to achieve a great level of performance while building a web application (specifically on the backend part). I believe the concepts discussed here can be applied to any language and framework even if, due to my specific experience, I will mention some examples, design patterns, conventions and tools that are mostly used in the PHP world.

Tutorials and Talks

How To Install Linux, Apache, MySQL, PHP (LAMP) Stack on Ubuntu
LAMP stack is a group of open source software used to get web servers up and running. The acronym stands for Linux, Apache, MySQL, and PHP. Since the virtual private server is already running Ubuntu, the linux part is taken care of. Here is how to install the rest.

Rendering Data in Yii 2 with GridView and ListView
In my previous article about Yii 2.0, I introduced the ActiveRecord implementation. Once you have some data in your database you’ll want to be able to show it. Yii uses DataProviders to interact with data sources and it provides some widgets to output the data. Of these, the ListView and GridView provide the most functionality.

How to Create a PHP C Extension to Manipulate Arrays - Part 1: Basic Array Class Extension
In PHP projects, arrays are used everywhere, because they are useful and flexible to store all sorts of data structures. However, when you need to maximise the performance and manipulation of arrays for specific purposes, you can achieve great gains if you implement a PHP extension written in the C language. Read this tutorial to learn how to build your own basic array manipulation extension in C.

Client-side API Rate Limiting in PHP
If you make too many requests to an API you may meet its rate limit. This is usually represented as an HTTP 429 code with message “Too many requests”. Here is a suggestion to manage rate limiting client-side in PHP. 

PHP Dumper using Websockets
Another crazy idea. I want to dump my backend output in the browser’s console. There’re several PHP dumpers. For example Raul Fraile’s LadyBug. There’re also libraries to do exactly what I want to do, such as Chrome Logger. But I wanted to use Websockets and dump values in real time, without waiting to the end of backend script. Why? The answer is simple: Because I wanted to :)

Automated deployment with AWS Elastic Beanstalk (EB) – Part II
In the previous part we set up a dedicated Symfony application on Docker virtual containers and prepared environments that may be transferred between developers during project cycle. The next step is to prepare the application for pushing into the cloud. There are many options available on the market – Heroku, DigitalOcean and, my favorite, AWS Elastic Beanstalk.

Forcing Doctrine to Persist
Anna Filina stumbled upon a case where Doctrine would refuse to persist her entity due to a very special circumstance. Here’s the context: She's using a generic method in her Repository to fetch a Post. She's selecting partial fields like this....

Introduction to OwnCloud Server: File Sharing Under Your Control
OwnCloud provides a free, open source file sharing and application server and platform with desktop and smartphone applications, allowing you to create a personal or corporate cloud under your own control. This is the first tutorial of a series I'll be focusing on with OwnCloud.

Making String Concatenation Readable in PHP
Probably all PHP developers know how to concatenate strings. The most popular method is using the .-operator.  For small concatenations, using this operator works fine. When lots of strings or variables need to be combined it can become cumbersome.

Zend\Input Fallback Value
Recently an issue was reported against Zend\InputFilter where the reporter discovered a regression where the fallback value wasn't being populated correctly. After investigation, the problem was fixed, and then reviewed by Rob Allen. He didn't realise (or had completely forgotten!) that Zend\Input and Zend\InputFilter supported fallback values, so he looked into it and it turns out that it's simple and works exactly as its name implies.

Mastering Image Optimisation in WordPress
When building and maintaining WordPress websites, it’s important to find ways to improve site performance and decrease page load times. This helps reduce bounce rates and increase rankings on search engines. In this article we will explore different ways of optimising JPEG and PNG images, which are uploaded by clients and site owners into WordPress.

Building a Basic Router
There is always value in learning about the internals of the frameworks and libraries we use. It allows for a deeper understanding of the problem being solved and appreciation of the work that has gone into these projects. So today I will be building a basic router to explore this fundamental part of even the smallest framework.

How to Make Better Reuse of PHP Code using Traits Part 1: Basic Code Reuse
When you want to share common methods across multiple unrelated classes, in PHP, traits are the way to go. They contain the power of an abstract class with the added ability to resolve conflicts which makes them the perfect place to store your favourite methods to quickly use in any project. Read this article to learn what are traits, using simple analogies and how you can use them to make better reuse of your code in multiple classes for very different purposes.

The Beginners Guide to WooCommerce: An Introduction to Adding & Managing Products
Whenever we talk about any online store, products work as a backbone for its foundation. Store owners are always looking for an easy way to manage and add products on their eCommerce website. Sadly, in the past this remained a tiring task which held many people back from launching their online stores. But WooCommerce brought a sigh of relief for all such people. Products can be added and maintained very well with this plugin. It is now a matter of only a few clicks and you can add as many products as you want to sell. 

Think About It: Loop Iteration Performance (Part 2)
This article is the second of a three-part series and describes how we optimised our data processing and reached performance improvements tweaking our code. Make sure you covered the first article about how we tweaked PHPExcel to run faster while reading Excel and CSV files.

News and Announcements

Symfony Live London - September 17-18th 2015, London
With over 300 engineers, developers and IT professionals, SymfonyLive London 2015 has something special in store. This year not only marks the fourth year of SymfonyLive London, but is also the 10th birthday of the Symfony framework itself. We’ll be celebrating with a stellar line-up of speakers from the community, a birthday social to end all birthday socials, and a limited edition Symfony elePHPant. Tickets are on sale now.

Northeast PHP Conference - August 22nd-23rd 2015, Boston
The Northeast PHP Conference is a community conference intended for networking and collaboration in the developer community. Two days of talks ranging from starting work in the industry to expanding your skill set as an experienced user, there are sessions for everyone! Still some tickets available.

PHP Conference Asia - September 22nd-23rd 2015, Singapore
A new conference has been announced - PHP Conference Asia, the first Pan Asian PHP conference. With Rasmus Lerdorf already confirmed as a speaker, Early Bird Tickets are on sale now.

DrupalCon - September 21st-25th 2015, Barcelona
DrupalCon brings together thousands of people from across the globe who use, develop, design and support the Drupal platform. It is an action-packed week of all things Drupal and features a full schedule of educational, networking, and contribution opportunities. Tickets are on sale now.


Acquia Podcast - Drupal 8 All-in: Acquia is Ready For Your D8 Project Now!
Part 2 of 2 - In a recent conversation with Tom Erickson, Acquia's CEO, we got to talking about Acquia's "Drupal 8 All-In", what it is and what it means for the Drupal world and those we have yet to convince ... Acquia has drawn a line in the sand, saying, this thing is so great, we are confident we can deliver the kind of help and experience that we've been guaranteeing with Drupal over the last 7 or 8 years. This thing is ready enough, and all of the rough edges that we find along the way; this is the perfect opportunity to sand them off. This thing, Drupal 8, is ready for real business. In short: Acquia is running customer sites on Drupal 8 already, supporting all of Drupal 8, helping get the last rough edges off it for general release, and we would love to talk with you about your next project and whether Drupal 8 is a good fit!

MageTalk Magento Podcast #55 - Kay Lynn Durr Jen
The guys get a taste of their own medicine when Ecomdev's Ivan Chepurnyi shows up to mispronounce their names.

PHP Round Table Podcast Episode 27 - A Laracon US Special
A live recording from Laracon US in Louisville, Kentucky.

dev/hell Podcast Episode 64 - Dogs Using iPads
We recorded this episode with special guest Joe Ferguson about a month ago, but all sorts of family stuff delayed the release. On this episode we talk canine gold farming, bald eagles and beavers, how Joe secretly controls NomadPHP MC, NomadJS, and MemphisPHP, whether you’re supposed to drink Magners over ice, and how great Chris Cornutt is. We talked about more stuff but I got tired of writing things down.

Free The Geek Podcast: Episode 3 - Being a Professional Developer, with Cal Evans
In this episode, I have a fireside chat with voice of the PHP community, the one and only Cal Evans, about one of his books - Going Pro. We talk about a range of things, including what motivated him to write the book, how the book's been received, people Cal believes are excellent examples of professional programmers, and much, much more.

Lately in PHP Podcast Episode 62 - Google and Intel to Help PHP 7 to Become Faster and More Secure 
Recently, researchers from Google and Intel have approached the PHP core developers to offer to contribute to PHP development by implementing features that will make PHP fast and more secure. These Google and Intel researchers' help offers, and their first proposals, were one of the main topics discussed by Manuel Lemos and Arturs Sosins in Episode 62 of the Lately in PHP podcast.

Voices of the ElePHPant - Interview with Maurya Couvares
This week Cal interviews Maurya Couvares, discussing how she set up the youth training program ScriptEd, and what she has learned from starting up the program.

Reading and Viewing

The Specification Pattern in PHP
Though certainly not for everything, you may find situations where the specification pattern can prove to be exactly what you need. In this lesson, we'll review the core concept, while using TDD and PHPUnit to drive our code.

Video: Database Access with PHP
In this screencast I explain how to connect and extract data from a database using PHP, touching on topics like PHP Data Objects (PDO), preventing SQL injection, and, finally extracting your data in variety of different formats (as arrays, classes, or objects).

Moodle Administration Essentials (by Gavin Henrick, published 23rd July 2015)
Authorise and authenticate your Moodle site, learn about permissions and security, brand your Moodle site and manage users, roles, files and courses.

Real iOS App Development: A Sample-Code Approach to Building Apps Paperback (by Dale Matheny, published 29th Jul 2015)
Real iOS App Development allows you to develop apps using code from a real published app. Viewing and reusing sample code within a robust app is a great way to learn and develop iOS apps. The book’s sample app, WebMarks, is on the Apple App Store and you get the full source code to use in your apps. The book walks you through everything you need to start building apps you can submit to the App Store.

Speaker Highlights - Larry Garfield
Larry Garfield is an active Drupal core contributor, including the principle architect of the Drupal 7 database system and the Drupal 8 Web Services Lead. He is a co-author of “Drupal 7 Module Development” from Packt Publishing. In the following interview he shares his thoughts on Drupal as a whole and Drupal 8 in particular, as well as conference experience and talks.


PHP Engineer - The Nerdery
As a PHP Software Engineer at The Nerdery, you'll have the opportunity to work on projects for a wide range of clients. We have opportunities to solve customer projects with a wide variety of frameworks and platforms such as Symfony, Silex, Drupal, WordPress, ExpressionEngine, Craft and Zend Framework. The position provides opportunities to expand your horizons to reach your personal development goals.

To post a job advert please contact [email protected]

Interesting Projects, Tools and Libraries

This list contains PHP libraries related to web scraping and data processing.

Create and validate signed URLs with a limited lifetime.

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

A curated list of amazingly awesome open source sysadmin resources inspired by Awesome PHP.

This is a library package that includes the PHP Markdown parser and its sibling PHP Markdown Extra, with additional features.

This library is intended to provide forward compatibility with the password_* functions that ship with PHP 5.5.

Workerman is a library for event-driven programming in PHP, with a huge number of features.

Plitz is a pure PHP port of the Blitz PHP template extension.

A lightweight, simple and easy PHP library for calculating annuities (e.g., mortgages) according to various input data.

Self-hosted rss reader (php / mysql or sqlite) - Google Reader alternative.

PHPCoverFish is an open source php(cli) code coverage pre-processor.

Custom PHP portfolio package for the Laravel 5 framework.

Smart PHP intelligent code completion server for composer projects. 

A simple lightweight PHP framework.

Icicle is a PHP library for writing asynchronous code using synchronous coding techniques.

MINI is an extremely simple and easy to understand skeleton PHP application, reduced to the max. 

PHP-DI dependency injection container implementation for Slim Framework.
Please help us by clicking to our sponsor:

 From our sponsors:
MongoDB Courses Taught by the Experts Learn how to use MongoDB, the leading non-relational database. Our online courses are taught by the engineers who build the database.
(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 ©