Open Source web frameworks for 2016, 2017, 2018 and beyond

As an Open Source developer specializing in PHP frameworks like WordPress, Drupal, CodeIgniter and Symfony I’m always keen to know where to focus my efforts on new technologies.

But how can you predict where a web technology is going?

This is where Google Trends comes to the rescue. Here are some graphs of interest (in terms of searches for the technology) of new and existing Open Source web frameworks.

One caveat – a search for a term covers a lot of potential use cases such as end users wanting to find out more or developers searching for more information. A higher search number does not mean higher pay rates but it does mean there is a global interest in the technology.

Firstly, some CMSs: Drupal, WordPress, Joomla, TYPO3

WordPress is clearly more popular (which is understandable given its dominance). However, interestingly, Drupal is clearly on a downward trend. Anyone care to explain why?

I did have a look at other CMS’s such as OctoberCMS and PageKit but these did not even feature on the graph hence the omission. If anyone wanted a graph of up-coming systems perhaps I could do a separate chart.

Then, some frameworks: Yii, Symfony, Laravel, Zend, CodeIgniter

Some key takeaways – Laravel is going through the roof!
And Zend, which hit a peak in 2009, is clearly dropping off the radar. CodeIgniter, which had a peak in 2013, still has a strong interest and is in second place.

It would be interesting to expand on these graphs. Any suggestions on other frameworks or time periods to focus on?

XML for PHP developers – Advanced XML parsing

Reading, manipulating, and writing XML in PHP5

SimpleXML, in combination where necessary with the DOM, is the ideal choice for developers working with straightforward, predictable, and relatively small XML documents to read, manipulate, and write XML in PHP5.

Quick start APIs of choice

Of the many APIs available in PHP5, the DOM and SimpleXML are the most familiar, in the case of the DOM, and the easiest to code, in the case of SimpleXML.And for the most common situations, like those you are dealing with here, the most functional.

DOM extension

The Document Object Model (DOM) is a W3C standard set of objects for representing HTML and XML documents, a standard model of how you can combine these objects, and a standard interface for accessing and manipulating them. Many vendors support the DOM as an interface to their proprietary data structures and APIs, which gives the DOM model a lot of authority with developers due to its familiarity. The DOM is easy to understand and utilize since its structure in memory resembles the original XML document. To pass on information to the application, DOM creates a tree of objects that duplicates exactly the tree of elements from the XML file, with every XML element being a node in the tree. The DOM is a tree-based parser. Because DOM builds a tree of the entire document, it uses a lot of memory and processor time. Therefore, performance issues make it impractical to parse large documents with DOM. The key use of the DOM extension in the context of this article is its ability to import SimpleXML format and output DOM format XML, or the reverse, for use as a string or XML file.


The SimpleXML extension is the tool of choice for parsing an XML document. The SimpleXML extension requires PHP5 and includes interoperability with the DOM for writing XML files and built-in XPath support. SimpleXML works best with uncomplicated, record-like data, such as XML passed as a document or string from another internal part of the same application. Provided that the XML document isn’t too complicated, too deep, and lacks mixed content, SimpleXML is easier to code than the DOM, as its name implies. It is also more reliable if you work with a known document structure.

Very handy article for PHP developers on XML parsing.

Upgrading to PHP5 on the MacBook

An upgrade to PHP5 using the Entropy package on my MacBook just tanked.

Turns out the fault is pretty basic.

If you’ve been running PHP already (i.e. you have already uncommented the lines in your httpd.conf file that allows PHP to run) then Apache can’t figure out which version of PHP to use and the install fails.

Simple solution – recomment those PHP lines.
E.g. #LoadModule php4_module        libexec/httpd/
#AddModule mod_php4.c