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 29, 2013

Protect PHP with SourceGuardian
Welcome all to another week and another release from the PHP Team. 

We now have 5.4.19 and 5.5.3, available immediately.

This week's issue brings several articles about the past, present and future of PHP. As usual we would love your opinions about what you read.

Anything in particular you would like to see included in our newsletter? Drop me an email.

Have a great weekend!


PHP Augmented for Stability
Open source PHP language converts have been handed a new version release this August with around 20 bug fixes and a series of augmentations, designed to address both security and stability.

A Look at PHP's Continuing Evolution
PHP is not a young language. As of 2013, it's 18 years old; that's old enough to vote. Many upstart languages have appeared over the years to try and unseat PHP as the "lingua franca" of web applications but it still commands over 80% of the web market. One reason for PHP's popularity is no doubt the ease with which new developers can get started with it, but just as important is the fact that PHP has been evolving for all those 18 years.

Finding The Right Test-Mix
The topic of Test Driven Development (TDD) and unit-testing usually creates heated discussions among developers. We at Qafoo are not an exception and the topic how to apply TDD in our daily work regularly leads to heated discussions. One reason for this is that both TDD and unit-testing combined are, by some people, seen dogmatically as the only way to do software development.

The Walking Dead: the consequences of living with a legacy PHP framework 
At our company, our main web app is based on Symfony 1.0, a PHP framework released in 2008. It was developed by a company called Sensio and open-sourced shortly after. It was a great framework when it came out, with all the good ideas from Ruby On Rails, CakePHP, etc. as well as great documentation, tutorials and a growing community. It is completely MVC, lets you write clean code and does a lot of things a modern framework is supposed to let you do. But version 1.0 is clearly obsolete, and it is still our main framework.

A PHP From The Future
As developers, we find ourselves living in exciting times. With increasing attention paid to online activities, we’re working with larger data sets (even “big data”); scalability and connectivity are more important than ever before; the very nature of privacy is being re-examined. But quietly, in the shadow of all of this, sits perhaps a more pragmatic question. How will PHP change and grow to enable us to build the future, whatever it may hold?

Your PHP Framework Choice Doesn't Matter
Greg Freeman writes about the speed of PHP and more specifically, evaluating frameworks and tools based on “speed”. If you have been in the PHP developer community for more than a few months, you would have seen at least a few discussions about what the fastest PHP framework is, as if this were one of the first key metrics you should evaluate first when choosing a framework for your team. You may even be contemplating switching from your current framework because you heard of a new framework that is faster. 

__toString() or not __toString()? 
The __toString() belongs to the family of methods and functions called "magic functions". They are magic because for the most part they do not get called explicitly, but rather intercept operations. Unfortunately there are limits to its magic, specifically the only "context" the method is aware of is its design contract: to return a string. But its not clear what purpose that is. Should this be for some internal debugging or logging purposes?

Tutorials and Talks

Simple single-file PHP script for combining JS / CSS assets 
One of the basic tenets of making a web-page load quickly is reducing the number of HTTP requests that your page makes. One very common way of doing this is ensuring that all of your CSS files are combined into one request (ideally in the <head> tag) and all of your javascript files are combined into one request (ideally at the bottom of the <body> tag).

Laravel 4 Authentication - A Comprehensive Tutorial 
On Christopher Pitt has written up a tutorial showing off an authentication system in Laravel 4, a recently popular framework that's still a little light on tutorials for more advanced authentication.

Coding a Lorem Ipsum Alternative 
Lorem Ipsum generators are well known and are useful for generating text copy during website development. It’s good that we have a wide selection of text generators, but how exactly are these generators made? Can we use PHP and MySQL to build our own? That’s exactly what we’ll tackle in this article.

MongoDB TTL Collections
MongoDB (v. 2.2+) provides a mechanism to expire data from collections by setting a TTL -time to live- on indexes. This is a great feature if you have data that needs to persist in the database for a specific period of time. Using it from PHP is relatively simple - all that's needed is a configuration parameter on the "ensureIndex" call setting an "expireAfterSeconds" value. There's also a bit included in the post for the Doctrine users out there, showing the docblock comment to use to set the value.

PSR-4 Autoloader Proposal Now In Draft Status
The PHP-FIG group has moved a new autoloader structure proposal into "Draft" status, making it past the initial proposal (Entrance Vote) level as PSR-4. The newly proposed autoloader gets rid of some of the allowances that PSR-0 included, like proper namespace support (no more underscores) and a reduction in the required folder structure to make it work. The Composer project is also a part of these discussions and is on board with making these proposed changes in the project's autoload handling.

Long Running Processes in PHP 
Getting PHP to run for long periods of time can be a challenge. One of the best things as of PHP 5 is CLI (Command Line Interface). PHP CLI allows you to run things directly from the command line and doesn’t have a time limit built in. All the pains of set_time_limit() and playing with php.ini disappear.

Push Notifications with Prowl
Push notifications to mobile devices are a quick and inexpensive way to send short messages to people wherever they happen to be – provided their phone is switched on, of course. But to send a notification, there are usually a number of hoops you have to jump through; not least, registering your device so that the sending service can target your phone. This is understandable, of course, as there is enormous potential for misuse.

Building a CodeIgniterWeb Application From Scratch - Part 1
In this series we're going to build a web billboard application from scratch. We're going to use CodeIgniter to handle the back-end service and BackboneJS for the web client. In the first two parts of the series we'll create the back-end service, then the client application in the last two.

Handle Incoming Email with SendGrid
In this article, I’m going to look at how you might implement an email-to-post feature, using SendGrid. SendGrid is a service for sending email – usually in bulk, but they also offer a less well-publicised feature for handling incoming email. SendGrid can be configured to handle all incoming messages for a given domain by pinging a URI of your choosing, and by implementing a simple webhook you can act on the incoming mail accordingly.
News and Announcements

PHP 5.4.19 and PHP 5.5.3 Released!
The PHP development team announces the immediate availability of PHP 5.4.19 and PHP 5.5.3. These releases fix a bug in the patch for CVE-2013-4248 in OpenSSL module and compile failure with ZTS enabled in PHP 5.4. All PHP users are encouraged to upgrade to either PHP 5.5.3 or PHP 5.4.19.

PHP: The Undiscovered Country
Today sees the first day of this two day conference. A unique gathering of exceptional PHP developers from around the globe. August 29 & 30, 2013 in San Francisco, CA, USA. Tickets still available.

CodeConnexx 2013, November 8th and 9th in Maastricht
CodeConnexx is a two-day, one track conference that aims to bring together everyone interested in talking about code.

ZendCon PHP 2013 October 7-10th Santa Clara, CA
The 9th Annual ZendCon will bring together developers, IT managers and PHP experts from around the world. With a focus on PHP, mobile and cloud development, attendees at this highly acclaimed conference will expand their skills and explore new technologies.

ConFoo 2014 Wants You To Be A Speaker
Looking for web professionals to share their skills and experience at the next ConFoo. Submit your proposals between August 26th and September 22nd. ConFoo is a conference for developers that has built a reputation as a prime destination for exploring new technologies, diving deeper into familiar topics, and experiencing the best of community and culture.

Reading and Viewing

PHP Error Reporting: How To Do It Right (by Jay Docherty, published 20th August 2013)
This book gets stuck into how to do PHP error reporting well, with practical examples and downloadable code. We also take a broader look at strategies and best practices.


If you have a position that needs filling, let us know and we will include it.

Performance Telecom (UK) seek freelancer (Remote worker) - Python and PHP Developer
This position is primarily Python, but PHP skills are also required.

Senior PHP Developer in Bucharest, Romania
We are searching for a passionate PHP developer who will be part of a team of senior programmers and experienced testing engineers, directly involved in technical development projects, using Agile Scrum as methodology.

PHP Engineers for Bright.Com in San Francisco
We are looking for PHP engineers to join our growing team! The ideal candidate is language agnostic, and can work with both scripting languages (such as Python and PHP) as well as strongly typed languages (such as C++ and Java), and has a passion for taking an idea and exploring, tinkering, debating, and demonstrating the fastest, most efficient, flexible and scalable implementation approaches. Experience working with traditional SQL databases as well as newer technologies, indexes and data stores is key (such as Solr, ElasticSearch, Redis, or Neo4j), and you must be comfortable using Linux and other open source technologies.

Ballers Bridge is Hiring a Sr. Yii Developer
We are looking for a motivated and outstanding candidate to lead our product development. The ideal candidate is an experienced problem solver, quick thinker/learner, self-motivated and not afraid of challenges.

Message Digital Design Ltd is Hiring a Web Developer (PHP) 
We are looking for an experienced developer to work in our spacious offices in central Brighton, helping to deliver high-quality websites, e-commerce and online systems to a wide range of clients. At Message we give a damn about building the web the right way, and the successful applicant will too.

Interesting Projects, Tools and Libraries

A Clean and Secure Open Source PHP Login Script
PHP & MySQL Login Script is an open source PHP login script. It’s clean, crisp, fast, free, safe, object oriented, high performant and reduced to the max. Including the best password encryption available in PHP (bcrypt with blowfish, using the official (!) PHP password hashing functions).

A PHP library for improving the use of file system paths.

Allows native communication with RocketSoftware's U2 database environments using the U2 Web Development Environment, also providing methods which allow PHP to make greater use of the native U2 dynamic arrays.

Allow manipulation of PICK Dynamic Arrays in PHP. PICK Dynamic Arrays are how the PICK operating system stores arrays in the database. The data itself is a single text string with delimiters inserted with the string to break it up into different fields.

Front-controller micro-framework for PHP 5.3+ web applications

Go! is a PHP 5.4 library based on OOP and AOP paradigms. It allows developers to add support of AOP to every PHP application.

Metadata is a library for metadata management in PHP. It provides some commonly needed base classes for managing metadata for classes, methods and properties. The metadata can come from many different sources (annotations, YAML/XML/PHP configuration files). The metadata classes are used to abstract away that source and provide a common interface for all of them.

PHP library for improving the use of exceptions, it adds functionality to the standard Exception class.

A PHP value filter/normaliser

Mobile_Detect is a lightweight PHP class for detecting mobile devices (including tablets). It uses the User-Agent string combined with specific HTTP headers to detect the mobile environment.

This framework is based on ZendFramework 2. Its goal is to simplify the usage of ZF2 and offer some enhancments. For example this offers xml based module configs.

An easy to use PHP library to connect to Microsoft HealthVault on top of HVRawConnectorPHP. It adds a nicer object oriented programming interface and hides (most of) the complicated XML parts in the HealthVault protocol.

One-time password / two-factor authentication library for PHP.

PhealNG is a refactoring of Pheal to meet more modern PHP development standards, for example to support namespaces and PSR-0 classloading.

This is a PHP 5.5 (and older) parser written in PHP. It's purpose is to simplify static code analysis and manipulation.

Find Us, Follow Us, Promote Us :)

Special Thanks

Lots of help and guidance this week from fellow PHP fans, so thanks to everyone who contributes to

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 ©