Ben Longden

2011 A Year in PHP

by Ben Longden |  2 comments | January 7, 2012

2011 has flown by in a blur as we have been busy helping many new clients with large scale PHP projects - proof that PHP continues to gain traction with enterprise. The speed and cost of developing PHP solutions has always been interesting to IT managers and now that some of the larger PHP projects and frameworks are reaching true maturity through a second and third major iteration, they can also now demonstrate existing enterprise clients in many sectors. The once common conversation about PHP’s suitability with large enterprise seems to have been long since forgotten.

The ongoing financial climate only adds pressure for IT managers to cut costs and deliver more value from their existing infrastructure and therefore require enterprises to re-consider any prior aversion to Open Source and PHP. This is allowing our industry to consistently buck the trend of the markets and expand to support the increased demand.

New developments

PHP 5.4 made it to a release candidate status in November 2011 bringing some welcome changes to the language. Small tweaks to the syntax include class member access on instantiation and array dereferencing, multibyte support by default, short array syntax, and many others - but one of the big new ‘headline’ features is that of traits, an OO model for constructing classes that avoids the problems caused by the overuse of inheritance. It’s great to see a mix of syntax improvements balanced out with useful new language features - a sure sign that PHP is maturing and headed in the right direction.

During July, the first stable version of Symfony 2 was released requiring a minimum version of PHP 5.3. Zend Framework 2.0 hit it’s beta phase in 2011 which is also built on version 5.3 of PHP. This version requirement will start to really phase out development of new projects on hosts who are stuck on versions of PHP that are no longer supported (5.2 went end of life in December 2010), which can only be a good thing for the advancement of PHP around the globe.

Another interesting development in 2011 was the announcement by Facebook of their PHP Virtual Machine hhvm (HipHop Virtual Machine). We’re not trying to solve the same capacity problems that Facebook contend with - but it’s really interesting to see how PHP is developing in this area with more and more enterprises looking to the PHP language to solve problems on very high traffic sites.

Ibuildings have traditionally had a large number of speakers throughout the year at a number of different conferences around the world - this year was no exception. We delivered content at PHP NW, PHP Benelux, Dutch PHP Conference, PHP Barcelona, 4Developers (Poland), Magento Imagine and Magento Developers Paradise.

Open Source Projects

Behaviour Driven-Development (BDD) seemed to gain some traction with both PHPSpec gaining a new lead developer and pushing out some long awaited new features. Behat has also been hitting the headlines throughout 2011 as a BDD framework based on Ruby’s ‘Cucumber’ project and follows the same Gherkin syntax. PHPUnit has been the de facto testing solution for a number of years now, but new and good alternatives to the xUnit way of testing are starting to emerge onto the scene by way of these new developments.

A number of turnkey scalable hosting solutions have emerged during 2011. This type of service that has formally been available for Ruby projects has been created with a PHP focus. Allowing you to develop an application and leave the infrastructure and scalable hosting to the service operators. Services such as https://phpfog.com/ and http://orchestra.io/ have quickly emerged with great services and have quickly been adopted. Culminating in the acquisition of orchestra.io by Engine Yard the leading proponent of these services in the Ruby space.

During 2011 Magento was acquired by Ebay to form part of X.commerce a range of products and services that will facilitate innovation and expand the opportunities to develop integrated commerce solutions that link on-line and off-line channels. This acquisition could be viewed as a negative step for an Open Source product but early suggestions show otherwise. X.com will continue to support the Open Source edition of Magento and many of the other parts of the platform are also being released with an Open Source licence. These developments will give Magento even more credibility within the commerce space and allow PHP to be at the heart of major enterprise commerce.
Predictions for 2012

Many of the PHP frameworks appear to be converging on similar strategies. Each evolving into a second or third generation maintaining a full application stack but providing developers with greater flexibility to select only the components they require. Or even to just use a micro framework with smaller feature set but much lighter and quicker to deploy.

Dependency injection and Injection Containers will be part of the larger Frameworks in their next releases. During 2011 there has been much debate about decoupling of dependencies and there are many strategies to accomplish this. However 2012 is likely to see Dependency Injection Containers become common place for more and more PHP projects and developers.

We have proven on a number of projects that Open Source software can scale and perform for every application. We have deployed Varnish HTTP accelerator for a number of clients including some large Magento clients. We expect Varnish to become a de facto element of many projects. Many of the Open Source frameworks are building in support for gateway caches such as Varnish.

The PHP community continues to grow. The PHP conferences are each expanding with extra days and larger venues to support the ever expanding interest. This is also attracting more and more speakers travelling internationally to present.

Some of the Ibuildings team will be presenting at many of the conferences during 2012. If you see them say hi!

Digg This
Reddit This
Stumble Now!
Buzz This
Vote on DZone
Share on Facebook
Bookmark this on Delicious
Kick It on DotNetKicks.com
Shout it
Share on LinkedIn
Bookmark this on Technorati
Post on Twitter
Google Plus
Hilary Boyce

Here at Ibuildings, we encourage our developers to continue to develop themselves professionally and to gain relevant certifications. Most have the Zend PHP Certification (ZCE) and some have the Zend Framework Certification (ZFCE) and/or the MySQL Certifications. I have recently been working to gain the MySQL Certified Developer qualification which is taken as two exams; each one is an hour and a half and covering a wide range of topics relevant to developing applications with MySQL (there is a separate qualification for administrators). I found some of the course material pretty easy as I have used it repeatedly over the years but there was plenty that was fairly new to me; some features that I haven’t been using and haven't noticed other PHP developers using or talking about very much. Having learned more about them, I thought they were worth highlighting. I’ve enjoyed finding out about these features and look forward to using some of these elements such as subqueries, views and stored procedures effectively in future projects. (more...)

Digg This
Reddit This
Stumble Now!
Buzz This
Vote on DZone
Share on Facebook
Bookmark this on Delicious
Kick It on DotNetKicks.com
Shout it
Share on LinkedIn
Bookmark this on Technorati
Post on Twitter
Google Plus
dpcradio

Derick Rethans

The web is full of useful advice focussed on pushing out the last bit of performance of your code. They mention trivial changes. like changing every occurrence of print with echo even suggesting to use for instead of foreach. These optimisations help, but you are not going to notice it unless they're in a tight loop with many iterations. It is also a wrong approach for tackling performance issues. Before you can optimise, you need to find out if your codeis actually slow; then you need to *understand* the code; and *then* you need to find out where you can optimise it. This talk introduces tools and concepts to optimise the optimisation of your PHP applications.

You can find Derick's talk slides over on his site [PDF]

Digg This
Reddit This
Stumble Now!
Buzz This
Vote on DZone
Share on Facebook
Bookmark this on Delicious
Kick It on DotNetKicks.com
Shout it
Share on LinkedIn
Bookmark this on Technorati
Post on Twitter
Google Plus
dpcradio

Kore Nordmann

CouchDB is a prominent representative of the NoSQL movement. Using its integrated web server and eventual consistent replication you can not only distribute data, but also full application code. This even works for clients which are not always connected to the internet, like e.g. mobile devices. This session gives you an insight Couch apps, their beauty and pitfalls.

You can find Kore's slides over on http://talks.qafoo.com/

Digg This
Reddit This
Stumble Now!
Buzz This
Vote on DZone
Share on Facebook
Bookmark this on Delicious
Kick It on DotNetKicks.com
Shout it
Share on LinkedIn
Bookmark this on Technorati
Post on Twitter
Google Plus
dpcradio

Christopher Jones

This session starts with a brief but important overview about the growing Oracle technology eco-system. It shows what Oracle's direction means for PHP application development and deployment.

The majority of the talk then highlights techniques on building high performance PHP applications with the very widely used Oracle Database. Techniques include connection pooling, application monitoring, automatic data privacy for PHP application users, online application upgrades, caching for performance, and how to suspend and resume database transactions to effectively build stateful web applications.

You can find Chris' slides on oracle's technetwork

Digg This
Reddit This
Stumble Now!
Buzz This
Vote on DZone
Share on Facebook
Bookmark this on Delicious
Kick It on DotNetKicks.com
Shout it
Share on LinkedIn
Bookmark this on Technorati
Post on Twitter
Google Plus
Robert Raszczynski

Imagine a workshop of a racing team. The very first thing you will notice is that everything has its own place; spanners hanging on walls sorted by size, other tools placed in drawers, divided by their purpose, bolts and nuts placed in separate dividers and once again sorted by size. Everything is labeled, clean and in order. Now imagine how would it be to work in such an environment, where every single item has its specific place. I reckon that after the first few days, you would be able to point to where everything is with your eyes closed! Such a degree of segregation and organisation makes our lives much easier and it's a pleasure to work with.

tools wall by Mr Thinktank, on Flickr

Architectural and design patterns help software architects to break systems in to smaller, more maintainable sections organised by their functionality and usage. The biggest benefit of patterns is that someone has already solved problems we may face and by utilising patterns such as Transactional Script, Domain Model or Data Mapper in your application it gives us, as developers, some good guidelines on how it should be designed. (more...)

Digg This
Reddit This
Stumble Now!
Buzz This
Vote on DZone
Share on Facebook
Bookmark this on Delicious
Kick It on DotNetKicks.com
Shout it
Share on LinkedIn
Bookmark this on Technorati
Post on Twitter
Google Plus
Marco De Bortoli

This is the second part of our PHPNW11 conference review. Check out the previous part here.

Tutorial Day

The conference started on Friday with its first ever tutorial day. I attended the "Security" tutorial by Arne Blankerts as it's very relevant for the project I'm working on at the moment. The talk was very enjoyable, especially because for the first time someone put emphasis not only on the software security aspect, but also on the hardware and the physical access control policy. You can put all your efforts and apply all the best practices to make your software secure, but everything can vanish in a moment if anyone can access your data centre without restrictions. My colleague Marco Lopes has reviewed this tutorial in more detail in his PHPNW11 report.

The second tutorial I attended was "Maintainable Applications in PHP Using Components" by Stuart Herbert. It was his first time delivering this content and I have to say he did it in an awesome way. Despite the network connection problems we had (which delayed the tutorial a bit), we got along very well by the time everyone had their environment setup. Stuart's tutorial was full of hands-on code. This course was not only a lot of fun and laughs, but interesting content too. I'm looking forward to using Phix to create my components repository, maybe pairing its workflow with the chef-based one we are already adopting at Ibuildings. Definitely a thumbs up for Stuart's project.

Main Conference

(more...)

Digg This
Reddit This
Stumble Now!
Buzz This
Vote on DZone
Share on Facebook
Bookmark this on Delicious
Kick It on DotNetKicks.com
Shout it
Share on LinkedIn
Bookmark this on Technorati
Post on Twitter
Google Plus
Marco Lopes

PHPNW11 Conference Report

by Marco Lopes |  1 comment | October 20, 2011

Earlier this month, 27 members of the Ibuildings team attended the PHPNW11 conference in Manchester. We will publish two personal reviews of the event by two of our software engineers - here's the first one.

Security Tutorial

Beware of the dark side, Luke!

For the morning of the tutorial day at PHPNW11, I decided to attend "Beware of the dark side, Luke!", a security tutorial by Arne Blankerts. While web developers tend to give more emphasis to the security issues directly related with their application (such as XSS, CSRF, SQL injection or Session security), Arne's tutorial was very interesting because it focused also on direct machine access, remote OS access, installed software exploiting, and hardware exploits.

(more...)

Digg This
Reddit This
Stumble Now!
Buzz This
Vote on DZone
Share on Facebook
Bookmark this on Delicious
Kick It on DotNetKicks.com
Shout it
Share on LinkedIn
Bookmark this on Technorati
Post on Twitter
Google Plus
dpcradio

Paul Matthews

With Google constantly pushing the customer expectations of searching, is it time to move away from our database full-text search in pursuit of a more targeted platform? Can implementing Solr offer more than an answer to a search? Implementing a search platform isn’t always suitable for all applications, but in this talk we’ll look at identifying the right search solution, choosing the best way to integrate it into our application and exploring all the benefits a search server can offer.

Edit: Paul's slides can be found at http://www.slideshare.net/paulmatthews86/search-with-solr

Digg This
Reddit This
Stumble Now!
Buzz This
Vote on DZone
Share on Facebook
Bookmark this on Delicious
Kick It on DotNetKicks.com
Shout it
Share on LinkedIn
Bookmark this on Technorati
Post on Twitter
Google Plus
dpcradio

Today's episode comes from one of our own Ibuildings employees, covering Zend Framework.

Martin de Keijzer

Many people use Zend Framework for it's MVC implementation, but it has a lot of hidden gems. Internationalization (i18n) is one of them. We will look how you can create an application that will have the right languages, currencies, dates and times all based on the location of the visiting user. This session will take away a lot of headaches in international projects and will improve the quality in overall.

Edit: You can find Martin's slides on slideshare

Digg This
Reddit This
Stumble Now!
Buzz This
Vote on DZone
Share on Facebook
Bookmark this on Delicious
Kick It on DotNetKicks.com
Shout it
Share on LinkedIn
Bookmark this on Technorati
Post on Twitter
Google Plus
dpcradio

This year's DPCRadio returns with one of the keynotes from this year's event as our first episode.

Helgi Þormar Þorbjörnsson

APIs are commonly an afterthought, like a hot tub awkwardly attached to a house — a shoehorned approach that produces a suboptimal app with scarce support that lacks documentation. In effect, APIs are the ugly stepchild of the Web.

This is a sad reality that we are faced with, because many companies make their living consuming third-party APIs and mixing in their own data to create amazing and interesting mashups. In the initial phases of development, there is rarely enough money to develop the app and its API. By the time there’s both demand and money, it can be hard to fit an API on top of the architecture in such a way that the whole thing won’t fall over. APIs should be first class citizens of the Web. Inconceivable? Possimpible? Not at all!

In this talk we will dive deeper into why APIs are an afterthought, how we can change that. We will also touch on how that can benefit your product down the line in terms of resource savings and infrastructure efficiency, as well as the impact it will have on your infrastructure.

This talk is inspired by my phpadvent article.

(You can find Helgi's slides over on Slideshare)

Digg This
Reddit This
Stumble Now!
Buzz This
Vote on DZone
Share on Facebook
Bookmark this on Delicious
Kick It on DotNetKicks.com
Shout it
Share on LinkedIn
Bookmark this on Technorati
Post on Twitter
Google Plus
Marcello Duarte

This is the second part of a series about Outside-in Behaviour Driven Development in PHP. The first part introduces outside-in development, and how to execute scenarios with Behat. Read this to catch up with the tools and the example we've used so far, then come back to find out how PHPSpec fits into this picture.
(more...)

Digg This
Reddit This
Stumble Now!
Buzz This
Vote on DZone
Share on Facebook
Bookmark this on Delicious
Kick It on DotNetKicks.com
Shout it
Share on LinkedIn
Bookmark this on Technorati
Post on Twitter
Google Plus