Cal EvansInterview with Sammy K. Powers (30.6.2015, 05:00 UTC) Link
PHP ClassesReview: Modernizing Legacy Applications In PHP (30.6.2015, 03:58 UTC)
Modernizing Legacy Applications In PHP
Samuel Adeshina
PHP books
Paul M. Jones
After going through this book, I discovered that it is not just apps that were built ‘over a decade ago’ that deserves to be called legacy applications.

Many of the apps we write today also have some of the bad features which makes them worthy to be termed a ‘legacy application’. I felt guilty, because I use a lot of these bad features in my day to day PHP development process, even when I claim I am developing object oriented applications and I believe I am not alone.

I strongly recommend this material to the PHP professionals out there, there are a lot of things we ‘claim’ and ‘think’ we are doing right, just read this book and see for yourself.

Code maintenance engineers from other spheres or areas of software development would also find this book very intrinsic, as it provides references and links to external materials that would help you learn and know more.

This book is a very bright light, that shows us a lot of places and instances where we get it all wrong when it comes to developing with PHP, and also provides how to make them right. Software Maintenance Engineers would find this book very useful, because it laid out a step by step, and chapter by chapter introduction into code maintenance and optimization.
Davey ShafikFarewell Engine Yard! (29.6.2015, 17:49 UTC)

After almost 4 years at Engine Yard, my last day will be July 3rd.

It is a sad thing, but it also means I am moving on to hopefully bigger, exciting, more challenging, and better things.

On Saturday I gave my last conference talk as a Yardee, and I think it was fitting that it was about “What’s new in PHP 7″, as my first talk for Engine Yard was at PHPUK 2012 and it was about “What’s new in PHP 5.4″.

I have had an amazing time working for Engine Yard, learned a lot from lots of smart people, been able to travel the world and meet even more fabulous people. I have been allowed to shape my job around the life I want to lead: to be a good person, to teach and help people, and to spread the joy of the things I love to as many people as possible.

I will be moving on to Akamai Technologies on July 6th as a Developer Evangelist.

I will be working on some thing bigger than I can conceive and I’m excited at the prospect of helping people — particularly in the PHP community — to achieve amazing things using these tools and more.

But I wouldn’t be here if not for all I’ve been enabled to do the last four years:

Thank you Engine Yard ❤️

Y’all should go check out Deis and PRO, they’re pretty awesome!

SitePoint PHPPHP Channel’s 2015 2nd Trimester Update (29.6.2015, 16:00 UTC)
> img.left {float: left; margin: 10px 20px 0 0} ul.contributor_social {list-style: none; margin: 0} ul.contributor_social li {float: left; margin: 3px 3px 7px 3px}

Another three months have passed, and our author roster has expanded again.

Silhouettes of formally dressed people, blurred, walking towards camera

We’ve got six more authors joining us this trimester and they are, in order:

Narayan Prusty, India

Narayan is a very active blogger at Qnimate who actually wrote for SitePoint extensively before - on the WordPress channel. It was only recently that he decided to dive into PHP related topics as well, debuting with a piece on sending emails with PhpMailer - one of the oldest and most reliable email sending packages in the PHP ecosystem.

Continue reading %PHP Channel’s 2015 2nd Trimester Update%

Brandon SavageLet’s work together! (29.6.2015, 13:00 UTC)

I currently have a few projects wrapping up and I’m available to take on new projects, both large and small in the PHP development world. With more than ten years of experience as a PHP developer, I can help you to develop your project efficiently, effectively and with the best possible outcomes. I’ve worked on […]

The post Let’s work together! appeared first on

PHP ClassesTutorial on Creating an AJAX based Chat system in PHP (29.6.2015, 07:38 UTC)
By Ashraf Gheith
AJAX is not a new technology. Many years ago I published this class to implement an AJAX based chat system. It is still useful but AJAX also evolved a bit, so the class also has evolved too.

Read this article to learn how you can implement an AJAX based chat room in your own site using this class that could well be used for instance as the basis of a live customer support system.
SitePoint PHPMobile App Development with Zend Studio (26.6.2015, 16:00 UTC)

The world has turned mobile. This is not new, and it should therefore be no surprise to anyone that the results of the 2015 DevPulse survey by Zend show that a vast majority of PHP developers are working on, or intend to work on, mobile apps.

Mobile app development poses many challenges for developers, one of which is tying in the front end of the mobile application with the back-end web service APIs.

This tutorial describes how to simultaneously create, test and modify both the front and back end of a modern mobile app using Zend Studio’s mobile development features.

The steps described in this article were performed using Zend Studio 12.5 and a Zend Server 8 AWS instance. You can, of course, use any PHP server of your choice, local or remote, to host the API project.

Step 1: Creating a Cloud Connected Mobile Project

Your first step is to create a new Cloud Connected Mobile (CCM) project in your Zend Studio workspace.
A CCM project contains both a hybrid mobile project defining the front-end of your mobile app and a project containing all the back-end APIs.

Continue reading %Mobile App Development with Zend Studio%

Ilia AlshanetskyDutch PHP Conference 2015 - Deep Dive into Browser Performance (26.6.2015, 12:57 UTC)
My slides from DPC 2015 on "Deep Dive into Browser Performance" are now available for download here.
Simon HolywellSimultaneously benchmark many URLs with ApacheBench and GNU parallel (25.6.2015, 14:47 UTC)

Once in a while you come across situations where someone wants to know what a server can do or how many requests it can handle under a realistic load scenario. It could simply be that you want to hit a large selection of sites or even that you want to simultaneously hit a number of different pages on the same site.

In my case I am testing the performance of a Drupal multisite installation where one core set of code is shared by many sites on different URLs. I wanted to find out how many simultaneous requests the server would be able to handle when key URLs in each of the sites were interacted with. In production the respective load on each site was estimated to be approximately the same which made it easier as I can just replicate the same scenario on each site/URL.

This can be difficult to achieve as you need to simulate traffic across a number of website URLs as many of the benchmarking tools, including ApacheBench, do not support this. Whilst ApacheBench can perform concurrent requests to one URL it cannot do the same across a number of URLs or domains.

A way to work around this limitation is to make use of Ole Tange’s GNU parallel utility. When piped a list of arguments parallel will execute a command against them concurrently (generally limited by the number of physical CPUs where on job maps to one processor). This means you can take any crusty Linux utility that runs serially and turn it into a concurrently executed task with minimal effort. (If you are using parallel with gzip though you might prefer pigz instead.) On top of that it is also possible to farm out the parallel processing to other machines if you have them.

If you are paying attention then you will probably have noticed that I just described a rudimentary botnet. You could take a server of limited resources offline in a DDOS (Distributed Denial of Service) style attack using the method I am going to describe here. Please use this knowledge to interact with networks and hardware you own though and be responsible. Of course this is not the most efficient or practical means of performing such an attack anyway so you would be wasting your own time as well as your targets time.


You could easily bring your own site offline or piss off your hosting provider so do not actually execute this against a URL without being sure of the consequences first. Basically, do not run it against your production server!

So now I have the obligatory warning out of the way we can get on with the good stuff.

If you are running Ubuntu (like me) or Debian then GNU parallel is really easy to install (other distros may be easy too - I have not tested).

sudo apt-get install parallel

In addition, if you have not already installed it, you will have to install ApacheBench (often known simply as ab).

sudo apt-get install apache2-utils

Should you have a number of servers you want to network the jobs out to then also perform the same installation steps above on them too. If you do not install parallel on the other hosts then the process will only have access to one CPU core. It is also important to note here that parallel uses SSH communicate with the other machines so you will want to setup password-less login on those machines - I previously wrote about this in Securing SSH with Key Based Authentication.

A simple ApacheBench test might be to make 100 requests with up 10 of those occurring concurrently at any one time. This simple test should be easy for most webservers to shrug off.

ab -n 100 -c 10 ""

You will be given a report back from ApacheBench containing all the vital stats of the benchmark run. As you can see this gives you concurrent tests on one URL or domain so this is where parallel will step into parallelize the benchmarking process.

(echo ""; echo "") | parallel 'ab -n 100 -c 10 {}'

This command pipes two URLs into the parallel utility which then fires up a process running ab -n 100 -c 10 against one of the URLs. The results will be printed to screen in the order that the jobs are completed and not necessar

Truncated by Planet PHP, read more at the original (another 7579 bytes)

PHP Classes20 Years of PHP and 16 Years of PHP Classes (25.6.2015, 05:00 UTC)
By Manuel Lemos
In the same month that PHP completes 20 years of age, the PHP Classes site completes 16 years of age precisely today.

It has been a long journey but this last year has been particularly exciting due to many things happening as we come close to the release of PHP 7.

Read this article to read about what has been going on in the PHP world and what I think PHP still misses and should be address after PHP 7.0. The article also covers the latest developments and future plans for PHP Classes and JS Classes.
LinksRSS 0.92   RDF 1.
Atom Feed   100% Popoon
PHP5 powered   PEAR
ButtonsPlanet PHP   Planet PHP
Planet PHP