SitePoint PHP9 reasons to consider eZ Publish CMS for your next web project (15.8.2014, 16:00 UTC)


With the recent refactoring of eZ Publish content management system as a full stack Symfony application it should be interesting for a broader PHP public to consider it as a content management solution. We at Netgen have been using it for almost a decade and would like to share our reasons why it is a good choice in certain cases.

Before going deeper into the reasons why someone should consider eZ as a CMS solution, lets note a few disclaimers and audience filters:

  • if the development team is really small or the project is just a simple web site then there is no good incentive to consider eZ. There are lots of other solutions that are easier to learn.

  • if your web project doesn’t need content management or that part of the project is very simple, there is no good incentive to consider eZ either.

This post is about reasons why you should consider eZ, it’s not about praising it is an ultimate solution. It has its share of problems, like the following ones:

  • Currently eZ is shipped as dual stack (version 5.* with new and legacy code) and this could be an obstacle to less experienced teams. Recently I discussed on our blog about the hybrid approach we are currently taking and in short: it’s not simple. But its a temporary situation which causes some bad side effects like confusing dual documentation, etc. Installation could also be troublesome like Sitepoint’s editor Bruno discovered recently. But by the end of the year eZ should release a developer preview version with the new stack only. Next year the first stable version could hit the streets (named : eZ Publish 6 or eZ Platform).

  • Historically, it always had a steep learning curve. This might be the number one reason why eZ didn’t get more traction over the years. With the new stack implemented as a Symfony application this could change. Putting aside the transition situation, where some features are not yet implemented on the new stack (hence falling back to legacy), the new stack should be easier to learn as the development practices are more common (especially to Symfony developers) and less specific only to eZ.

  • The Community is not very big. Some prefer 10000 active developers behind a product, but this is not the case here. Actually, the community is quite active for its size and it consists of people from companies and larger teams that use eZ. And given the fact that Symfony is now the underlying PHP framework, the community could get larger very soon.

If you are not completely repelled by the problems, lets focus on the good side: reasons why I think PHP developers should consider eZ Publish’s new stack for their next content oriented web project.

Continue reading %9 reasons to consider eZ Publish CMS for your next web project%

PHP: Hypertext PreprocessorPHP 5.6.0RC4 is available (15.8.2014, 00:00 UTC)
The PHP development team announces the immediate availability of the fourth and hopefully lates release candidate of PHP 5.6.0. As we entered the feature freeze with beta1, this is a bugfix-only release. All users of PHP are encouraged to test this version carefully, and report any bugs in the bug tracking system. THIS IS A DEVELOPMENT PREVIEW - DO NOT USE IT IN PRODUCTION! For more information about the new features you can check out the work-in-progress documentation or you can read the full list of changes in the NEWS file contained in the release archive. For source downloads of PHP 5.6.0RC4 please visit the download page. Windows binaries can be found on The stable 5.6.0 release should show up on the 28th of August. Thank you for helping us make PHP better.
Brandon SavageBack On The Market! (14.8.2014, 18:38 UTC)
With a couple projects wrapping up, I will once again have some free time to take on additional work in the form of contract or long-term projects. With more than ten years of experience in PHP development, I’ve worked on both large and small code bases alike. I am available to provide help modernizing a […]
labs @ Qandidate.comAsynchronous Phystrix explained (14.8.2014, 15:00 UTC)

We started this blog series with the basics of a circuit breaker. Our second post showed a running demo of an API consisting of two private microservices using oDesk’s Phystrix. The demo consisted of asynchronous calls using ReactPHP.

The demo itself shows a working circuit breaker, but I didn’t explain how Phystrix actually works. This blog will go through the demo code and show the changes we had to make to get Phystrix running asynchronously, while also looking more in-depth as to how Phystrix actually works. Awesome!

∞ labs @ Permalink

Johannes SchlüterPHP 5.3 - Thanks for all the Fish (14.8.2014, 13:42 UTC)

A few moments ago I pushed the buttons and PHP 5.3.29 came out. As this is the final release for 5.3 it is a good time to look back. PHP 5.3's history starts somewhere in 2005. We knew what a pressure point of PHP was - a language made for solving The Web Problem needs a good Unicode story. So some developers went deep into that complex area and created a prototype version of PHP with Unicode support from deep within the engine. As this was a big and pressing issue and the need was obvious and the solution looked promising it was quickly areed on making that the base for a future PHP 6. And then time passed, initial enthusiasm passed and the sheer amount of work became obvious. Two years in we noticed that the ongoing PHP 6 work blocked other work - new features couldn't be added to 5.2, the current version at that time, and adding them to (at that time) CVS's HEAD.

For solving the blocking issue we decided to create an intermediate release, pacing in all the things piled up, so on 2007-09-26 we branched off a CVS branch PHP_5_3.

Branching of PHP 5.3 set lots of enthusiasm free, and people started creating features and going into heated debates about the direction we should take so I was happy when Lukas volunteered to assist in the release management as Co-RM, playing a big role in making PHP 5.3, one of the most feature rich PHP releases, a huge success which was declared stable two years after branching of on June 30th 2009!

In those two years of development, from branching of till releasing 5.3.0 stable, we saw 5,338 commits by 83 committers (also committing work by other contributors without direct commit access) seeing 10,125 files being changed, with 1,089,600 insertions and 270,921 deletions (including tests and and generated files like parsers etc.) PHP 5.3 introduced many things many PHP developers see as normal and can hardly remember not using - things like namespaces or anonymous functions. It also introduced goto, late static binding, nowdoc, ?:, exception linking fileinfo, intl, mysqlnd, ... while also being a massive boost in performance. A massive release.

While trying to release 5.3.0 we noticed issues in our process. Notable things were that we, for a long time, didn't have a fixed cut of date and couldn't offer a promise when the next release will come. As a consequence people tried hard to push features in, as they feared having to wait a few years for the net release. In consequence a stricter release process with yearly releases etc. was created. Which lead to PHP 5.4 and 5.5 being almost on time and the upcoming PHP 5.6 being well on track.

Now development of 5.3 didn't stop with 5.3.0 but saw 29 bugfix releases with 7,554 commits from 152 comitters (due to the move to git in between a single committer might be counted multiple times, on the other hand more "external" contributor's names are being kept) and seeing 4,862 files being changed, 376,187 insertions and 207314 deletions.

On the personal side being the release master of PHP 5.3 gave me the opportunity to travel between Moscow and California and teaching different audiences in multiple languages about the great work, which was done mostly by others. (Check the ChangeLog to see whom to thank for your favorite feature!)

But now it's time to close that chapter - as of now PHP 5.3 is not supported anymore and the different RM teams and contributors are making PHP even better than PHP 5.3 ever was, as we can see in existing and previews of future releases.

Thank You All, it was a great time!

PHP: Hypertext PreprocessorLast 5.3 release ever available: PHP 5.3.29 - 5.3 now EOL (14.8.2014, 00:00 UTC)
The PHP development team announces the immediate availability of PHP 5.3.29. This release marks the end of life of the PHP 5.3 series. Future releases of this series are not planned. All PHP 5.3 users are encouraged to upgrade to the current stable version of PHP 5.5 or previous stable version of PHP 5.4, which are supported till at least 2016 and 2015 respectively.PHP 5.3.29 contains about 25 potentially security related fixes backported from PHP 5.4 and 5.5.For source downloads of PHP 5.3.29, please visit our downloads page. Windows binaries can be found on The list of changes is recorded in the ChangeLog.For helping your migration to newer versions please refer to our migration guides for updates from PHP 5.3 to 5.4 and from PHP 5.4 to 5.5.
SitePoint PHPHow to Create a Unique 64bit Integer from String (13.8.2014, 16:00 UTC)

PHP provides the popular md5() hash function out of the box, which returns 32 a hex character string. It’s a great way to generate a fingerprint for any arbitrary length string. But what if you need to generate an integer fingerprint out of a URL?


We faced that challenge in RatingWidget when we had to bind our rating widgets to a unique Int64 IDs based on the website’s page it’s being loaded from. Theoretically we could just store the URLs and query the URL column, but URLs can be very long and creating an index for text column with unknown length is very inefficient.

So if you are working on any kind of dynamic widget development that should load different data based on the URL it’s loaded from, this post will save you tonnes of time.

To simplify the problem, let’s divide it into two sub-challenges:

  1. URL Canonization
  2. String to unique Int64 conversion

Continue reading %How to Create a Unique 64bit Integer from String%

Brandon SavageWhat’s in your Composer file? (13.8.2014, 13:35 UTC)
During the recent Crafting Code Tour, Paul Jones would ask people who was currently using Composer. It was a rare night that more than half an audience raised their hands, meaning that the best invention in the PHP world in the last three years is still not being widely used by everybody. I want to […]
labs @ Qandidate.comHandling AngularJS POST requests in Symfony (12.8.2014, 22:00 UTC)

At we started using AngularJS last year and I have to say it was love at first sight! Two-way databinding, testability, dependency injection, server communication...awesome!

Did I say server communication? We use Symfony 2 (which is awesome too) for our back end API’s. Unfortunately AngularJS and Symfony do not speak the same language out-of-the-box.

In this post I will show you how we automatically decode JSON requests so we can use it with Symfony's Request object using our symfony-json-request-transformer library (or class actually).

∞ labs @ Permalink

SitePoint PHPNeurology & User Behavior: What We Know (12.8.2014, 16:30 UTC)

Eyeballs and conversions. I suspect most would agree that these are the two main ways we measure the success of any website.

Sure, websites convey specific messages and may be built to achieve a raft of various smaller goals. Most websites are built to appeal users and bring them to a business — especially e-commerce — and may contain an underlying strategy designed to attract a larger pool of potential customers, and convert the highest percentage possible of them to a making a purchase.

In recent years a new phenomenon in human factors, called Neuro Web Design, has emerged. It’s a methodology which borrows from various fields, and it deals with the UNION of:

  • research on motivation
  • decision-making
  • neuroscience

Its aim is to provide a useful method for the creation of websites that are more engaging and effective overall.

So, what is this concept of Neuro Web Design, and in what way could it be applied in the real world?

In this article composed of two parts, we’ll discuss some general ideas and principles first, and then I’ll go on to present some tips and techniques for applying it to your own designs.

Neuro Web Design: What is it?

Recent research in neuroscience has provided insights into how people think, how they decide, and what motivates people to take action. Whether you want to create a website, software, game, or application, you should pay attention to these latest studies and learn how to apply the research in neuroscience to your design projects.

First of all, let’s start by dispelling a few myths.

We love (and are used to) thinking that we made our decisions after having spent some time doing a careful meditation. In fact, most of our choices arise from an unconscious level.

[caption id="attachment_87622" align="alignright" width="240"]Illustration: A sea of 'Pick me!' signs Photo: ota_photos[/caption]

Secondly, we often believe ourselves to be self-assured masters in these choices, but the truth is that, in general, people observe other people’s attitudes and then decide what to do (often changing their mind in the process). This is true especially in those circumstances of doubt where they aren’t sure about how (and above all if) to act.

Sometimes we decide to act only when we know the experience of other people with a certain product or service.

Raise your hand if you have never read a review about the quality of an item or service before concluding the purchase. I suspect very few hands are up right now.

In other cases, we convince ourselves of a purchase when we know that others are buying the same product, and maybe they are buying it right now.

Of course, this isn’t true only for purchases. Just think at how you decide what video to watch next, on websites like YouTube or Netflix after your previous video has ended.

[caption id="attachment_87620" align="alignright" width="374"]Netflix: Because you watched... Netflix: Because you watched...[/caption]

Again, when doing your shopping online, I suspect there have been several times that you clicked on invitations such as “You might also be interested in …”, or “People who bought this item also bought…”.

Am I wrong?

Another thing that probably it’s not so obvious to get is that, even though we may say that we prefer the freedom of having a lot of alternatives to choose from, the reality is that many of us aren’t able to make a decision when there are too many alternatives to evaluate. We are paralysed by indecision.

Continue reading %Neurology & User Behavior: What We Know%

LinksRSS 0.92   RDF 1.
Atom Feed   100% Popoon
PHP5 powered   PEAR
ButtonsPlanet PHP   Planet PHP
Planet PHP